gpt4 book ai didi

amazon-web-services - 如何配置 API 网关端点以需要 API key ?

转载 作者:行者123 更新时间:2023-12-03 07:56:56 27 4
gpt4 key购买 nike

我正在使用 AWS CDK 构建 Web 服务。我希望所有端点都需要 api key 才能允许连接。

目前我像这样设置我的网络服务:

    // Define the API Gateway
const api = new apigw.RestApi(scope, 'MyApiGateway', {
defaultCorsPreflightOptions: {
allowOrigins: apigw.Cors.ALL_ORIGINS,
allowMethods: apigw.Cors.ALL_METHODS, // this is also the default
}
});

const apiKeyName = 'myKeyName';
const apiKey = new apigw.ApiKey(scope, 'api-key', {
apiKeyName,
enabled: true
});

// define the usage plan
const usagePlan = api.addUsagePlan('UsagePlan', {
name: 'UsagePlan',
throttle: {
rateLimit: 100,
burstLimit: 200,
},
});

// add the API key to the usage plan
usagePlan.addApiKey(apiKey);

...

resource.addMethod(method, integration, {
apiKeyRequired: true,
requestParameters: {
'method.request.header.x-api-key': true,
},
});

从控制台,我可以看到以下内容:

  1. API key 存在
  2. 使用计划存在,并且包含 API key
  3. 端点显示“授权:无,API key :必需”

但是,使用计划表示“没有关联的阶段”,当我实际尝试调用此 API、将 key 作为查询参数或通过 header 传递时,请求失败,并显示错误代码 403/Forbidden。

我怎样才能做到这一点?

最佳答案

你几乎已经拥有它了。您缺少将使用计划附加到阶段的部分。这是它的文档 https://docs.aws.amazon.com/cdk/api/v1/docs/@aws-cdk_aws-apigateway.UsagePlan.html#addwbrapiwbrstageapistage .

示例如下:

usagePlan.addApiStage({ stage: api.deploymentStage })

关于amazon-web-services - 如何配置 API 网关端点以需要 API key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75844275/

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