

# 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) リソースによって表されます。これは、メソッド、統合、モデル、マッピングテンプレート、Lambda オーソライザー (以前のカスタムオーソライザー) を含む API のスナップショットを表します。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 は、初めてデプロイする前に作成済みであることが必要です。詳細については、「[API Gateway で REST API を開発する](rest-api-develop.md)」を参照してください。

 API Gateway コンソールでは、デプロイを作成して新規または既存のステージに関連付けることで API をデプロイできます。

1. [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway) で API Gateway コンソールにサインインします。

1.  [**API**] ナビゲーションペインで、デプロイする API を選択します。

1. [**リソース**] ペインで、[**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 を呼び出すことはできません。既存のステージでは、そのために、ステージの [deploymentId](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#deploymentId) プロパティを新しく作成されたデプロイ ID で更新します。次の [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 ロールを必要とする場合、API を再デプロイせずに必要な IAM ロールを追加できます。ただし新しい IAM ロールが有効になるまでには、数分かかる場合があります。有効になるまでは、ログ作成オプションを有効にしていたとしても、API 呼び出しのトレースは記録されません。

さまざまなデプロイステージの組み合わせを選択する  
 デプロイは API スナップショットを表し、ステージはスナップショットへのパスを定義するため、別のデプロイとステージの組み合わせを選択して、ユーザーが API の異なるバージョンを呼び出す方法を制御できます。これは、API のステージを前のデプロイにロールバックしたり、API の「プライベートブランチ」をパブリックブランチにマージしたりする場合に役立ちます。  
 次の手順では、この操作を API Gateway コンソールの [**Stage Editor (ステージエディター)**] を使用して行う方法について説明します。以下では、API を複数回デプロイした経験があることを前提としています。  

1. まだ **[ステージ]** ペインを開いていない場合は、メインナビゲーションペインで **[ステージ]** を選択します。

1. 更新するステージを選択します。

1. **[デプロイ履歴]** タブで、ステージに使用するデプロイを選択します。

1. **[アクティブなデプロイの変更]** を選択します。

1. アクティブなデプロイを変更することを確認し、**[アクティブなデプロイを作成]** ダイアログボックスの **[アクティブなデプロイを変更]** を選択します。

デプロイ固有のデータを API に渡します。  
 デプロイで、ランタイムに API 統合に対してデプロイ固有のデータを渡すようにステージ変数を設定または変更できます。この操作は、[**ステージエディター**] の [**ステージ変数**] タブで行うことができます。詳細については、「[API Gateway で REST API のステージ変数を使用する](stage-variables.md)」の手順を参照してください。