Как обновить конфигурацию AWS Lambda до последней версии определенного слоя? - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь добиться некоторой автоматизации с помощью AWS CLI,
, в которой я могу обновить свою функцию AWS Lambda с помощью команды cli -

aws lambda update-function-code --function-name --zip-file

и добавить версию в слойиспользуя команду -

aws lambda publish-layer-version --layer-name wor --compatible-runtimes nodejs8.10 --zip-file

Что я хочу достичь, это связать последнюю версию определенного слоя с функцией,
Что-то вроде -

aws lambda get-layer-version --layer-name some_name_here --version-number $LATEST

Как я могу это сделать?

1 Ответ

0 голосов
/ 23 октября 2019

Маловероятно, что вы искали ответ, но это не поддерживается. Так что ты не можешь этого сделать. Слои предназначены для использования через определенную версию, и AWS не предоставляет «последнюю» опцию, которая всегда заставит лямбды подбирать и использовать последнюю версию слоя. Эта документация гласит:

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

и

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

и

Функции, которые используют слой, относятся непосредственно к версии слоя.

Чтобы быть действительным ARN,ему нужно «однозначно идентифицировать» ресурс, а «последний» этого не сделает. См. https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awslambda.html#awslambda-resources-for-iam-policies.

Далее следует отметить, что

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

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

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

...