gpt4 book ai didi

aws-api-gateway - CDK API Gateway 默认授权方排除 OPTIONS 方法

转载 作者:行者123 更新时间:2023-12-05 02:00:28 31 4
gpt4 key购买 nike

我正在创建一个 LambdaRestApi在 CDK 中,我想同时启用 CORS 并使用 addProxy 方法添加任何代理。

我目前有以下 CDK 代码:

  const api = new LambdaRestApi(...); // This API has CORS enabled in defaultCorsPreflightOptions
const apiProxy = api.root.addProxy({
defaultMethodOptions: {
authorizationType: AuthorizationType.COGNITO,
authorizer: new CognitoUserPoolsAuthorizer(...),
}
});

我遇到的问题是,当使用 ANY 方法创建代理时,它还会将 OPTIONS 方法设置为需要身份验证。我尝试使用 addMethod 向代理添加一个 OPTIONS 方法来覆盖授权方,但我得到一个错误,指出已经有一个同名的构造。我还试图避免必须将代理中的 anyMethod 字段设置为 false 并添加我自己的方法。 API Gateway CDK 中是否有一种方法可以将默认授权方设置为仅适用于 OPTIONS 方法以外的任何方法?

最佳答案

也有可能在 OPTIONS 方法上显式删除身份验证,这里我也删除了请求中对 X-API-Key 的要求

    const lambdaApi = new apigateway.LambdaRestApi(...) // This API has CORS enabled in defaultCorsPreflightOptions

lambdaApi.methods
.filter((method) => method.httpMethod === "OPTIONS")
.forEach((method) => {
const methodCfn = method.node.defaultChild as apigateway.CfnMethod;
methodCfn.authorizationType = apigateway.AuthorizationType.NONE;
methodCfn.authorizerId = undefined;
methodCfn.authorizationScopes = undefined;
methodCfn.apiKeyRequired = false;
});

关于aws-api-gateway - CDK API Gateway 默认授权方排除 OPTIONS 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67336080/

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