アセットをAWS S3にプッシュし、CloudFrontを介してファイルを提供することで、シングルページアプリケーションのWebサイトを展開します。 this answerによれば、自分のドメインでSSLを使用してS3から直接ファイルを提供することはできないため、この方法でファイルを提供する場合はCloudFrontの使用について選択する必要はありません。AWS CloudFrontルートオブジェクトアップデートの待ち時間
再デプロイすると、新しいタイムスタンプ付きのルートHTMLファイル(それ自体が更新されたJSバンドルとCSSバンドルにリンクします)を生成し、それをS3にプッシュして、新しいファイルを新しいデフォルトルートオブジェクトにしますAWS経由のCloudFront配布用です。これにより、CloudFrontはすべてをキャッシュし、更新を隠すことができなくなります。
問題は、CloudFrontがルートオブジェクトを更新するのに時間がかかることがあることです。私がこれを書いているとき、私は、ヒット・プロダクションに重要な変化を待っているごとに、60秒ごとにリフレッシュ・リフレッシュを実行します。 CloudFrontは、Webコンソールを介して正しい(最新の)ルートオブジェクトを表示しますが、「Status:In Progress」も表示します。
時には、この遅延はほとんど目立たず、それ以外はかなり長いです。今日は1時間遅れに近づいています。私はこの問題を回避するにはどうすればよい
?私は、S3とCloudFrontを使用してこのデプロイメントメソッドを変更したり、このユースケースをよりよく処理することが知られている代替プラットフォームに切り替えることができます。
ルートオブジェクトを変更した後、 '/'に対してキャッシュを無効にします。ルートオブジェクトを変更しても、キャッシュからの '/'に対するリクエストに対する古いレスポンスは削除されません。 –
面白いマイケル、私はそれを試してみます。ありがとうございました! –