Amplify Consoleのリダイレクトを使ってリバプロ的なことをやる
AWS Amplify Advent Calendar 2020、15日目の記事です。 やりたいこと Amplifyにホストしているドメインで、特定のパスだけ別のサーバーからレスポンスを返したい。 Headlessなwe […]
広告ここから
広告ここまで
目次
AWS Amplify Advent Calendar 2020、15日目の記事です。
やりたいこと
Amplifyにホストしているドメインで、特定のパスだけ別のサーバーからレスポンスを返したい。
Headlessなwebsiteで運用している場合ですと、CMSが提供しているAPIやfeed・メディアなどを同じパスで使いたいというケースが当たるかなと思います。
やったこと
Amplify Consoleでリダイレクトの設定ができますので、それを使います。
[
{
"source": "/api/<*>",
"target": "https://example.com/api/<*>",
"status": "200",
"condition": null
},
{
"source": "/<*>",
"target": "/404.html",
"status": "404-200",
"condition": null
}
]
<*>
をつけることで、それ以降のパスやクエリをパススルーするようにできます。
よびだしてみる
先程のexample.com/api
というパスを適当なWP APIのエンドポイントに差し替えて試してみました。
$ wget -S --spider https://main.xxxxxxxx.amplifyapp.com/api/wp/v2/pages
HTTP による接続要求を送信しました、応答を待っています…
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Connection: keep-alive
Server: nginx
Date: Wed, 02 Dec 2020 09:10:39 GMT
X-Cached: Wed, 02 Dec 2020 09:10:39 GMT
X-Robots-Tag: noindex
Link: https://example.com/wp-json/; rel="https://api.w.org/"
X-Content-Type-Options: nosniff
Access-Control-Expose-Headers: X-WP-Total, X-WP-TotalPages, Link
Access-Control-Allow-Headers: Authorization, X-WP-Nonce, Content-Disposition, Content-MD5, Content-Type
X-WP-Total: 3
X-WP-TotalPages: 1
Allow: GET
X-Cache-Status: MISS
X-Amz-Cf-Pop: NRT12-C3
Vary: Accept-Encoding
X-Cache: Miss from cloudfront
X-Amz-Cf-Pop: NRT51-C2
X-Amz-Cf-Id: VQ2Q5vZBFeV9Rg1DSuSjoPTdte6kF9GETQKA8paG-TYbZIoU4pIcZQ==
長さ: 特定できません [application/json]
HTTP200ですが、WordPressで処理されたデータが返ってきていることがうかがえる内容です。
あまり出番のあるTipsではないですが、知っていると便利です。