Какой самый быстрый способ обновить лямбда-функцию, пораженную тестированием lex? - PullRequest
2 голосов
/ 11 июля 2020

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

Каков наиболее эффективный способ убедиться, что лямбда-функция, которую я использую, находится в последней версии?

В настоящее время я Я обновляю код функции в своей среде IDE и обновляю его с помощью этого скрипта:

#!/bin/bash -e
rm lambda.zip || echo "Cleaning zip"
zip lambda.zip *.js node_modules/
aws lambda update-function-code \
    --profile myprofile \
    --function-name my-lambda-function \
    --zip-file fileb://lambda.zip

Затем я использую тестовый интерфейс в консоли lex, чтобы обновить его, и читаю вывод журнала с помощью этого скрипта:

#!/bin/bash
LOGSTREAM=$(aws logs describe-log-streams --profile myprofile --log-group-name /aws/lambda/my-lambda-function | jq -r '.logStreams | .[-1].logStreamName')
aws logs get-log-events --profile myprofile --log-group-name /aws/lambda/my-lambda-function --log-stream-name "$LOGSTREAM" --limit 5

Приводит ли это использование AWS cli к каким-либо серьезным проблемам синхронизации? Есть ли лучший способ ускорить цикл разработки?

Изменить:

Благодаря Марцину я обновил это, чтобы использовать псевдонимы, и вот результат развертывания код:

#!/bin/bash -e
rm lambda.zip || echo "Cleaning zip"
zip lambda.zip *.js node_modules/
VERSION=$(aws lambda update-function-code \
    --profile myprofile \
    --publish \
    --function-name my-lambda-function \
    --zip-file fileb://lambda.zip \
    | jq -r .Version)
aws lambda update-alias \
    --profile myprofile \
    --function-name my-lambda-function \
    --name dev \
    --function-version $VERSION

1 Ответ

1 голос
/ 11 июля 2020

Обычно вы должны использовать лямбда-псевдонимы . При этом вы предоставите arn псевдонима для параметров проверки и выполнения вашего lex.

Затем, когда вы обновите свою функцию, вы публикуете sh новую версию его и укажите псевдонимом версию.

Этот процесс гарантирует, что вы полностью отделите lex от вашего лямбда-кода. Это связано с тем, что это псевдоним stati c и не требует никаких изменений в конфигурациях lex. Единственное, что изменилось, это то, что псевдоним указывает на новые версии вашей лямбда-функции. Это прозрачный процесс с точки зрения лекса.

...