AWS Lambda - 在区域之间自动复制 EC2 快照?

Posted

技术标签:

【中文标题】AWS Lambda - 在区域之间自动复制 EC2 快照?【英文标题】:AWS Lambda - Copy EC2 Snapshot automatically between regions? 【发布时间】:2017-06-03 06:02:21 【问题描述】:

我想创建一个 Lambda 函数 (python),它将自动将已创建的快照复制到另一个区域。

我已联系 AWS Support,他们只向我发送了用于 RDS 数据库的 GitHub 脚本。没有 EC2 快照副本脚本 :(

任何帮助都会很棒!

谢谢。

【问题讨论】:

到目前为止你尝试过什么?你被困在哪里了?这个问题听起来有点像您要求我们为您编写脚本,或者为您提供第三方资源,这与本站无关。 我是 Lambda 和 Boto3 的新手,但我正在尝试根据 CloudWatch Events 自动将快照从一个区域复制到另一个区域。我目前有类似于此处其他答案的代码,并且在运行时收到错误消息。模块“lambda_function”中的语法错误:扫描字符串文字时 EOL(lambda_function.py,第 4 行) 那么您的问题应该显示该代码和该错误消息,并且您应该就该特定问题寻求帮助。这是一个帮助解决编程问题的网站,而不是免费的代码编写服务。 【参考方案1】:

是的,你可以用 boto3 做到这一点

Example:将快照从区域us-east-1复制到区域eu-west-1

import boto3

def lambda_handler(event, context):
    client = boto3.client('ec2')
    client.copy_snapshot(SourceSnapshotId='snap-xxxxxx',
                         SourceRegion='us-east-1',
                         DestinationRegion='eu-west-1')

如果快照是加密的,额外添加PresignedUrl参数。

【讨论】:

我需要在我从中提取快照的服务器上安装 boto3 吗?或者 AWS Lambda 是否已经拥有运行此代码的配置文件/等? Lambda 用于无服务器执行。 EBS 快照存储在 AWS 空间中。此处不涉及服务器,您只需在 lambda 中添加此代码即可。 谢谢你!它有效,对于配置,我使用 Python 2.7 运行时、Handler = lambda_function.lambda_handler 和我的自定义 IAM 角色。感谢您的帮助。

以上是关于AWS Lambda - 在区域之间自动复制 EC2 快照?的主要内容,如果未能解决你的问题,请参考以下文章

无法将 s3 与来自 aws lambda 的 ec2 文件夹同步

使用 Lambda 函数覆盖 AWS Auto Scaling 策略

无法删除 AWS Lambda@Edge 副本

Lambda,AWS和Python的自动化管理操作

在创建新的 AWS EC2 实例时运行 AWS Lambda 代码

AWS Lambda 无法访问同一 VPC 中的 EC2 端口