7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CloudFrontとAmplifyではHTTPレスポンスヘッダの優先度が異なる?

Last updated at Posted at 2023-07-20

結論

CloudFrontのキャッシュビヘイビアと、Amplifyのカスタムヘッダでは優先順位が異なる!

CloudFrontの場合

最初に提示した ワイルドカードルールに従ったビヘイビアが選ばれる
つまり、複数のパスパターンにマッチする場合は、最初にマッチしたものが適用される

Amplifyの場合

最後に提示した ワイルドカードルールに従ったパスパターンが選ばれる
つまり、複数のパスパターンにマッチする場合は、最後にマッチしたものが適用される

↓ この場合、**/* に一致する/assets/* でも、Cache-Control = s-maxage=3600が適用される!
この挙動めっちゃ気持ち悪いのでCloudFrontに統一してほしい

customHttp.yml
applications:
  - customHeaders:
      - pattern: '**/*'
        headers:
          - key: 'Cache-Control'
            value: 'no-store'
      - pattern: '/assets/*'
        headers:
          - key: 'Cache-Control'
            value: 's-maxage=36000'

(おまけ) HTTPレスポンスヘッダの追加方法

Cloudfrontの場合

キャッシュビヘイビアの設定で、HTTPレスポンスヘッダを追加できる。
また、レスポンスヘッダポリシーを設定することで、HTTPレスポンスヘッダをテンプレート化できる。
https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/modifying-response-headers.html

Amplifyの場合

デフォルトではHTTPレスポンスヘッダを追加することはできないが、パフォーマンスモードを有効化している時にカスタムヘッダの設定をすることで、HTTPレスポンスヘッダを追加することができる。
https://docs.aws.amazon.com/ja_jp/amplify/latest/userguide/custom-headers.html

一言

AWS Amplifyは独自の仕様がいっぱいあって難しい😭

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?