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

Тест функции aw aws lambda локально

Использование AWS SAM, чтобы запустить функцию лямбда локально Что такое AWS SAM? Сэм стоит за … Помечено с AWS, Python, Serverless, AWSCommunity.

Использование AWS SAM, чтобы запустить функцию лямбда локально

Что такое AWS SAM? SAM подписывается для модели приложения без сервеса, и это рамка, которая используется для разработки и развертывания приложений без сервеса. Идея состоит в том, что вы можете создать очень простой файл SAM YAML, который затем генерирует более сложные шаблоны облачности. Вся конфигурация выполняется в YAML, и оно поддерживает что-нибудь от облачности, таких как параметры, ресурсы, сопоставление, выходы и т. Д.

Сэм дает вам возможность помочь вам запустить Lambda, Gateway API, Dynamodb локально. Затем вы можете проверить ваше решение без сервеса перед развертыванием AWS.

Различия между Сэмом и облаком: Вы должны включить заголовок преобразования в шаблоне, и он указывает, что это шаблон Сэма.

  • Преобразование: ‘AWS:: Serverless-2016-10-31’

Тогда у вас есть следующие типы для ресурсов:

  • AWS:: Serverless:: Функция
  • AWS:: Serverless:: API
  • AWS:: Serverless:: Прощественно

Важные команды для знания:

  • SAM Build: выбирает зависимости и создает местные артефакты развертывания
  • SAM Пакет: пакет и загрузка на Amazon S3 и генерирует шаблон облака
  • SAM Deploy: развертывание в облачность

Простой шаблон Helloworld Sam, чтобы начать:

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

  1. Далее мы будем запускать Сэм init Команда, которая будет инициализировать новое приложение без сервеса с шаблоном SAM.
  2. Мы выберем вариант 1 – AWS Quick Start Champlates, чтобы мы быстро начали с шаблоном.
  3. Затем он спросит нас, какой тип пакета мы хотим, и для этого примера мы выберем вариант 1, что будет zip артефакт и загрузка на Amazon S3.
  4. Теперь нам нужно выбрать время выполнения, которое мы хотим использовать для нашей неверной функции. Он поддерживает широкий диапазон runtimes, чтобы вы могли выбрать любую версию, с которой вам удобно. Я выберу вариант 2 здесь и пойти с Python 3.8.
  5. Выберите имя проекта или оставьте пустым, чтобы принять по умолчанию SAM-App.
  6. Далее вам будет снабжен список различных шаблонов, мы хотим только основной пример Hello World, поэтому мы снова пойдем с вариантом 1.
  7. Как вы можете видеть, теперь он занят создание нами приложение для нас и создает папку и структуру файла с шаблоном, который нам нужно идти.

Структура папки: После того, как это сделано, генерируя все файлы, которую ваша структура папки должна выглядеть аналогичной этой. Наше внимание будет на hello_world Папка, где хранится наш код функции лямбда, а затем шаблон.Ямль Файл, который является нашим шаблоном AWS Sam.

Файл шаблона.yaml: Как мы можем видеть на вершине Преобразование: AWS:: Serverless-2016-10-31 включен, который должен быть включен в шаблон Сэма. Далее под Ресурсы Мы видим, что у нас есть функция лямбда, и это тип AWS:: Mersearless:: Функция, которую вы включаете в вашу функцию лямбда в шаблоне Сэма.

В разделе «Свойства рядом с CodeuRi нам нужно указать, где будут наши файлы лямбда, которые в этом случае находятся под папкой Привет, мир . Обработчик будет именем файла, где находится функция обработчика (app.py) И наше имя обработчика (lambda_handler) Вот почему он добавляется как app.lambda_handler Отказ Время выполнения – это то, что мы выбрали на этапе инициализации, поэтому в зависимости от того, что вы выбираете, это может быть отличным для вас. С помощью этого Hello World World Example включил событие, прикрепленное к нашей функции, что является API, и это метод получения.

Запустите этот шаблон локально для тестирования

Важно: Чтобы иметь возможность проверить этот шаблон локально, вам необходимо сначала установить Docker, так как он будет использовать Docker, чтобы запустить вашу функцию локально Скачать Docker здесь

  1. Теперь мы можем запустить Сэм построить который будет извлечь зависимости и создавать местные артефакты развертывания.
  2. Далее мы хотим вызвать нашу функцию, поэтому нам нужно запустить следующую команду Сэм Местный призыв
  3. Он установит нашу функцию сборки в контейнер, и это будет использоваться Docker. Вам не нужно знать Docker, чтобы иметь возможность использовать вашу функцию локально, вам просто нужно установить его и запустить, Сэм делает для нас остальными.
  4. Вы получите вывод со следующим, если функция была успешно вызвана. Показывает вам тот же статус, который вы получите как при запуске функции от консоли AWS. Отсюда вы можете просматривать детали как продолжительность, счетный продолжительность, максимальная память и т. Д. С ответом нашей функции лямбда.

Заключение:

Это быстрый способ встать и работать с AWS SAM, чтобы вы могли проверить, редактировать и развертывать функции с вашего локального компьютера. Вы можете добавить код в свою функцию и проверить изменения и воспроизводить с некоторыми другими функциями SAM. Этот быстрый короткий шаблон один раз развернут на AWS, будет генерировать более сложный шаблон облака, а затем развернуть стек к вашей учетной записи AWS.

Оригинал: “https://dev.to/cfjps/test-your-aws-lambda-function-locally-206l”