Ani*_*aje 2 amazon-web-services aws-lambda aws-lambda-layers
我正在尝试使用 AWS CLI 实现一些自动化,
其中我能够使用 cli 命令更新我的 AWS Lambda 函数 -
aws lambda update-function-code --function-name --zip-file
Run Code Online (Sandbox Code Playgroud)
并使用命令向图层添加一个版本 -
aws lambda publish-layer-version --layer-name wor --compatible-runtimes nodejs8.10 --zip-file
Run Code Online (Sandbox Code Playgroud)
我想要实现的是,将特定层的最新版本链接到函数,
例如 -
aws lambda get-layer-version --layer-name some_name_here --version-number $LATEST
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?
这不太可能是您正在寻找的答案,但这不受支持。所以你不能那样做。层旨在通过特定版本使用,AWS 不提供“最新”选项,该选项将始终导致 lambda 选择并使用最新的层版本。 该文档说:
您选择要使用的特定版本的图层。如果以后要使用其他版本,请更新函数的配置。
和
您必须通过提供层版本的完整 ARN 来指定要使用的每个层的版本。
和
使用层的函数直接引用层版本。
要成为有效的 ARN,它需要“唯一标识”一个资源,而“最新的”则不会这样做。请参阅https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awslambda.html#awslambda-resources-for-iam-policies。
它继续指出
“当你删除一个层版本时,你不能再配置函数来使用它。但是,任何已经使用该版本的函数都可以继续访问它。版本号永远不会重新用于层名称。”
为了让已经使用某个版本的函数继续工作,他们必须将“删除”的版本保留在某处,并且只有当没有更多消费者时,他们才会真正删除它。如果他们允许“最新”,就没有直接的方法来确定“已删除”的图层版本是否仍然被引用。而如果他们允许层代码改变,无疑会出现很多其他代码因为层改变而意外中断的情况,他们想尽量防止这种事情发生。
最好的办法是添加一些代码来查找层并找到要在后续调用中使用的最新版本号。
| 归档时间: |
|
| 查看次数: |
1650 次 |
| 最近记录: |