【发布时间】:2022-01-03 17:24:21
【问题描述】:
我正在构建一个解决方案来管理 AWS Lambda 从一个区域/账户到另一个的迁移。 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"] 的用途。
【问题讨论】:
-
如果您创建一个clouformation模板或无服务器模板并使用它部署在不同的区域是不是容易得多?
标签: python amazon-web-services amazon-s3 aws-lambda boto3