Рубрики
Без рубрики

Сделать неверный: Как запустить свою первую функцию AWS Lambda в облаке

ADAM WATT HOW Serverless: Как запустить свою первую функцию aws lambda в десятилетии deena, облачных серверов, расстраиваемых физических серверов. И теперь, «Severless» – это абстрагирование облачных серверов. Технически серверы все еще там. Вам просто не нужно их управлять им. Еще одно преимущество

Автор оригинала: FreeCodeCamp Community Member.

Адам Ватт

Десяти лет назад облачные серверы расстроили физические серверы. И теперь, «Severless» – это абстрагирование облачных серверов.

Технически серверы все еще там. Вам просто не нужно их управлять им.

Еще одно преимущество Serverless – это то, что вам больше не нужно держать сервер, работающий все время. «Сервер» вдруг появляется, когда вам это нужно, затем исчезает, когда вы закончите с ним. Теперь вы можете подумать с точки зрения функций вместо серверов, и все ваши бизнес-логики теперь могут жить в этих функциях.

В случае AWS Lambda функций, это называется триггер. Функции лямбда могут быть запущены по-разному: HTTP-запрос, новый документ загружается в S3, запланированное задание, поток данных AWS Kinesis или уведомление от AWS простого обслуживания уведомлений (SNS).

В этом уроке я покажу вам, как настроить собственную функцию лямбда и, как бонус, покажи вам, как настроить API для отдыха в облаке AWS, при записи минимального кода.

Обратите внимание, что плюсы и минусы сервера зависит от вашего конкретного случая использования. Таким образом, в этой статье я не собираюсь сказать вам, правильно ли неверное для вашего конкретного приложения – я просто покажу вам, как его использовать.

Во-первых, вам понадобится учетная запись AWS. Если у вас еще нет, начните с открытия бесплатной учетной записи AWS здесь Отказ AWS имеет свободный уровень, который более чем достаточно для того, что вам понадобится в этом руководстве.

Мы будем писать функцию ISPalindRome, которая проверяет, является ли пропущенная строка палиндром или нет.

Выше приведен пример реализации в JavaScript. Вот ссылка для циста на Github.

Палиндром – это слово, фраза или последовательность, которая читает то же самое обратно, как вперед, ради простоты мы ограничим функцию только словами только.

Как мы можем видеть в фрагменте выше, мы берем строку, разделив ее, обратимся к ней, а затем присоединяйтесь к нему. Если строка и ее обратное равны, строка – палиндром, иначе строка не палиндром.

Создание функции лямбда Ispalindrome

На этом этапе мы будем отправляться в консоль AWS для создания функции лямбда:

В консоли AWS перейдите в лямбда.

А затем нажмите «Начать сейчас».

Для времени выполнения выберите Node.js 6.10, а затем нажмите «Пустая функция».

Пропустите этот шаг и нажмите «Далее».

Для типа имени в ISPalindrome, для описания типа в описании вашей новой ламбда или оставьте его пустым.

Как вы можете видеть в Гист Над символом лямбда – это просто функция, которую мы экспортируем в виде модуля в этом случае, названный обработчик. Функция принимает три параметра: событие, контекст и функция обратного вызова.

Обратный вызов запустится, когда выполняется функция лямбда и вернет ответ или сообщение об ошибке. Для пустой leambda INTAGEPRINT LESTPRINT жестко закодирован как строка «Hello от лямбда». Для этого учебника, поскольку не будет обработки ошибок, вы просто будете использовать NULL. Мы будем внимательно посмотрите на параметр события в следующих нескольких слайдах.

Прокрутить вниз. Для роли выберите «Создать новую роль от шаблона», а для имени роли используйте ISPalindRomeROle или любое имя, вам нравится.

Для шаблонов политики выберите «Простые разрешения микросервиса».

Для памяти 128 мегабайт более чем достаточно для нашей простой функции.

Что касается 3 второго тайм-аута, это означает, что функция не возвращается в течение 3 секунд – AWS закроет его и вернет ошибку. Три секунды также более чем достаточно.

