とりあえずメモレベルで残す
装飾とかまとめはまた別途書きます。
やりたかったこと
Route53に登録したホストゾーンのドメインに対して、URLから判定してS3かAPIGatewayに飛ばす
- Default (*)の場合はS3(Staticページ)に飛ばす
-
/api/*
の場合はAPIGatewayに飛ばす
ハマったところ
- APIGatewayのStageが
dev
を設定 - CloudFrontの
Origins
に設定したAPIGatewayの設定のOrigin Path
に/dev
を設定 -
CloudFront
のBehaviors
のPath Pattern
には/api/*
されていた -
<cloud front path>/api/*
でAPI叩いたら"message": "Missing Authentication Token"
が返ってきた
原因
- 上記の設定だと、APIGatewayの
/api/dev/
Stageにアクセスしようとするため、リソースがないと言われる - CloudFrontの
Behaviors
のPath Pattern
に設定する値と、APIGatewayのStageが一致している必要がある - CloudFrontの
Origins
に設定したAPIGatewayの設定のOrigin Path
の値は設定しない
対応
- APIGatewayのStageに
api
を追加 - CloudFrontの
Behaviors
のPath Pattern
に/api/*
を設定 - CloudFrontの
Origins
のOrigin Path
の設定値はなし
参照ページ
“Missing Authentication Token” — CloudFront/APIG Troubleshooting