Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
在 API Gateway 中为 REST API 设置使用计划
在创建使用计划之前,请确保您已设置 API 密钥。有关更多信息,请参阅 在 API Gateway 中为 REST API 设置 API 密钥。
将您的 API 迁移到默认使用计划(如果需要)
如果您在 2016 年 8 月 11 日推出使用计划特征之后 开始使用 API Gateway,则会自动在所有受支持区域为您启用使用计划。
如果您在此日期之前开始使用 API Gateway,则可能需要迁移到默认使用计划。在选定区域中首次使用计划之前,系统将提示您选择启用使用计划选项。在您启用此选项后,您将为与现有 API 密钥关联的每个唯一 API 阶段创建默认使用计划。在默认使用计划中,最初不设置限制或配额限制,API 密钥和 API 阶段之间的关联将复制到使用计划中。API 的行为方式将与之前相同。但是,您必须使用 UsagePlan
apiStages
属性(而不是使用 ApiKey stageKeys
属性)将指定的 API 阶段值(apiId
和 stage
)与所含的 API 密钥进行关联(通过 UsagePlanKey
)。
要检查您是否已迁移到默认使用计划,请使用 get-account
CLI 命令。在命令输出中,当启用使用计划时,features
列表将包括 "UsagePlans"
的条目。
您还可以使用 Amazon CLI 将您的 API 迁移到默认使用计划,如下所示:
使用 Amazon CLI 迁移到默认使用计划
-
调用此 CLI 命令:update-account
-
对于 cli-input-json
参数,使用以下 JSON:
[
{
"op": "add",
"path": "/features",
"value": "UsagePlans"
}
]
创建使用计划
以下过程介绍如何创建使用计划。
- Amazon Web Services Management Console
创建使用计划
通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway。
-
在 API Gateway 主导航窗格中,选择使用计划,然后选择创建使用计划。
-
对于名称,输入名称。
-
(可选)对于描述,输入描述。
-
默认情况下,使用计划会启用节流。为您的使用计划输入速率和突增。选择节流可关闭节流。
-
默认情况下,使用计划会针对一个时间段启用配额。对于请求,输入用户在使用计划的时间段内,可以发出的请求总数。选择配额可关闭配额。
-
选择创建使用计划。
- Amazon CLI
以下 create-usage-plan 命令创建在月初重置的使用计划:
aws apigateway create-usage-plan \
--name "New Usage Plan" \
--description "A new usage plan" \
--throttle burstLimit=10,rateLimit=5 \
--quota limit=500,offset=0,period=MONTH
- REST API
调用 usageplan:create
以创建使用计划。
将阶段添加到使用计划中
以下过程介绍如何将阶段添加到使用计划中。
- Amazon Web Services Management Console
-
将阶段添加到使用计划中
-
选择您的使用计划。
-
在关联的阶段选项卡下,选择添加阶段。
-
对于 API,选择一个 API。
-
对于阶段,选择一个阶段。
-
(可选)要开启方法级别的节流,请执行以下操作:
-
选择方法级别节流,然后选择添加方法。
-
对于资源,从您的 API 中选择一个资源。
-
对于方法,从您的 API 中选择一种方法。
-
为您的使用计划输入速率和突增。
-
选择添加至使用计划。
- Amazon CLI
-
以下 update-usage-plan 命令将 API 的 Prod
阶段添加到使用计划中:
aws apigateway update-usage-plan \
--usage-plan-id abc123 \
--patch-operations op="add",path="/apiStages",value="a1b1c2:Prod"
- REST API
调用 usageplan:update
以更新使用计划。
将 API 密钥添加到使用计划中
以下过程说明如何将 API 密钥添加到使用计划中。
- Amazon Web Services Management Console
-
将密钥添加到使用计划中
-
在关联的 API 密钥选项卡下,选择添加 API 密钥。
-
-
要将现有密钥与您的使用计划关联,请选择添加现有密钥,然后从下拉菜单中选择您的现有密钥。
-
要创建新 API 密钥,请选择创建并添加新密钥,然后创建新密钥。有关如何创建新密钥的更多信息,请参阅创建 API 密钥。
-
选择添加 API 密钥。
- Amazon CLI
-
以下 create-usage-plan-key 命令将现有 API 密钥与使用计划相关联:
aws apigateway create-usage-plan-key \
--usage-plan-id a1b2c3 \
--key-type "API_KEY" \
--key-id aaa111bbb
- REST API
-
调用 usageplankey:create
以将现有 API 密钥与使用计划关联。
还可以在导入 API 密钥时将其与使用计划直接关联。调用 apikey:import
以直接向指定的使用计划添加一个或多个 API 密钥。请求负载应包含 API 密钥值、关联的使用计划标识符、布尔值标记 (用于表明已为使用计划启用密钥),还可能包含 API 密钥名称和描述。
以下 apikey:import
请求示例将向一个使用计划 (用 key
进行标识) 添加三个 API 密钥 (用 name
、description
和 usageplanIds
进行标识):
POST /apikeys?mode=import&format=csv&failonwarnings=fase HTTP/1.1
Host: apigateway.us-east-1.amazonaws.com
Content-Type: text/csv
Authorization: ...
key,name, description, enabled, usageplanIds
abcdef1234ghijklmnop8901234567, importedKey_1, firstone, tRuE, n371pt
abcdef1234ghijklmnop0123456789, importedKey_2, secondone, TRUE, n371pt
abcdef1234ghijklmnop9012345678, importedKey_3, , true, n371pt
因此,将创建三个 UsagePlanKey
资源并将其添加到 UsagePlan
。
您也可以通过这种方式向多个使用计划添加 API 密钥。要执行此操作,请将每个 usageplanIds
列值更改为逗号分隔的字符串,其中包含选定的使用计划标识符并用引号引起来 ("n371pt,m282qs"
或 'n371pt,m282qs'
)。
一个 API 密钥可与多个使用计划关联。一个使用计划可与多个阶段关联。但是,对于 API 的每个阶段,给定 API 密钥只能与一个使用计划关联。