Как использовать AWS CLI для развертывания лямбда-функции для определенного псевдонима или версии? - PullRequest
0 голосов
/ 23 мая 2019

Прежде чем у меня есть версия и псевдоним Lambda, основанные на API код функции обновления Я могу успешно развернуть с помощью

aws lambda update-function-code --function-name myFunction --zip-file fileb://archive.zip

После того, как я добавил версию и псевдоним, у меня есть версия Lambda

  • $ LATEST (по умолчанию)
  • 1
  • 2

и псевдоним

  • постановка (указать на версию 1 )
  • prod (указать на версию 2 )

Я пытаюсь развернуть до staging (версия 1 ),


1-я попытка

aws lambda update-function-code --function-name arn:aws:lambda:us-west-2:123456789000:function:myFunction:staging --zip-file fileb://archive.zip

дал ошибку

Текущая операция не поддерживает версии, отличные от $ LATEST. Пожалуйста, установите версию $ LATEST или сделайте не установить версию в вашем запросе.


2-я попытка

aws lambda update-function-code --function-name myFunction --zip-file fileb://archive.zip --s3-object-version 1

или

aws lambda update-function-code --function-name myFunction --zip-file fileb://archive.zip --s3-object-version staging

дал ошибку

Пожалуйста, не предоставляйте другой FunctionCode параметры при предоставлении ZipFile.


Как использовать AWS CLI для правильного развертывания лямбда-функции для определенного псевдонима или версии? Спасибо

Ответы [ 2 ]

1 голос
/ 23 мая 2019

на основе документации AWS

Опубликованная версия является неизменной.То есть вы не можете изменить код или информацию о конфигурации.

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

1 голос
/ 23 мая 2019

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

aws lambda update-function-code --function-name $FUNCTION_NAME --zip-file fileb://lambda.zip

И что вы создали 2 версии с двумя псевдонимами (постановка продукта).

Теперь выпросто необходимо опубликовать в следующей версии:

VERSION=1
aws lambda update-alias --function-name $FUNCTION_NAME --name staging --function-version $VERSION
VERSION=2
aws lambda update-alias --function-name $FUNCTION_NAME --name prod --function-version $VERSION

Если вы хотите сделать еще один шаг вперед, вы можете привязать последнее развертывание к последней версии.Итак, сначала вам нужно получить последнюю версию, и для этого я использую jq , но вы можете свободно использовать все, что вы хотите, а затем обновить эту версию.

VERSION=$(aws lambda publish-version --function-name $FUNCTION_NAME | jq -r .Version)
aws lambda update-alias --function-name $FUNCTION_NAME --name staging --function-version $VERSION

Вот update-alias документация.А вот документация publish-version .

...