API Gateway で REST API のデプロイを作成する - Amazon API Gateway

API Gateway で REST API のデプロイを作成する

API Gateway では、REST API のデプロイは Deployment リソースにより表現されます。これは、RestApi リソースによって表される API の実行可能ファイルと似ています。

クライアントが API を呼び出すには、デプロイを作成してステージを関連付ける必要があります。ステージは、Stage リソースによって表されます。これは、メソッド、統合、モデル、マッピングテンプレート、Lambda オーソライザー (以前のカスタムオーソライザー) を含む API のスナップショットを表します。API を更新すると、新しいステージを既存のステージに関連付けることによって API を再デプロイできます。ステージの作成については、API Gateway で REST API のステージをセットアップする で説明されています。

デプロイの作成

次の手順は、REST API のデプロイを作成する方法を示しています。

AWS Management Console

REST API は、初めてデプロイする前に作成済みであることが必要です。詳細については、「API Gateway で REST API を開発する」を参照してください。

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

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

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

  3. [リソース] ペインで、[API のデプロイ] を選択します。

  4. [ステージ] では、次の中から選択します。

    1. 新しいステージを作成するには、[新規ステージ] を選択し、[ステージ名] に名前を入力します。オプションで [デプロイの説明] にこのデプロイの説明を入力できます。

    2. 既存のステージを選択するには、ドロップダウンメニューからステージ名を選択します。[デプロイの説明] に新しいデプロイの説明を入力することもできます。

    3. ステージに関連付けられていないデプロイを作成するには、[ステージなし] を選択します。後で、このデプロイをステージに関連付けることができます。

  5. [デプロイ] を選択します。

AWS CLI

デプロイを作成するときは、Deployment リソースをインスタンス化します。API Gateway コンソール、AWS CLI、AWS SDK、または API Gateway REST API を使用して、デプロイを作成できます。

CLI を使用してデプロイを作成するには、create-deployment コマンドを使用します。

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

このデプロイをステージに関連付けるまで、API は呼び出し可能ではありません。既存のステージでは、ステージの deploymentId プロパティを新しく作成されたデプロイ ID (<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 コンソールの [Stage Editor (ステージエディター)] を使用して行う方法について説明します。以下では、API を複数回デプロイした経験があることを前提としています。

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

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

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

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

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

デプロイ固有のデータを API に渡します。

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