aws-api-gateway - 如何使用 aws-sdk-apigateway 创建使用计划?
问题描述
我正在尝试使用 aws-sdk apigateway 创建使用计划,但收到错误响应。
这是我正在使用的功能:
const params = {
name: 'My usage plan',
description: 'My plan for checking the usage',
apiStages: [
{
apiId: 'b3mzhze48g',
stage: 'dev',
throttle: {
string: {
burstLimit: 4,
rateLimit: 8,
},
},
},
],
throttle: {
burstLimit: 5,
rateLimit: 10,
},
quota: {
limit: 100,
offset: 1,
period: 'WEEK',
},
};
try {
const result = await apigateway.createUsagePlan(params).promise();
res.send(result);
} catch (err) {
res.send(err);
}
这是我的 API 的 id 图像:
这是我收到的错误消息:
{
"message": "Invalid method {resourcePath: string,method: } specified",
"code": "BadRequestException",
"time": "2021-01-31T10:58:28.117Z",
"requestId": "6d175534-e555-4a0d-99ef-1f3fc628e502",
"statusCode": 400,
"retryable": false,
"retryDelay": 80.40030962554764
}
我应该如何修改 apiStages 参数才能在我的 API 中设置特定资源的使用计划?
解决方案
问题在于 apiStages ->throttle,它用于在资源和方法级别进行限制,它是可选的,但如果设置了,键应该是资源 + 方法名称,即 GET /staff/list 方法,/staff/list /GET 应该是关键
apiStages: [
{
apiId: "abc111i6h3",
stage: "dev",
throttle: {
"/staff/list/GET": {
burstLimit: 4,
rateLimit: 8,
},
},
},
]
aws 文档中给出该提示的 示例:
推荐阅读
- azure - 无法将 Azure 搜索添加到 SQL 数据库
- c# - 如何使用 C sharp 在注册表编辑器中设置现有键
- javascript - ASP.NET Core MVC 控制器从 ajax 调用接收输入参数的 null
- javascript - “阅读更多”影响多个盒子 - 如何更改它?(jQuery/JS/CSS)
- r - 在 Fasterize 中选择多个属性?
- azure-active-directory - 如何使用 Microsoft Graph API 根据页码进行分页
- java - 如何扫描 postgreSQL 中的所有数据库?
- navigation - 如何在 Odoo 13 中隐藏“导航菜单”?
- javascript - 在 Material UI 中选择两个项目后自动取消选择“第一个选定项目”
- java - java从其他类获取列表