とりあえずメモレベルで残す
装飾とかまとめはまた別途書きます。
やりたかったこと
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