在 API Gateway 中为 REST API 设置使用计划 - Amazon API Gateway
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 阶段值(apiIdstage)与所含的 API 密钥进行关联(通过 UsagePlanKey)。

要检查您是否已迁移到默认使用计划,请使用 get-account CLI 命令。在命令输出中,当启用使用计划时,features 列表将包括 "UsagePlans" 的条目。

您还可以使用 Amazon CLI 将您的 API 迁移到默认使用计划,如下所示:

使用 Amazon CLI 迁移到默认使用计划
  1. 调用此 CLI 命令:update-account

  2. 对于 cli-input-json 参数,使用以下 JSON:

    [ { "op": "add", "path": "/features", "value": "UsagePlans" } ]

创建使用计划

以下过程介绍如何创建使用计划。

Amazon Web Services Management Console
创建使用计划
  1. 通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway

  2. 在 API Gateway 主导航窗格中,选择使用计划,然后选择创建使用计划

  3. 对于名称,输入名称。

  4. (可选)对于描述,输入描述。

  5. 默认情况下,使用计划会启用节流。为您的使用计划输入速率突增。选择节流可关闭节流。

  6. 默认情况下,使用计划会针对一个时间段启用配额。对于请求,输入用户在使用计划的时间段内,可以发出的请求总数。选择配额可关闭配额。

  7. 选择创建使用计划

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
将阶段添加到使用计划中
  1. 选择您的使用计划。

  2. 关联的阶段选项卡下,选择添加阶段

  3. 对于 API,选择一个 API。

  4. 对于阶段,选择一个阶段。

  5. (可选)要开启方法级别的节流,请执行以下操作:

    1. 选择方法级别节流,然后选择添加方法

    2. 对于资源,从您的 API 中选择一个资源。

    3. 对于方法,从您的 API 中选择一种方法。

    4. 为您的使用计划输入速率突增

  6. 选择添加至使用计划

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
将密钥添加到使用计划中
  1. 关联的 API 密钥选项卡下,选择添加 API 密钥

    1. 要将现有密钥与您的使用计划关联,请选择添加现有密钥,然后从下拉菜单中选择您的现有密钥。

    2. 要创建新 API 密钥,请选择创建并添加新密钥,然后创建新密钥。有关如何创建新密钥的更多信息,请参阅创建 API 密钥

  2. 选择添加 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 密钥 (用 namedescriptionusageplanIds 进行标识):

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 密钥只能与一个使用计划关联。