Оставьте остальные дополнительные настройки без изменений.

Нажмите «Создать функцию».

Поздравляем – вы создали свою первую функцию лямбда. Чтобы проверить его нажать «тест».

Как видите, ваша функция LAMBDA возвращает жесткий ответ «Привет от лямбда».

Теперь добавьте код из ISPalIndRome.js до вашей функции лямбда, но вместо Возврат результат использовать Обратный вызов (NULL, результат) Отказ Затем добавьте жестко закодированное строковое значение ABCD В строке 3 и нажмите «Тест».

Функция лямбда должна вернуть “ABCD не палиндром.”

Для жесткого кодированного строкового значения «RaceCar», функция Lambda возвращает «RaceCar – палиндром».

Пока что созданная мы создали функцию лямбда, ведут себя как ожидаемое.

На следующих шагах я покажу вам, как срабатывать и пройти его строковый аргумент с использованием HTTP-запроса.

Если вы построили REST API с нуля перед использованием инструмента, такого как Express.js, фрагмент выше должен иметь смысл для вас. Вы сначала создаете сервер, а затем определите все свои маршруты One-By-One.

В этом разделе я покажу вам, как сделать то же самое, используя Gateway AWS API.

Создание шлюза API

Перейдите к консоли AWS и нажмите «Gateway API».

А затем нажмите «Начать».

В создании новой приборной панели API выберите «Новый API».

Для API имя, используйте “palindromeapi”. Для описания введите описание вашего нового API или просто оставьте его пустым.

Наш API будет простым, и будет иметь только один метод получения, который будет использоваться для связи с функцией Lambda.

В меню действий выберите «Создать метод». Появится небольшое подменю. Пройдите вперед и выберите Get, и нажмите на галочку справа.

Для интеграции типа выберите функцию лямбда.

Затем нажмите «ОК».

В экране Get – Method для экрана выполнения нажмите «Интеграционный запрос».

Для интеграционного типа убедитесь, что функция Lambda выбрана.

Для запроса тела Passthrough, выберите «Когда нет определенных шаблонов», а затем для типа Content Enter “приложение/json”.

В пустом пространстве добавьте объект JSON, показанный ниже. Этот объект JSON определяет параметр «String», который позволит нам пройти через строковые значения в функцию лямбда, используя запрос HTTP Get. Это похоже на использование req.params в Express.js.

На следующих шагах мы посмотрим, как пройти строковое значение в функцию лямбда, и как получить доступ к прошлому значению из функции.

API теперь готов к развернутую. В меню действий нажмите «Развернуть API».

Для этапа развертывания выберите «[новый этап]».

А для сценического имени используйте «PROD» (который коротко для «производства»).

API теперь развернут, и URL-адрес Invoke будет использоваться для связи с помощью HTTP-запроса с лямбдами. Если вы вспомните, в дополнение к обратным вызовам, Lambda принимает два параметра: событие и контекст.

Чтобы отправить строковое значение в Lambda, вы возьмете URL-адрес вашей функции и добавьте к нему ? String = quotevalue А затем прошедшее значение можно получить в рамках функции, используя Event.String Отказ

Измените код, удалив жесткокодируемое строковое значение и заменив его с помощью Event.String как показано ниже.

Теперь в браузере возьмите URL-адрес вашей функции и добавьте ? String = ABCD Чтобы проверить вашу функцию через браузер.

Как вы можете увидеть, что лямбда отвечает, что ABCD не палиндром. Теперь сделайте то же самое для RaceCar.

Если вы предпочитаете, вы также можете использовать Postman, чтобы проверить новую функцию лямбда Ispalindrome. Postman – отличный инструмент для тестирования конечных точек вашей API, вы можете узнать больше об этом здесь Отказ

Чтобы убедиться, что это работает, вот Палиндром:

И вот не палиндром:

Поздравляю – вы только что настроили и развернули свою собственную функцию лямбда!

Спасибо за чтение!