如何将AWS Lambda配置更新为特定层的最新版本?

时间:2019-10-21 09:17:07

标签: amazon-web-services aws-lambda aws-lambda-layers

我正在尝试使用AWS CLI实现一些自动化,
其中我可以使用cli命令-

更新我的AWS Lambda函数
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

我要实现的是,将特定图层的最新版本链接到功能,
像-

phi = np.zeros(dim_tuple(dim,L)+(2,))

我该怎么办?

2 个答案:

答案 0 :(得分:1)

您不太可能找到您想要的答案,但这不受支持。所以你不能那样做。图层被设计为通过特定版本使用,AWS不提供“最新”选项,该选项始终会导致lambda拾取并使用最新的图层版本。 This documentation说:

  

您选择要使用的图层的特定版本。如果您想使用   以后使用其他版本,请更新功能的配置。

  

您必须通过提供以下内容来指定要使用的每个图层的版本   层版本的完整ARN。

  

使用图层的功能直接引用图层的版本。

要成为有效的ARN,它需要“唯一标识”资源,而“最新”则不会这样做。参见https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awslambda.html#awslambda-resources-for-iam-policies

接着要注意

  

”删除图层版本后,您将无法再配置   使用它的功能。但是,任何已经使用   版本仍然可以访问它。版本号永远不会   重新用于图层名称。”

为了允许已经使用某个版本的功能继续运行,它们必须将“已删除”版本保留在某个地方,只有在没有更多使用者时才实际删除它。如果它们允许“最新”,将无法直接确定是否仍引用了“已删除”图层版本。而且,如果他们允许更改层代码,那么毫无疑问,在很多情况下,其他代码会由于层更改而意外中断,他们想尝试防止这种情况发生。

您最好的选择是添加一些代码以查找图层并查找可在后续调用中使用的最新版本号。

答案 1 :(得分:0)

不完全是您正在寻找的答案,@shawn 已经在问题的上下文中回答了。

但这就是我所拥有的,因为我也在尝试做同样的事情并最终为 JetBrains IDE 构建了一个插件。

看看它是否对您的第 2 天 lambda 函数和层部署有帮助。

此插件有助于部署直接从 JetBrains IDE 构建的 AWS Lambda 函数和层。

支持部署 AWS lambda 函数。
支持管理 AWS Lambda 层。
创建新版本、删除旧版本和直接从 IDE 将 lambda 函数更新到任何层版本

链接:https://plugins.jetbrains.com/plugin/14742-aws-lambda-deployer

链接:
优酷Demo 1 (25 July, 2020)
优酷Demo 2 (27 March, 2021)