オリジンサーバー上のファイルを更新しました。ですが、Amazon CloudFront はまだ古いコンテンツをユーザーに提供しています。
簡単な説明
デフォルトでは、CloudFront は、オリジンからのレスポンスに含まれるキャッシュコントロールヘッダーと、CloudFront ディストリビューションのキャッシュ動作における最小、最大、デフォルトの TTL 値に基づいて、エッジロケーションにレスポンスをキャッシュします。
設定した値に基づいて、CloudFront はキャッシュの有効期限が切れるまでキャッシュされたファイルを提供します。更新されたファイルをすぐに提供するには、ファイルを無効にして CloudFront のキャッシュからオブジェクトを削除します。
注: Cookie やクエリ文字列、ヘッダーを使用して応答を変更するオブジェクトの特定のバージョンを無効にすることはできません。無効化すると、オブジェクトのすべてのバージョンが削除されます。
解決策
重要: ファイルを無効にすると、料金が発生する可能性があります。詳細については、「ファイルの無効化に対する支払い」を参照してください。
AWS コンソールを使用してファイルを無効化する
AWS コンソールを使用してファイルを無効化するには、「コンソールを使用してファイルを無効化する」を参照してください。
AWS CLI を使用してファイルを無効化する
**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーを受け取った場合は、最新の AWS CLI バージョンを使用していることを確認してください。
AWS CLI を使用してファイルを無効化するには、create-invalidation コマンドを使用します。
aws cloudfront create-invalidation --distribution-id EDFDVBD6EXAMPLE --paths "/example-path/index.html"
注: EDFDVBD6EXAMPLE は、ファイルを提供しているディストリビューションの ID に置き換えてください。
無効化の現在のステータスを確認するには、get-invalidation コマンドを使用します。
aws cloudfront get-invalidation --id I2J0I21PCUYOIK --distribution-id EDFDVBD6EXAMPLE
注: EDFDVBD6EXAMPLE は、ファイルを提供しているディストリビューションの ID に置き換えてください。
無効化が完了するまでステータスをポーリングするには、以下のコマンドを使用します。
aws cloudfront wait invalidation-completed --id I2J0I21PCUYOIK --distribution-id EDFDVBD6EXAMPLE
注: EDFDVBD6EXAMPLE は、ファイルを提供しているディストリビューションの ID に置き換えてください。
関連情報
CloudFront で Amazon S3 の古いコンテンツが提供されるのはなぜですか?