Snapshot-Berechtigungen
Boto3 verfügt über eine Funktion, mit der Sie Volumenberechtigungen erstellen können. Dies ist für AMI Sharing mit AWS Marketplace erforderlich. snapshot.modify_attribute
Damit können Sie Ihr AMI wie folgt mit dem Marktplatzkonto teilen (Sie können auch eine JSON-Darstellung verwenden, wenn Sie dies bevorzugen, sie befindet sich in den Dokumenten):
response = snapshot.modify_attribute(
Attribute = 'createVolumePermission',
OperationType = 'add',
UserIds = [
'679593333241', # Marketplace user ID
]
)
Es gibt auch eine offizielle API-Funktion , mit der Sie die in AMI Sharing with AWS Marketplace aufgeführten Berechtigungsanforderungen erfüllen können, wenn Sie sich für eine Migration von boto3 entscheiden (oder wenn ein Leser boto3 nicht verwendet). Wenn Ihr AMI privat ist, müssen Sie nur diesen API-Aufruf ausführen:
https://ec2.amazonaws.com/?Action=ModifySnapshotAttribute
&SnapshotId=ID_HERE
&CreateVolumePermission.Add.1.UserId=679593333241
&AUTHPARAMS
Dies sollte die Berechtigung hinzufügen, die der Marktplatz benötigt, um auf Ihr AMI zuzugreifen. Wie für den Ersatz ID_HERE
mit der Snapshots ID, können Sie Ihr Snapshot - Objekt , dass mit boto3 unter Verwendung tun können snapshot_id Eigenschaft snapshot.snapshot_id
den API - Aufruf , bevor sie (das wird gesagt, es gibt wenig Grund für Sie , diese API zu verwenden , da Sie sowieso verwenden boto3 haben).
Produktmetadaten
Sie sollten in der Lage sein, die relevanten ServiceCatalog-Funktionen in boto3 create_product
zu verwenden, um beispielsweise Produktmetadaten hochzuladen. Es gibt auch gleichwertige offizielle API-Funktionen (diese ist nur CreateProduct, sie sind nicht so aufgelistet, dass ich sie gut verlinken kann). Es ist erwähnenswert, dass die offizielle API nur JSON akzeptiert, während boto3 den JSON selbst generiert. Welches für Sie nützlicher ist, hängt davon ab, wie Ihre Daten in Ihren Produktmetadatendateien strukturiert sind. Da ich nicht weiß, dass ich den Code dafür nicht direkt schreiben kann.