作業環境
- AWS API Gateway
- AWS Lambda
- swagger(Open API)
トラブルの内容
- swaggerで発生するエラーです。
- swaggerでhttpメソッド(get,putなど)の「execute」ボタンを押下したら、
url scheme must be http or https for cors request
というエラーが発生しました。
解決方法
- AWS API Gatewayで「CORSの有効化」をしていなかったことが原因でした。
- リソースを選択した後、アクションのドロップダウンから「CORSの有効化」を選択することができます。
-
CORSを有効化
した後は、APIをデプロイ
するのも忘れないようにしましょう。
参考ページ
-
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/how-to-cors-console.html
- AWSの公式ページです。
- https://qiita.com/silverbox/items/43ecb047908a9580f7bd
感想
- 自分の作業した流れは、以下の通りです。
- Lambda単体で正しいレスポンスが返ってくることを確認する。
- API Gatewayとlambdaを連携してAPI GatewayでテストしてLambdaが正しいレスポンスが返ってくることを確認する。
- swaggerからAPI Gatewayを実行して正しいレスポンスが返ってくることを確認する。
- このような流れで作業を進めていって、表題のトラブルに遭遇しました。
- 「CORSとは何か」もっと勉強する必要があると感じました。