У меня есть бот и намерение 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