Wie automatisiere ich die Übermittlung an Amazon Marketplace?


7

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 boto3Bibliothek gesehen, daher bin ich offen für Alternativen.


Ich bin mir nicht sicher, wonach Sie suchen. Möchten Sie Ihre gebackenen Ami auf dem Marktplatz teilen oder einfach eine Ami für Ihren eigenen Gebrauch registrieren?
Tensibai

Ich möchte einen gebackenen AMI auf dem Marktplatz teilen. Der manuelle Prozess hierfür umfasst das Freigeben auf eine bestimmte Weise, damit sie gescannt werden können, und das anschließende Übermitteln von Metadaten zu den AMIs.
Rasenmäherlatte

Nicht wirklich eine Antwort, aber vielleicht ein Ausgangspunkt: Erstellen von AMIs für AWS Marketplace
Tensibai

@Tensibai, der Abschnitt für AMI Sharing mit AWS Marketplace sieht vielversprechend aus. Ich werde diese Frage auf dem neuesten Stand halten, während ich weiter recherchiere.
Rasenmäherlatte

Antworten:


6

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_attributeDamit 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_HEREmit der Snapshots ID, können Sie Ihr Snapshot - Objekt , dass mit boto3 unter Verwendung tun können snapshot_id Eigenschaft snapshot.snapshot_idden 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_productzu 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.


1. Stellt die Freigabe von AMI & Snapshot mit der Marketplace-ID automatisch eine Warteschlange zum Scannen bereit? Basierend auf meinen manuellen Tests müssen Sie immer noch den Benutzernamen des Betriebssystems angeben und den Scan von Hand starten.
Rasenmäherlatte

2. Gibt es eine Möglichkeit, den Status des AMI-Scans zu überprüfen?
Rasenmäherlatte

3. Ich bin nicht sicher, ob die ServiceCatalog-Funktionen das sind, wonach ich suche. Das Produkt existiert, ich muss nur eine neue Version hinzufügen. Der manuelle Vorgang besteht darin, das Produktladeformular einzureichen, auf das im Verkäuferhandbuch verwiesen wird .
Rasenmäherlatte

2
1: Ich habe gerade nachgesehen und nein, das tut es eigentlich nicht. Auf dem Marktplatz fehlt eine API, daher müssen Sie für diese mit einem speziellen Benutzerkonto "Ihre eigene" erstellen, um durch automatisierte Formularübermittlung verschiedene Dinge in der Verwaltungskonsole auszulösen. 2: Keine API, daher müssen Sie es erneut selbst tun. 3: Der ServiceCatalog enthält Aktualisierungsfunktionen, die update_product()Sie verwenden können, wenn sie bereits vorhanden sind.
Peter G
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.