手順4: カタログファイルをAmazon S3にアップロードする
カタログファイルが有効であることを確認し、AWSアカウントをセットアップしたら、Amazonがカタログ用にセットアップしたS3バケットにカタログファイルをアップロードできます。カタログは、AWSコマンドラインインターフェイスを使用してアップロードできます。
- カタログファイルをアップロードする
- ワークフローの例
- 検証・アップロードプロセスの自動化
- AWSに関するそのほかのリソース
- カタログのアップロードに関するよくある質問(FAQ)
- トラブルシューティング
- 次のステップ
カタログファイルをアップロードする
AmazonがセットアップしたS3バケット内のcatalogs
フォルダにカタログファイルをアップロードします。任意のS3ツールを使用してカタログファイルをこのバケットとフォルダにアップロードしてください(まだAWSアカウントをセットアップしていない場合は、まず手順3: カタログ統合用にAWSアカウントをセットアップするを参照してください)。
カタログファイルをS3バケットにアップロードするには、以下の手順に従います。
-
以下のコマンドを入力します。
<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
注: このコマンドをコピーしてターミナルウィンドウに貼り付ける場合、--
がenダッシュではなく二重ハイフンになっていることを確認してください。また、必ず-acl
パラメーターをbucket-owner-full-control
で設定してください。設定しないと、アップロードが失敗します。このコマンドを実行すると、最大2GBのファイルが正常にアップロードされます。正常に終了すると、AWS CLIにファイルのVersionID、ETag、Expirationのタグが表示されます。
-
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に関する詳細については、以下のリンク先を参照してください。
- アマゾンウェブサービス: すべてのAWS製品
- Amazon Simple Storage Service(S3): 安全なオブジェクトストレージ
- Amazon Identity and Access Management(IAM): AWSアカウントのユーザーとロールを定義
- アマゾンウェブサービスを使った開発の始め方: さまざまな言語とプラットフォームのドキュメント、SDK、サンプルアプリ
- AWSコマンドラインインターフェイス(CLI): AWSサービスへのシンプルなアクセス手段
- アマゾンウェブサービスのツール: すべてのSDKとサンプルコード
- AWS SDK for Java: AWSを開発者のJavaアプリと統合
- Amazon S3クライアント: Amazon S3にアクセスするためのJavaクラス
- AWS SDK for Javaを使用したオブジェクトのアップロード: データを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ではタイムスタンプを使用してカタログファイルの最新バージョンを特定し、常に最新のバージョンを取り込んで使用しています。
トラブルシューティング
カタログファイルのアップロード時に発生する一般的なエラーは次のとおりです。
- PutObjectオペレーションの呼び出し時に「AccessDenied」レスポンスが返される。
- 次の2点を確認します。
aws s3api put-object
コマンドを使用してカタログファイルをアップロードする際、--acl bucket-owner-full-control
パラメーターを含めていることを確認します。- IAMユーザーにS3バケットへのアクセス権限が正しく設定されていることを確認します。IAMユーザーにAmazon S3バケットへのアクセス許可を付与するのセクション(手順3: カタログ統合用にAWSアカウントをセットアップするの手順Dにあります)を確認してください。
- PutObjectオペレーションの呼び出し時に「InvalidAccessKeyId」レスポンスが返される。
- AWSアクセスキーIDが無効になっています。IAMユーザーが新しいアクセスキーを持っているか確認します。IAMユーザーにAmazon S3バケットへのアクセス許可を付与するのセクション(手順3: カタログ統合用にAWSアカウントをセットアップするの手順Dにあります)を確認してください。
次のステップ
これでカタログファイルがアップロードされました。次の 手順5: アップロードしたカタログファイルを検証するに進んでください。