问题描述
我正在为我的环境创建AWS Cloudformation模板,但找不到为API网关方法启用CORS的方法。
I'm creating AWS Cloudformation template for my environment and I can't find a way to enable CORS for API Gateway method.
我可以使用AWS对其进行配置控制台(),但是如何在Cloudformation模板中做到这一点?
I can configure it using AWS console (here is the official doc), but how can I do it in the Cloudformation template?
推荐答案
经过反复试验,我发现以下CloudFormation模板代码段与CORS控制台向导相比,将产生等效的OPTIONS方法:
After some trial and error, I found that the following CloudFormation template snippet will produce an equivalent OPTIONS method when compared to the CORS console wizard:
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
以包含所需的值。
*Note 1: This is an example of taking the defaults for a POST. Obviously, you'll need to update Access-Control-Allow-Methods
to include the values you need.
*注2 :非常感谢AWS CloudFormation团队最近引入了YAML支持。如果您需要转换为YAML / JSON,或从YAML / JSON进行转换,我发现此站点非常方便:
*Note 2: Kudos to the AWS CloudFormation team for recently introducing YAML support. If you need to convert to/from YAML/JSON, I have found this site handy: http://www.json2yaml.com/
这篇关于在Cloudformation模板中为API网关启用CORS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!