自分の環境にAWS Cloudformationテンプレートを作成していますが、CORS for API Gatewayメソッドを有効にする方法が見つかりません。CloudformテンプレートのCORS for API Gatewayを有効にする
AWSコンソール(here is the official doc)を使用して設定できますが、Cloudformテンプレートでどのように行うことができますか?
自分の環境にAWS Cloudformationテンプレートを作成していますが、CORS for API Gatewayメソッドを有効にする方法が見つかりません。CloudformテンプレートのCORS for API Gatewayを有効にする
AWSコンソール(here is the official doc)を使用して設定できますが、Cloudformテンプレートでどのように行うことができますか?
は、いくつかの試行錯誤の後、私は、CORSコンソール・ウィザードと比較した場合、次のCloudFormationテンプレートスニペットが同等OPTIONSメソッドを生成することがわかっ:
OptionsMethod:
Type: AWS::ApiGateway::Method
Properties:
AuthorizationType: NONE
RestApiId:
Ref: MyApi
ResourceId:
Ref: MyResourceOnWhichToEnableCORS
HttpMethod: OPTIONS
Integration:
IntegrationResponses:
- StatusCode: 200
ResponseParameters:
method.response.header.Access-Control-Allow-Headers: "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'"
method.response.header.Access-Control-Allow-Methods: "'POST,OPTIONS'"
method.response.header.Access-Control-Allow-Origin: "'*'"
ResponseTemplates:
application/json: ''
PassthroughBehavior: WHEN_NO_MATCH
RequestTemplates:
application/json: '{"statusCode": 200}'
Type: MOCK
MethodResponses:
- StatusCode: 200
ResponseModels:
application/json: 'Empty'
ResponseParameters:
method.response.header.Access-Control-Allow-Headers: false
method.response.header.Access-Control-Allow-Methods: false
method.response.header.Access-Control-Allow-Origin: false
*注1:これは一例ですPOSTのデフォルトを取る。明らかに、必要な値を含めるにはAccess-Control-Allow-Methods
を更新する必要があります。
注2:最近YAMLサポートを導入したAWS CloudFormationチームの功績。 YAML/JSONとの変換が必要な場合は、このサイトが便利であることがわかりました:http://www.json2yaml.com/
自動CORS設定のAPIゲートウェイサポートは、現在、APIゲートウェイコンソールを介してのみ機能します。 APIをSwaggerからインポートするときやCloudFormation経由でAPIを定義するときにCORSを自分で設定することはできますが、OPTIONSメソッドを設定するためのすべてのパラメータを指定し、他のメソッドにCORS固有のヘッダを追加する必要があります。
This pageは、スガッガをインポートする際にCORSを設定する方法を示しています。 CloudFormationを介してCORSを設定することは概念的には似ていますが、Swagger構文ではなくCloudFormation構文を使用します。
最後のブール値は 'false'ではなく' true'であるべきですか? –