gpt4 book ai didi

amazon-web-services - 使用 boto3 创建具有层的 Lambda 函数时出现问题

转载 作者:行者123 更新时间:2023-12-04 08:11:52 26 4
gpt4 key购买 nike

如果我尝试使用 boto3 Lambda create_function() 创建 Lambda 函数,并尝试通过 Layers=['string'] 参数包含层,我收到以下错误消息:输入中的未知参数:“Layers”,必须是以下之一:FunctionName、Runtime、Role、Handler、Code、Description、Timeout、MemorySize、Publish、VpcConfig、DeadLetterConfig、Environment、KMSKeyArn、TracingConfig、Tags

...有什么想法吗? The documentation表明这应该有效,但这里显然有些问题。注意:我在 update_function_configuration() 中的“图层”也有类似的问题。

我的猜测是 AWS Lambda 控制台使用的 boto3 版本尚未更新/刷新以支持图层。因为当我在一台装有最新版本的 boto3 的机器上本地运行相同的代码时,它运行起来没有任何问题。我已经尝试使用 AWS 控制台中列出的 Python 运行时 3.6 和 3.7,但都没有用。这些运行时的 boto3 版本分别为 1.7.74 和 1.9.42。但是我的本地机器有 1.9.59。所以 Lambda 层的添加可能发生在 1.9.42 和 1.9.59 之间。

最佳答案

My guess is that the version of boto3 that the AWS Lambda console uses has not been updated/refreshed yet to support Layers.

完全正确。 AWS 通常会定期更新 AWS Lambda 上的可用库,但由于未知原因,现在已经几个月没有更新了。

所支持的API端点其实并不是在boto3中定义的,而是在botocore中定义的。目前botocore 1.10.74 is available on AWS Lambda ,同时支持 AWS Lambda 层 got added in botocore 1.12.56 .

为避免您的代码与可用库版本之间的这种不兼容,您应该创建一个 deployment package除了您的 AWS Lambda 函数代码外,还包含 boto3botocore,因此您的代码使用您的捆绑版本,而不是 AWS 提供的版本。这就是 AWS 在其 best practices 中建议的内容还有:

Control the dependencies in your function's deployment package.

The AWS Lambda execution environment contains a number of libraries such as the AWS SDK for the Node.js and Python runtimes (a full list can be found here: Lambda Execution Environment and Available Libraries). To enable the latest set of features and security updates, Lambda will periodically update these libraries. These updates may introduce subtle changes to the behavior of your Lambda function. To have full control of the dependencies your function uses, we recommend packaging all your dependencies with your deployment package.

关于amazon-web-services - 使用 boto3 创建具有层的 Lambda 函数时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54047562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com