手順4: カタログファイルをAmazon S3にアップロードする


手順4: カタログファイルをAmazon S3にアップロードする

カタログファイルが有効であることを確認し、AWSアカウントをセットアップしたら、Amazonがカタログ用にセットアップしたS3バケットにカタログファイルをアップロードできます。カタログは、AWSコマンドラインインターフェイスを使用してアップロードできます。

カタログファイルをアップロードする

AmazonがセットアップしたS3バケット内のcatalogsフォルダにカタログファイルをアップロードします。任意のS3ツールを使用してカタログファイルをこのバケットとフォルダにアップロードしてください(まだAWSアカウントをセットアップしていない場合は、まず手順3: カタログ統合用にAWSアカウントをセットアップするを参照してください)。

カタログファイルをS3バケットにアップロードするには、以下の手順に従います。

  1. 以下のコマンドを入力します。<catalog_file_name.xml>はカタログファイル名に、<s3_bucket_name>はS3バケット名に置き換えてください。--acl bucket-owner-full-controlオプションは、アップロードされたファイルをAmazonが読み取り、カタログを統合するために必要です。

    $ aws s3api put-object --body <catalog_file_name.xml> --bucket <s3_bucket_name> --key catalogs/catalog.xml --region us-east-1 --acl bucket-owner-full-control
    

    このコマンドを実行すると、最大2GBのファイルが正常にアップロードされます。正常に終了すると、AWS CLIにファイルのVersionID、ETag、Expirationのタグが表示されます。

  2. S3バケットにカタログファイルが表示されていることを確認します。以下のコマンドを入力して、S3バケット内のすべてのファイルを一覧表示します。

    $ aws s3 ls s3://<s3_bucket_name>/catalogs/ --region us-east-1
    

    <s3_bucket_name>をバケット名に置き換えます。)

    カタログバケットには複数のカタログをアップロードできます。ただし、Amazonでは、名前に関係なく、最後にアップロードされたカタログのみが使用されます。そのため、カタログに問題が見つかったり、カタログファイルのデータを更新する必要が生じたりした場合でも、新しいファイルをアップロードするだけで構いません。

ワークフローの例

以下のコマンド例では、my-catalog.xmlという名前のカタログファイルをcdf-bucketという名前のS3バケットにアップロードします。

$ aws s3api put-object --body my-catalog.xml --bucket cdf-bucket --key catalogs/catalog.xml --region us-east-1 --acl bucket-owner-full-control

このコマンドを実行すると、以下の出力が返されます。

{
    "VersionId": "m_QwgKPy9RJZsWperU_LEULD1waJE2He",
    "ETag": "\"e8c38d5258ad1f3b241ae2ce347e40bc\"",
    "Expiration": "expiry-date=\"Fri, 06 Jan 2017 00:00:00 GMT\", rule-id=\"Rule for the Entire Bucket\""
}

my-catalog.xmlファイルが正常にアップロードされたことを確認するには、以下のコマンドを使用します。

$ aws s3 ls s3://cdf-bucket/catalogs/ --region us-east-1

このコマンドを実行すると、現在バケットにあるすべてのカタログファイルのリストが返されます。

2015-12-07 15:02:17      10236 my-catalog.xml
2015-12-01 15:10:28        166 other-catalog.xml

検証・アップロードプロセスの自動化

通常はスクリプトを作成することで、検証とアップロードのプロセスを自動化することができます。Amazonでは、アップロードを試みる前にカタログファイルを検証することを強く推奨しています。スクリプトを作成する場合は、アップロードプロセスの一環として検証の手順を含めるようにしてください。

AWSに関するそのほかのリソース

AWSやAmazon S3に関する詳細については、以下のリンク先を参照してください。

カタログのアップロードに関するよくある質問(FAQ)

Q: カタログファイルをAWS S3バケットに発行する頻度の上限を教えてください。
A: Amazonでは、アップロードされるファイルのボリュームに応じて統合パイプラインを調整しているため、発行頻度に上限を設けていません。
Q: S3バケットへのアップロード後どのくらいでカタログファイルを取り込むことができますか。
A: Amazonでは、アップロードされた新しいカタログファイルを4時間ごとにパートナーS3バケットから取得しています。正常に統合できる状態のカタログファイルであれば、このタイミングで統合されます。統合に失敗した場合は、カタログファイルを修正し、再度アップロードして、次の統合のタイミングまでさらに4時間待つ必要があります。これより早くカタログをアップデートする必要がある場合は、Amazonの担当者にご相談ください。また、この4時間の取得間隔は変更される可能性があります。
Q: カタログファイルのアップロードからコンテンツがFire TVデバイスで利用可能になるまでの時間はどのくらいですか。
A: 通常は、カタログが統合されてから2~4時間以内にコンテンツが利用可能になります。ただし、一部のアプリでは、キャッシュなどの条件によって、この時間が72時間になる可能性もあります。
Q: 更新のたびに完全なカタログファイルをアップロードする必要がありますか。 新しいデータや更新されたデータのみを含むカタログファイルをアップロードすることはできますか。
A: アップロードのたびに完全なカタログファイルを提供する必要があります。Amazonでは、削除が必要な部分を計算するために完全なファイルを使用しています。また、完全なファイルを使用すると、時間の経過とともにAmazonと開発者がそれぞれ持っているカタログの内容に乖離が生じるのを防ぐこともできます。
Q: カタログの更新データを複数連続して送信した場合はどうなりますか。 Amazonでの処理が終わる前にカタログの更新を行った場合はどうなりますか。
A: Amazonでの処理が終わる前に新しいカタログファイルをアップロードした場合、Amazonでは古いファイルを無視して最新バージョンのファイルを使用します。つまり、多数のカタログをS3システムにアップロードしても、Amazonのシステムに過剰な負荷がかかることはありません。
Q: 新しいバージョンのカタログファイルをS3にアップロードするたびに、ファイル名を変更する必要がありますか。 S3バケットに複数のファイルが格納されている場合、Amazonではどのようにして使用するカタログファイルを決めているのですか。
A: Amazonではタイムスタンプを使ってカタログファイルの最新バージョンを特定し、常に最新のバージョンを取り込んで使用しています。

次のステップ

これでカタログファイルがアップロードされました。次の 手順5: アップロードしたカタログファイルを確認するに進んでください。