Amazonマーケットプレイスへの提出を自動化する方法は?


7

AmazonのマーケットプレイスへのAMIの提出を自動化する方法を知っている人はいますか?公開AMIを取得してAWS Marketplaceに共有し、リストをスキャンして製品メタデータシートを送信できるようにしたいと考えています。

私たちの推奨環境はPythonですが、boto3ライブラリに関連するフックが見つからなかったため、代替手段を用意しています。


私はあなたが何をしているのかわからない、あなたは焼きたてのアミを市場で共有しますか、それともあなた自身の使用のためにアミを登録しますか?
Tensibai 2017年

マーケットプレイスで焼きたてのAMIを共有したいと思います。これを行う手動プロセスでは、スキャンできるように特定の方法で共有し、AMIに関するメタデータを送信する必要があります。
lawnmowerlatte 2017年

実際には答えではありませんが、出発点は多分:AWS MarketplaceのAMIの構築
Tensibai

@ Tensibai、AWS MarketplaceとのAMI共有のセクションは有望に見えます。調査を続ける間、この質問を更新し続けます。
芝刈り機2017年

回答:


6

スナップショットの権限

Boto3にはボリュームのアクセス許可を作成できる機能があります。これは、AWS MarketplaceとのAMI共有で必要なものです。snapshot.modify_attributeこれにより、AMIをマーケットプレイスアカウントと共有できます(必要に応じて、JSON表現を使用することもできます。ドキュメントに記載されています)。

response = snapshot.modify_attribute(
    Attribute = 'createVolumePermission',
    OperationType = 'add',
    UserIds = [
        '679593333241', # Marketplace user ID
    ]
)

boto3から移行する場合(またはリーダーがboto3を使用していない場合)に、AWS MarketplaceとのAMI共有にリストされているアクセス許可要件を達成するのに役立つ公式のAPI関数もあります。AMIがプライベートの場合、必要なのは次のAPI呼び出しのみです。

https://ec2.amazonaws.com/?Action=ModifySnapshotAttribute
&SnapshotId=ID_HERE
&CreateVolumePermission.Add.1.UserId=679593333241
&AUTHPARAMS

これにより、マーケットプレイスがAMIにアクセスするために必要な権限が追加されます。ID_HEREスナップショットのIDで置き換える場合は、API呼び出しを行う前に、スナップショットオブジェクトのsnapshot_idプロパティを使用してboto3で行うことができsnapshot.snapshot_idます(とにかく、boto3を使用する必要があるため、このAPIを使用する理由はほとんどありません)。

製品メタデータ

製品メタデータのアップロードなど、boto3の関連するServiceCatalog関数を使用できる必要がありますcreate_product同等の公式API関数もあります(これは単にCreateProductであり、それらを適切にリンクできるようにリストされていません)。boto3がJSON自体を生成するのに対し、公式APIはJSONのみを受け入れることに注意してください。どちらが便利かは、製品のメタデータファイルでデータがどのように構造化されているかによって異なります。私はそれを行うためのコードを直接書くことができないことを知らないので。


1. AMIとスナップショットをマーケットプレイスIDと共有すると、スキャンのために自動的にキューに入れられますか?私の手動テストに基づいて、OSユーザー名を提供し、手動でスキャンを開始する必要があります。
lawnmowerlatte

2. AMIスキャンのステータスを確認する方法はありますか?
芝刈り機2017年

3. ServiceCatalog関数が探しているものかどうかわかりません。製品が存在するので、新しいバージョンを追加するだけです。手動プロセスでは、「出品者ガイド」で参照されている製品ロードフォームを送信します。
芝刈り機2017年

2
1:実際に確認しましたが、確認していません。マーケットプレイスにはAPIがないため、このAPIの場合は、自動化されたフォーム送信を通じて管理コンソールでさまざまなことをトリガーするために、特別なユーザーアカウントで「独自にロール」する必要があります。2:APIがないため、もう一度自分で行う必要があります。3:ServiceCatalogには、update_product()すでに存在する場合に使用できる更新機能があります。
Peter G
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.