以下是我尝试过的两个示例代码
代码1:
import boto3
session = boto3.session.Session()
ec2_us_east = session.resource('ec2')
snap = ec2_us_east.Snapshot('snap-<id>')
snap.copy(DryRun=False,SourceRegion='us-east-1',SourceSnapshotId=snap.id,Description="testB3Copy",DestinationRegion="us-west-1")
代码2:
import boto3
ec2_us_east_client = boto3.client('ec2')
ec2_us_east_client.copy_snapshot(DryRun=False,SourceRegion='us-east-1',SourceSnapshotId=<snap-id>,Description="testB3Copy",DestinationRegion="us-west-1")
两者都生成相同的错误消息,如下所示:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-65-464cba179f87> in <module>()
----> 1 ec2_us_east_client.copy_snapshot(DryRun=True,SourceRegion='us-east-1',SourceSnapshotId=snap.id,Description="testB3Copy",DestinationRegion="us-west-1")
/usr/lib/python2.7/site-packages/botocore/client.pyc in _api_call(self, **kwargs)
239 endpoint_prefix=service_model.endpoint_prefix,
240 operation_name=operation_name),
--> 241 model=operation_model, params=request_dict
242 )
243
/usr/lib/python2.7/site-packages/botocore/hooks.pyc in emit(self, event_name, **kwargs)
150 for handler in handlers_to_call:
151 logger.debug('Event %s: calling handler %s', event_name, handler)
--> 152 response = handler(**kwargs)
153 responses.append((handler, response))
154 return responses
TypeError: copy_snapshot_encrypted() takes exactly 3 arguments (1 given)
我不确定这里出了什么问题。根据文档 copy_snapshot 需要 5 个参数。
也不确定是否可以使用 boto2+ 传输加密快照
当您将 Windows AMI 从一个区域转移到另一个区域(通过复制快照并手动或通过脚本注册 AMI)时,最终 AMI 的平台属性将设置为“其他 Linux”而不是“Windows”注意:平台窗口到其他 Linux 的更改可以被忽略,因为当 virtualization_type 是 hvm 时,这并不重要。虚拟机将正常启动,因为完全虚拟化的虚拟机通过执行 mbr 启动。