我无法找到如何从 apigateway 密钥中获取 api 密钥。我可以获取其 ID 和 ARN,但无法获取其值。我知道您可以在创建密钥时指定值,但不能在创建后指定如何检索它——除非登录到 AWS GUI 并以这种方式找到它。
我查看了 aws-apigateway.ApiKey 的文档,但找不到任何获取该值的方法。https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.ApiKey.html我还查看了 kms 键,因为您可以获得它们的值,但我没有了解它是否可以在 API 网关使用计划的上下文中使用(不包含在下面的代码中)。
如果无法获取该值,是否有办法生成一个不会改变或持续存在的值?我正在使用临时 Jenkins 节点来运行 CDK。
const apiGateway = require('@aws-cdk/aws-apigateway');
...
const apiKey = new apiGateway.ApiKey(this, 'api-key', {
apiKeyName: 'my-api-key',
});
...
new cdk.CfnOutput(this, 'x-api-key-apiKey_id', {
value: apiKey.keyId
});
new cdk.CfnOutput(this, 'x-api-key-apiKey_keyArn', {
value: apiKey.keyArn
});
Run Code Online (Sandbox Code Playgroud) 有人知道为什么对 APIM 的 PUT 请求返回 404 \xe2\x80\x9cResource not found\xe2\x80\x9d 但其他操作类型返回 HTTP 200 吗?
\n我可以使用 APIM 中的测试功能来调用 PUT 操作端点,并且可以检查后端 Web 应用程序上的控制台输出并查看调用是否通过。但是,当使用 Postman 或前端 Web 应用程序时,我们会收到“资源未找到”错误消息。
\n我真的很困惑,因为正如前面提到的,其他动词也可以正常工作。我们从 Swagger 生成 API 端点定义,因此它与用于定义其他端点的方法完全相同。
\n邮递员输出:
\n{\n "statusCode": 404,\n "message": "Resource not found"\n}\nRun Code Online (Sandbox Code Playgroud)\n编辑:端点配置
\n{\n "openapi": "3.0.1",\n "info": {\n "title": "Foo",\n "description": "",\n "version": "1.0"\n },\n "servers": [{\n "url": "https://custom.domain.com"\n }],\n "paths": {\n "/api/v{version}/Tasks/{taskId}/Complete": {\n "put": {\n "tags": ["Tasks"],\n "summary": "/api/v{version}/Tasks/{taskId}/Complete - PUT",\n "operationId": "put-api-v-version-tasks-taskid-complete",\n "parameters": [{\n "name": "taskId",\n "in": …Run Code Online (Sandbox Code Playgroud)