Ist jemandem eine Möglichkeit bekannt, die Übermittlung eines AMI an den Amazon Marketplace zu automatisieren? Ich möchte ein öffentliches AMI nehmen und es auf dem AWS Marketplace freigeben, damit es zur Auflistung gescannt und dann das Produktmetadatenblatt übermittelt werden kann.
Unsere bevorzugte Umgebung ist Python, aber ich habe keine relevanten Hooks in der boto3
Bibliothek gesehen, daher bin ich offen für Alternativen.
amazon-web-services
continuous-deployment
automation
amazon-ec2
Rasenmäherlatte
quelle
quelle
Antworten:
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):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:
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 Eigenschaftsnapshot.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.quelle
update_product()
Sie verwenden können, wenn sie bereits vorhanden sind.