我正在将Swagger文件导入到Terraform创建的AWS API Gateway部署中,除了启用CORS之外,一切似乎都能正常工作。完成部署后,我总是从任何端点收到403 CORS错误。我必须手动然后在AWS控制台中查看启用CORS。
我通过AWS CLI导入swagger文件,如下所示;
aws apigateway put-rest-api \
--body file://swagger.json \
--mode overwrite \
--rest-api-id ${REST_API_ID}
swagger文件使用以下内容来映射正确的标题;
"x-amazon-apigateway-integration": {
"responses": {
"2\\d{2}": {
"statusCode": "200",
"responseParameters": {
"method.response.header.Access-Control-Allow-Headers" : "'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token,X-Correlation-ID'",
"method.response.header.Access-Control-Allow-Methods" : "'*'",
"method.response.header.Access-Control-Allow-Origin": "'*'"
}
}
}
}
这映射到顶级Swagger文件中的响应代码;
"responses": {
"200": {
"description": "Succesfully created Report",
"headers": {
"Access-Control-Allow-Origin": {
"type": "string"
},
"Access-Control-Allow-Headers": {
"type": "string"
},
"Access-Control-Allow-Methods": {
"type": "string"
}
}
}
}
尽管如此,我仍然在导入Swagger文件后直接获得CORS错误。
这里有什么我想念的吗?