【发布时间】:2020-08-30 13:18:40
【问题描述】:
我的 API 网关授权有一个 lambda 授权方。当授权方返回 401 或 403 时,我没有在响应标头中返回 CORS。我正在使用AWS::Serverless::Api 资源,经过一些研究发现here 我需要设置GatewayResponses 以返回4XX 响应的自定义标头。
我的 Api 网关定义如下:
resApiGateway:
Type: AWS::Serverless::Api
Properties:
StageName: !Sub "${env}"
EndpointConfiguration: !If [IsLocal, "REGIONAL", "EDGE"]
Cors:
AllowMethods: "'OPTIONS,GET,POST,PUT,DELETE'"
AllowHeaders: "'Content-Type,X-Amz-Date,Authorization'"
AllowOrigin: "'*'"
GatewayResponses:
DEFAULT_4XX:
ResponseParameters:
"gatewayresponse.header.Access-Control-Allow-Origin": "'*'"
...
...
但我在 cfn 堆栈部署时遇到错误:
Transform AWS::Serverless-2016-10-31 failed with: Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [resApiGateway] is invalid. Invalid gateway response parameter 'gatewayresponse.header.Access-Control-Allow-Origin'
【问题讨论】:
-
你试过this syntax?(
Headers:下ResponseParameters) -
太棒了,它成功了!谢谢@MikePatrick。请把它放在答案中,以便我接受。
标签: amazon-web-services aws-lambda aws-api-gateway aws-sam