gpt4 book ai didi

amazon-web-services - 为 API Gateway lambda 授权方设置 CORS header 时出错

转载 作者:行者123 更新时间:2023-12-04 00:19:22 25 4
gpt4 key购买 nike

我的 API 网关授权有一个 lambda 授权方。当授权方返回 401 或 403 时,我没有在响应 header 中返回 CORS。我正在使用 AWS::Serverless::Api资源,经过一番研究发现here我需要设置 GatewayResponses返回 4XX 响应的自定义 header 。

我的 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'

最佳答案

此功能随 SAM v1.11.0 一起发布。 release notes有一个链接到 this sample application template ,它演示了该功能。

不幸的是,亚马逊自己的 SAM 文档(您链接到的)只会将您指向他们的 OpenAPI extension docs .

这些文档似乎展示了如何配置 API Gateway 以将此功能与 OpenAPI 规范一起使用,而不是与 SAM 模板一起使用。

指定 GatewayResponses在您的 SAM 模板中,使用示例应用程序中的语法:

Resources:
restApiGateway:
Type: AWS::Serverless::Api
Properties:
GatewayResponses:
DEFAULT_4XX:
ResponseParameters:
Headers:
Access-Control-Allow-Origin: "'*'"

关于amazon-web-services - 为 API Gateway lambda 授权方设置 CORS header 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61790022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com