

# 为 API Gateway 中的 REST API 创建部署
创建 部署。

 在 API Gateway 中，以[部署](https://docs.amazonaws.cn/apigateway/latest/api/API_Deployment.html)资源来表示REST API 部署。它类似于由 [RestApi](https://docs.amazonaws.cn/apigateway/latest/api/API_RestApi.html) 资源表示的 API 的可执行文件。

要让客户端调用 API，您必须创建部署并将阶段与其关联。阶段由[阶段](https://docs.amazonaws.cn/apigateway/latest/api/API_Stage.html)资源表示。它代表 API 的快照，包括方法、集成、模型、映射模板、Lambda 授权方（以前称为自定义授权方）。更新 API 时，您可以通过将新阶段与现有部署关联来重新部署 API。我们在[为 API Gateway 中的 REST API 设置阶段](set-up-stages.md)中介绍了创建阶段。

**Topics**
+ [

## 创建 部署。
](#create-deployment)
+ [

## API 部署的后续步骤
](#apigateway-deployment-next-steps)

## 创建 部署。


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

------
#### [ Amazon Web Services 管理控制台 ]

 您必须先创建 REST API，然后才能对其进行首次部署。有关更多信息，请参阅 [开发 API Gateway 中的 REST API](rest-api-develop.md)。

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

1. 通过以下网址登录到 Amazon API Gateway 控制台：[https://console.aws.amazon.com/apigateway](https://console.amazonaws.cn/apigateway)。

1.  在 **APIs** 导航窗格中，选择您要部署的 API。

1. 在**资源**窗格中，选择 **Deploy API (部署 API)**。

1. 对于**阶段**，请从以下选项中进行选择：

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

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

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

1. 选择**部署**。

------
#### [ Amazon CLI ]

创建部署时，您实例化[部署](https://docs.amazonaws.cn/apigateway/latest/api/API_Deployment.html)资源。

使用以下 [create-deployment](https://docs.amazonaws.cn/cli/latest/reference/apigateway/create-deployment.html) 命令创建新部署。

```
 aws apigateway create-deployment --rest-api-id rest-api-id
```

在将此部署与阶段关联之后，您才能调用 API。对于现有阶段，您可以使用新创建的部署 ID 来更新阶段的 [deploymentId](https://docs.amazonaws.cn/apigateway/latest/api/API_Stage.html#deploymentId) 属性，从而完成此操作。以下 [update-stage](https://docs.amazonaws.cn/cli/latest/reference/apigateway/update-stage.html) 命令使用新部署更新阶段：在控制台中，这被称为**活跃部署**。

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

在您创建部署时，还可以同时将部署与新阶段关联。以下 [create-stage](https://docs.amazonaws.cn/cli/latest/reference/apigateway/create-deployment.html) 命令创建新部署并将其与名为 `beta` 的阶段关联：

```
 aws apigateway create-deployment \
    --rest-api-id rest-api-id \
    --stage-name beta
```

------

要重新部署 API，请执行相同的步骤。您可以重用同一个阶段。

## API 部署的后续步骤


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

修改阶段设置  
部署完 API 后，您可以修改阶段设置，以启用或禁用 API 缓存、日志记录或请求限制。您还可以为后端选择客户端证书以对 API Gateway 进行身份验证，并设置阶段变量，从而在运行时将部署上下文传递至 API 集成。有关更多信息，请参阅 [修改阶段设置](set-up-stages.md#how-to-stage-settings)  
修改阶段设置后，您必须重新部署 API 才能使更改生效。  
 如果启用日志记录等更新的设置要求使用新的 IAM 角色，您无需重新部署 API 即可添加所需的 IAM 角色。但是，新的 IAM 角色可能需要几分钟才能生效。在该角色生效之前，即使您已启用日志记录选项，系统也不会记录对 API 调用的跟踪。

选择不同的部署阶段组合  
 由于部署代表 API 快照，而阶段可定义到快照的路径，因此您可以选择不同的部署阶段组合，以控制用户如何调用不同版本的 API。这非常有用，例如，如果您想将 API 状态回滚至上一个部署，或者将 API 的“私有分支”合并到公有分支中，就可以这样做。  
 以下过程介绍如何在 API Gateway 控制台中使用**阶段编辑器**执行此操作。我们假定您已多次部署 API。  

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

1. 选择要更新的阶段。

1. 在**部署历史记录**选项卡上，选择您希望阶段使用的部署。

1. 选择**更改活动部署**。

1. 确认要更改活动部署，然后在**设为活动部署**对话框中，选择**更改活动部署**。

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