为 API Gateway 中的 REST API 创建部署 - Amazon API Gateway

为 API Gateway 中的 REST API 创建部署

在 API Gateway 中,以部署资源来表示REST API 部署。它类似于由 RestApi 资源表示的 API 的可执行文件。

要让客户端调用 API,您必须创建部署并将阶段与其关联。阶段由阶段资源表示。它代表 API 的快照,包括方法、集成、模型、映射模板、Lambda 授权方(以前称为自定义授权方)。更新 API 时,您可以通过将新阶段与现有部署关联来重新部署 API。我们在为 API Gateway 中的 REST API 设置阶段中介绍了创建阶段。

创建部署

以下过程说明如何为 REST API 创建部署。

AWS Management Console

您必须先创建 REST API,然后才能对其进行首次部署。有关更多信息,请参阅 开发 API Gateway 中的 REST API

借助 API Gateway 控制台,您可以创建部署并将其与新的或现有阶段相关联,从而部署 API。

  1. 通过以下网址登录到 Amazon API Gateway 控制台:https://console.aws.amazon.com/apigateway

  2. APIs 导航窗格中,选择您要部署的 API。

  3. 资源窗格中,选择 Deploy API (部署 API)

  4. 对于阶段,请从以下选项中进行选择:

    1. 要创建新阶段,请选择新建阶段,然后在阶段名称中输入名称。或者,您可以在部署描述中为部署提供描述。

    2. 要选择现有阶段,请从下拉菜单中选择阶段名称。您可能需要在部署描述中为新部署提供描述。

    3. 要创建没有与阶段关联的部署,请选择没有阶段。稍后,您可以将此部署与阶段相关联。

  5. 选择部署

AWS CLI

创建部署时,您实例化部署资源。您可以使用 API Gateway 控制台、AWS CLI、AWS开发工具包或 API Gateway REST API 创建部署。

要使用 CLI 创建部署,请使用 create-deployment 命令:

aws apigateway create-deployment --rest-api-id <rest-api-id> --region <region>

在您将此部署与阶段关联之前,API 不可调用。对于现有阶段,您可以使用新创建的部署 ID (deploymentId) 更新阶段的 <deployment-id> 属性来完成此操作。

aws apigateway update-stage --region <region> \ --rest-api-id <rest-api-id> \ --stage-name <stage-name> \ --patch-operations op='replace',path='/deploymentId',value='<deployment-id>'

首次部署 API 时,您可以将阶段创建和部署创建结合起来同时进行:

aws apigateway create-deployment --region <region> \ --rest-api-id <rest-api-id> \ --stage-name <stage-name>

这是在您首次部署 API 或者将 API 重新部署到新阶段时,API Gateway 控制台在后台完成的任务。

要重新部署 API,请执行相同的步骤。您可以根据需要多次重复使用同一个阶段。

API 部署的后续步骤

以下是 API 部署的后续步骤。

修改阶段设置

部署完 API 后,您可以修改阶段设置,以启用或禁用 API 缓存、日志记录或请求限制。您还可以为后端选择客户端证书以对 API Gateway 进行身份验证,并设置阶段变量,从而在运行时将部署上下文传递至 API 集成。有关更多信息,请参阅 修改阶段设置

修改阶段设置后,您必须重新部署 API 才能使更改生效。

注意

如果启用日志记录等更新的设置要求使用新的 IAM 角色,您无需重新部署 API 即可添加所需的 IAM 角色。但是,新的 IAM 角色可能需要几分钟才能生效。在该角色生效之前,即使您已启用日志记录选项,系统也不会记录对 API 调用的跟踪。

选择不同的部署阶段组合

由于部署代表 API 快照,而阶段可定义到快照的路径,因此您可以选择不同的部署阶段组合,以控制用户如何调用不同版本的 API。这非常有用,例如,如果您想将 API 状态回滚至上一个部署,或者将 API 的“私有分支”合并到公有分支中,就可以这样做。

以下过程介绍如何在 API Gateway 控制台中使用阶段编辑器执行此操作。我们假定您已多次部署 API。

  1. 如果您尚未打开阶段窗格,请在主导航窗格中选择阶段

  2. 选择要更新的阶段。

  3. 部署历史记录选项卡上,选择您希望阶段使用的部署。

  4. 选择更改活动部署

  5. 确认要更改活动部署,然后在设为活动部署对话框中,选择更改活动部署

将特定于部署的数据传递给您的 API。

对于部署,您可以设置或修改阶段变量,从而在运行时将特定于部署的数据传递至 API 集成。您可以在 Stage Editor (阶段编辑器) 中的 Stage Variables (阶段变量) 选项卡上执行此操作。有关更多信息,请参阅在 API Gateway 中对 REST API 使用阶段变量中的说明。