API プロキシのデプロイ

このページの内容は ApigeeApigee ハイブリッドに該当します。

Apigee Edge のドキュメントを表示します。

API プロキシは、デプロイされるまで呼び出すことはできません。新しい API プロキシを作成するか、既存の API プロキシを変更したら、それをクラスタにデプロイできます。

ベースパスを変更せずに API プロキシの新しいリビジョンを作成し、それをデプロイ済みリビジョンが存在する環境にデプロイすると、以前のリビジョンのデプロイが解除され、新しいリビジョンがデプロイされます。

API プロキシをデプロイする

以下のセクションの説明に従って、API プロキシ リビジョンをデプロイします。

新しいプロキシ エディタ

Apigee UI で API プロキシをデプロイするには:

  1. Cloud コンソールの Apigee UI を使用している場合: [プロキシ開発] > [API プロキシ] を選択します。

    従来の Apigee UI を使用している場合: [Develop] > [API Proxies] を選択して、[プロキシ] ペインでプロキシの環境を選択します。

  2. デプロイする API プロキシをクリックします。UI に [Overview] ページが表示されます。

    API プロキシの詳細(環境ごとのデプロイ ステータス、プロキシ エンドポイントの詳細、ターゲット エンドポイントの詳細など)。

  3. 変更をデプロイするには、まず [Deploy] をクリックして [Deploy] ダイアログを表示します。

    プロキシ エクスプローラで選択されたターゲット エンドポイント。

  4. 次のように入力します。
    • Revision: デプロイするプロキシのリビジョン番号。
    • Environment: プロキシをデプロイする環境。
    • Service account(省略可): プロキシのサービス アカウント
  5. [Deploy] をクリックします。

選択したリビジョンのデプロイ プロセスが開始します。

プロキシがデプロイされると、[Deployments] セクションの [Status] 列には、プロキシのリビジョン 1 がデプロイされていることを示す緑色のアイコンが表示されます。

デプロイされたプロキシのステータスを表すアイコン

従来のプロキシ エディタ

Apigee UI で API プロキシをデプロイするには:

  1. Apigee UI にログインします。
  2. [Develop] > [API Proxies] を選択します。

    UI に、API プロキシとそのデプロイ ステータスのリストが表示されます。

    名前、ステータス、24 時間を超えるトラフィック、作成者、最終更新日時を含む API プロキシのリスト。

  3. [Environment] プルダウン リストから、API プロキシをデプロイする環境を選択します。
  4. デプロイする API プロキシをクリックします。

    UI に [API Proxies Overview] タブが表示されます。このビューでは、[Deployments]、[Proxy Endpoints]、[Target Endpoints] セクションを確認できます。

    API プロキシの詳細(環境ごとのデプロイ ステータス、プロキシ エンドポイントの詳細、ターゲット エンドポイントの詳細など)。

    以前にデプロイしたことのない新しい API プロキシ(またはデプロイ解除された API プロキシ)の場合、[Revision] 列には「Not deployed」と表示されます。

  5. [Revision] 列でプルダウン セレクタを展開します。

    以前にデプロイされていない新しい API プロキシである場合、プルダウン リストには [1] と [Undeploy] のみが表示されます。

    プロキシの最初のリビジョンをデプロイします。

    複数のリビジョンがある API プロキシの場合、プルダウン リストには選択可能な全リビジョンと [Undeploy] が表示されます。

    テスト環境に対するプルダウン メニューでの API プロキシの詳細の [Deployments] セクション。

  6. プルダウン リストからデプロイするリビジョンを選択します。

    デプロイの確認を求めるメッセージが UI に表示されます。

    API プロキシの詳細の [Deployments] セクション。本番環境用にリビジョン 3 が選択されている。

  7. [Deploy] をクリックします。

    選択したリビジョンのデプロイ プロセスが開始します。

    [Status] 列の [Details] リンクにカーソルを合わせると、デプロイのステータスが表示されます。すでに 1 つ以上のリビジョンがデプロイされている場合は、次の図に示すように、デプロイ解除のステータスをモニタリングできます。詳しくは、ゼロ ダウンタイムでのデプロイをご覧ください。

    my-new-proxy をデプロイしてテスト環境を確認する

    デプロイが完了すると、[Status] にリビジョンが完全にデプロイされたことが表示されます。

    リビジョン 18 が 75% デプロイされ、リビジョン 17 が 25% デプロイされていることを示しているデプロイ ステータス

    デプロイは短時間のプロセスではありません。Apigee の結果整合性デプロイモデルでは、新しいデプロイはすぐにではなく、少し間をおいてからクラスタにロールアウトされます。詳細については、デプロイについてをご覧ください。

    ステータス インジケーターの詳細とステータスの確認方法については、デプロイ ステータスの表示をご覧ください。

    リビジョン 18 が完全にデプロイされていることを示しているデプロイ ステータス

また、[Develop] タブで編集中の現在のリビジョンをデプロイすることも可能です。これを行うと、Apigee で新しいリビジョンが作成されます。

  1. [Deploy to: env_name] プルダウン リストをクリックします。

    現在のリビジョンを各環境にデプロイまたはデプロイ解除するためのデプロイのプルダウン

    UI に環境のリストが表示されます。[Revision] 列に、現在デプロイされているリビジョンが表示されます(ない場合は「--」)。

  2. [Deploy revision] をクリックして、最後に編集したリビジョンをデプロイします。

    デプロイの確認を求めるメッセージが UI に表示されます。

  3. [Deploy] をクリックします。

    選択したリビジョンのデプロイ プロセスが開始します。

