AWS S3で配信するhtmlからCORS (Cross-Origin Resource Sharing)を行う ================================================================== 動機 ---- | 一般公開されるAPIは基本的にブラウザからのアクセスはできない(CORS)。 | S3でサイトを公開している場合には何かを経由する必要がある。 | サーバの管理をしたくないからS3を選択したので楽して解決したい。 AWS API Gateway を使う ---------------------- 1. サービス一覧のアプリケーションサービスにある API Gateway 選択してAPI管理画面に移る 2. ``Create API``\ を押して\ ``New API``\ を作成する 3. Actions > Crate Resource で適当なリソースを作成する(しなくてもいい) 4. Actions > Create Method で目的にあったhttpメソッドを作る 5. 以下を入力して保存する :: Integration type : HTTP Proxy HTTP method : 利用したいAPIのメソッド Endpoint URL : 利用したいAPIのURL 6. Method Request を選択して、URL Query String Parameters に渡したい値を追加する 7. Actions > Enable CORS でCORSを許可する設定にする(自動でしてくれる) 8. Actions > Deploy API でステージに上げる(これで使えるようになる) 9. 出来上がった API を S3 の html から叩く 感想 ---- | 思いのほか簡単に解決できた。 | APIで取得したデータを加工して渡したいときは API から Lambda を呼び出して Lambda から API を叩くこともできる。