gpt4 book ai didi

python - 使用boto3下载Lambda函数的部署包

转载 作者:行者123 更新时间:2023-12-05 01:55:44 31 4
gpt4 key购买 nike

我正在构建一个解决方案来管理 AWS Lambdas 从一个区域/账户到另一个区域/账户的迁移。 AWS 的 Lambda 仪表板目前仅支持一次导出一个 Lambda,这对我来说太慢了。

我想使用 boto3 的 client.get_function(...)client.create_function(...) 来自动执行此操作。

Following the docs ,我使用 client.get_function("myFunc") 获取函数的配置和代码详细信息:

response = client.get_function(FunctionName = "myFunc")
fConfig = response["Configuration"]
fCode = response["Code"]
print(fCode)

>>> 'RepositoryType': 'S3',
'Location': 'https://awslambda-us-east-2-tasks.s3.us-east-2.amazonaws.com/snapshots/1234567890123/myFunc-d6abcd8d-8a83...'

我的问题是如何使用 fCode["Location"] 下载 Lambda 的部署包,以便稍后在调用 client.create_function(...) ?

我已阅读 boto3 S3 文档,但找不到任何对我有帮助的内容。只需点击“位置”链接即可返回:AccessDenied: No AWSAccessKey was presented.

如果有人可以解释一下 response["Code"] 是如何使用的。

最佳答案

正如@Korgen 所指出的,get_function 命令返回一个 S3 presigned URL .

我已经在具有默认基本执行角色和 get_function 权限的 lambda 中使用 boto3 成功生成并使用了下载 URL。不需要进一步的权限(例如,不需要 S3 权限)。

该 URL 可供任何人使用(例如,您可以将其粘贴到浏览器中)。但是,URL 会10 分钟后过期(X-Amz-Expires=599 header )。这是预签名 URL 的一个特点,它是公开的,但存在时间很短。

关于python - 使用boto3下载Lambda函数的部署包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70111030/

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