Apigee API

以下のセクションでは、Apigee API を使用して API プロキシ リビジョンをデプロイし、組織のデプロイを一覧表示する例を示します。

デプロイ ステータスの表示もご覧ください。

デプロイ前にデプロイ変更レポートを作成する

同じ環境グループ内の複数の環境にプロキシをデプロイすると、未定義の動作が発生する可能性があります。これが発生するかどうかを判断するには、次のように generateDeployChangeReport メソッドを使用してレポートを生成します。

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/deployments:generateDeployChangeReport" \
-X POST \
-H "Authorization: Bearer $TOKEN"

これにより、デプロイするプロキシのベースパスが、そのベースパスをすでに使用している既存のデプロイのためにトラフィックを受信しない場合に警告するデプロイ変更レポートが返されます。

API を使用した API プロキシ リビジョンのデプロイ

API プロキシ リビジョンをデプロイするには、次の API 呼び出しを使用します。

curl "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/revisions/$REV/deployments" \
  -X POST \
  -H "Authorization: Bearer $TOKEN"

ここで、OAuth 2.0 アクセス トークンの取得で説明されているように、$TOKEN は OAuth 2.0 アクセス トークンに設定されます。この例で使用されている curl オプションの詳細については、curl の使用をご覧ください。使用される環境変数の説明については、Apigee API リクエストの環境変数の設定をご覧ください。

次に、レスポンス出力の例を示します。この例では、helloworld API プロキシのリビジョン 1test 環境に正常にデプロイされています。

{
  "environment": "test",
  "apiProxy": "helloworld",
  "revision": "1",
  "deployStartTime": "1559149080457"
}

詳細については、API プロキシ リビジョンの API をデプロイするをご覧ください。

API を使用したデプロイの一覧表示

組織の API プロキシのすべてのデプロイと共有フローを一覧表示するには、次の API 呼び出しを入力します。

curl "https://apigee.googleapis.com/v1/organizations/$ORG/deployments" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

ここで、OAuth 2.0 アクセス トークンの取得で説明されているように、$TOKEN は OAuth 2.0 アクセス トークンに設定されます。この例で使用されている curl オプションの詳細については、curl の使用をご覧ください。使用される環境変数の説明については、Apigee API リクエストの環境変数の設定をご覧ください。

レスポンスの例を次に示します。この例では、前のセクションでデプロイされた helloworld など、3 つの API プロキシがデプロイされています。

{
  "deployments": [
    {
      "environment": "test",
      "apiProxy": "helloworld",
      "revision": "1",
      "deployStartTime": "1559149080457"
    },
    {
      "environment": "test",
      "apiProxy": "weather",
      "revision": "1",
      "deployStartTime": "1558620435217"
    },
    {
      "environment": "test",
      "apiProxy": "testproxy",
      "revision": "2",
      "deployStartTime": "1558635113086"
    }
  ]
}

gcloud

以下のセクションでは、gcloud apigee CLI コマンドを使用して API プロキシ リビジョンをデプロイし、組織のデプロイを一覧表示します。

デプロイ ステータスの表示もご覧ください。

サンプルで使用されている環境変数の詳細と説明については、Apigee で gcloud を使用するをご覧ください。

gcloud CLI を使用した API プロキシ リビジョンのデプロイ

API プロキシ リビジョンをデプロイするには、次の gcloud コマンドを使用します。

gcloud apigee apis deploy $REV --api=$API --environment=$ENV

次に、レスポンス出力の例を示します。この例では、helloworld API プロキシのリビジョン 1test 環境に正常にデプロイされています。

Using Apigee organization 'my-org'
apiProxy: helloworld
deployStartTime: '1598032332802'
environment: test
revision: '1'

詳細については、API プロキシ リビジョンの CLI をデプロイするをご覧ください。

gcloud CLI を使用したデプロイメントの一覧表示

組織の API プロキシのすべてのデプロイと共有フローを一覧表示するには、次の gcloud コマンドを使用します。

gcloud apigee deployments list

レスポンスの例を次に示します。この例では、前のセクションでデプロイされた helloworld など、3 つの API プロキシがデプロイされています。

Using Apigee organization `my-org`
 - apiProxy: helloworld
   deployStartTime: 1598032332802
   environment: test
   revision: 1
 - apiProxy: weather
   deployStartTime: 1558620435217
   environment: test
   revision: 1
 - apiProxy: testproxy
   deployStartTime: 1558635113086
   environment: test
   revision: 2

詳しくは、デプロイメントの CLI の一覧表示をご覧ください。

トラブルシューティング

API プロキシをデプロイできない場合は、次の一般的なシナリオのいずれかが該当するかどうかを確認してください。

環境グループの命名に関する制限事項

環境グループ名が命名制限に準拠していない場合、プロキシはデプロイされません。これらの制限を満たさなくても、環境グループを作成してそこに環境を追加できる場合があります。ただし、プロキシをデプロイすることはできません。

命名のガイドラインと制限事項の説明については、環境グループの作成をご覧ください。

以前に使用した環境名で作成された環境

以前に削除された環境と同じ名前の環境を作成すると、プロキシはデプロイされません。たとえば、以前に prod-1 環境を作成して削除した後に prod-1 という名前の環境を作成した場合は、その環境を削除する必要があります。この問題は次の手順で解決できます。

  1. API を使用して、環境グループから prod-1 環境を切断します。
  2. API を使用して prod-1 環境を削除します。
  3. 新しい環境を作成します。例: prod-2
  4. API を使用して、新しい prod-2 環境を環境グループに接続します。