使用无服务器框架将 API 添加到使用计划
Adding API to Usage Plan using Serverless Framework
我的serverless.yaml
文件如下:
service: aws-python
provider:
name: aws
runtime: python2.7
stage: beta
region: us-east-1
package:
include:
- deps
- functions
- lib
functions:
hello:
handler: functions/handler.function_handler
events:
- http:
path: ta
method: GET
- http:
path: ta
method: POST
我想将此 API 添加到使用计划中。这是怎么做到的?
如评论中所述,Serverless 默认不支持此功能。您应该将适当的资源作为自定义资源添加到您的 CloudFormation 模板,或者使用 AWS CLI 或其他 SDK 创建它。
通过以下命令使用 AWS CLI
aws apigateway update-usage-plan --usage-plan-id <PLAN_ID> --patch-operations op=add,path=/apiStages,value=<API_ID>:<API_STAGE>
以上答案已过时。现在支持使用计划和 API 密钥。看这里:https://www.serverless.com/framework/docs/providers/aws/events/apigateway#setting-api-keys-for-your-rest-api
以下是上述文档中的示例:
provider:
apiGateway:
apiKeys:
- free:
- myFreeKey
- ${opt:stage}-myFreeKey
- paid:
- myPaidKey
- ${opt:stage}-myPaidKey
usagePlan:
- free:
quota:
limit: 5000
offset: 2
period: MONTH
throttle:
burstLimit: 200
rateLimit: 100
- paid:
quota:
limit: 50000
offset: 1
period: MONTH
throttle:
burstLimit: 2000
rateLimit: 1000
我的serverless.yaml
文件如下:
service: aws-python
provider:
name: aws
runtime: python2.7
stage: beta
region: us-east-1
package:
include:
- deps
- functions
- lib
functions:
hello:
handler: functions/handler.function_handler
events:
- http:
path: ta
method: GET
- http:
path: ta
method: POST
我想将此 API 添加到使用计划中。这是怎么做到的?
如评论中所述,Serverless 默认不支持此功能。您应该将适当的资源作为自定义资源添加到您的 CloudFormation 模板,或者使用 AWS CLI 或其他 SDK 创建它。
通过以下命令使用 AWS CLI
aws apigateway update-usage-plan --usage-plan-id <PLAN_ID> --patch-operations op=add,path=/apiStages,value=<API_ID>:<API_STAGE>
以上答案已过时。现在支持使用计划和 API 密钥。看这里:https://www.serverless.com/framework/docs/providers/aws/events/apigateway#setting-api-keys-for-your-rest-api
以下是上述文档中的示例:
provider:
apiGateway:
apiKeys:
- free:
- myFreeKey
- ${opt:stage}-myFreeKey
- paid:
- myPaidKey
- ${opt:stage}-myPaidKey
usagePlan:
- free:
quota:
limit: 5000
offset: 2
period: MONTH
throttle:
burstLimit: 200
rateLimit: 100
- paid:
quota:
limit: 50000
offset: 1
period: MONTH
throttle:
burstLimit: 2000
rateLimit: 1000