以下は、私が試した2つのサンプルコードです
コード 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 のプラットフォーム プロパティは「Windows」ではなく「Other Linux」として設定されます。 注: プラットフォーム ウィンドウを他の Linux に変更することができます。 virtualization_type が hvm の場合は問題にならないため、無視してください。完全仮想化された VM は mbr を実行して起動するため、VM は正常に起動します。