

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 API Gateway 中建立 REST API 的部署
<a name="set-up-deployments"></a>

 在 API Gateway 中，REST API 部署由 [Deployment](https://docs.aws.amazon.com/apigateway/latest/api/API_Deployment.html) 資源代表。它類似於由 [RestApi](https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html) 資源表示之 API 的可執行檔。

為了讓用戶端能呼叫您的 API，您必須建立部署，並建立與其相關聯的階段。階段由 [Stage](https://docs.aws.amazon.com/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)

## 建立部署
<a name="create-deployment"></a>

下列程序顯示如何建立 REST API 的部署。

------
#### [ AWS 管理主控台 ]

 第一次部署 REST API 之前，您必須先進行建立。如需更多詳細資訊，請參閱 [在 APIs Gateway 中開發 REST API](rest-api-develop.md)。

 API Gateway 主控台可讓您透過建立部署並將它與全新或現有階段建立關聯來部署 API。

1. 在以下網址登入 API Gateway 主控台：[https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway)。

1.  在 **API** 導覽窗格中，選擇您要部署的 API。

1. 在 **Resources (資源)** 窗格中，選擇 **Deploy API (部署 API)**。

1. 針對**階段**，請從下列項目中選取：

   1. 若要建立新階段，請選取**新階段**，然後在**階段名稱**中輸入名稱。或者，您可以在**部署說明**中提供部署的說明。

   1. 若要選擇現有階段，請從下拉式選單選取階段名稱。建議您在**部署說明**中提供新部署的說明。

   1. 若要建立與階段沒有關聯的部署，請選取**無階段**。您之後可以再將此部署與階段建立關聯。

1. 選擇**部署**。

------
#### [ AWS CLI ]

當您建立部署時，您可以執行個體化 [Deployment](https://docs.aws.amazon.com/apigateway/latest/api/API_Deployment.html) 資源。

以下 [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) 命令會建立新部署：

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

您須先將此部署與階段建立關聯，才能呼叫 API。若現已有階段，您可使用新建立的部署 ID 更新階段的 [deploymentId](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#deploymentId) 屬性來完成此操作。以下 [update-stage](https://docs.aws.amazon.com/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-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) 命令會建立新的部署，並將其與名為 `beta` 的新階段建立關聯：

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

------

若要重新部署 API，請執行相同步驟。您可以重複使用相同的階段。

## API 部署的後續步驟
<a name="apigateway-deployment-next-steps"></a>

以下是 API 部署的後續步驟。

修改階段設定。  
部署 API 之後，您可以修改階段設定來啟用或停用 API 快取、記錄或請求調節。您也可以選擇後端的用戶端憑證來驗證 API Gateway，並設定階段變數以在執行時間將部署內容傳遞至 API 整合。如需詳細資訊，請參閱[修改階段設定。](set-up-stages.md#how-to-stage-settings)  
修改階段設定之後，您必須重新部署 API，以讓變更生效。  
 如果已更新的設定 (例如啟用記錄功能) 需要新的 IAM 角色，則您可以新增所需的 IAM 角色，而不需要重新部署 API。不過，可能需要幾分鐘的時間，新的 IAM 角色才能生效。發生這種情況之前，不會記錄您 API 呼叫的追蹤，即使您已啟用記錄選項也是一樣。

選擇不同的部署階段組合  
 因為部署代表 API 快照，而階段定義快照的路徑，所以您可以選擇不同的部署階段組合，以控制使用者如何呼叫不同版本的 API。例如，如果您想要將 API 狀態復原到先前的部署，或將 API 的「私有分支」合併至公有分支，則這十分有用。  
 下列程序示範如何在 API Gateway 主控台中使用 **Stage Editor (階段編輯器)** 來執行此操作。假設您必須部署 API 多次。  

1. 如果您尚未在**階段**窗格中，請在主導覽窗格中選擇**階段**。

1. 選取您要更新的階段。

1. 在**部署歷史記錄**索引標籤上，選擇要讓階段使用的部署。

1. 選擇**變更作用中部署**。

1. 確認您要變更作用中部署，然後在**設為作用中部署**對話方塊中選擇**變更作用中部署**。

將部署特定資料傳遞至您的 API。  
 針對部署，您可以設定或修改階段變數，以在執行時間將部署特定資料傳遞至 API 整合。您可以在 **Stage Editor (階段編輯器)** 的 **Stage Variables (階段變數)** 標籤上執行這項操作。如需詳細資訊，請參閱「[在 API Gateway 中使用 REST API 的階段變數](stage-variables.md)」中的說明。