API を使用して API プロキシのデプロイ ステータスを確認する

このセクションでは、Apigee API を使用して API プロキシのデプロイ ステータスを確認する方法について説明します。

  1. 新しい API プロキシの作成とデプロイの説明に従って、テスト API プロキシをデプロイします。
  2. Apigee 組織管理者サービス アカウント キーを使用して JSON ファイルを特定します。このサービス アカウントとキーは、Synchronizer アクセスを有効にするで作成したものです。
  3. 次の 2 つのコマンドを実行して、トークンを取得します。
        export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
        export TOKEN=$(gcloud auth application-default print-access-token)

    ここで org-admin-service-account-file は、Apigee 組織管理者の役割でダウンロードしたサービス アカウント キーへのシステム上のパスです。

  4. 次のパーツで、リビジョン API を呼び出します。
    • ベース URL: https://apigee.googleapis.com/v1
    • エンドポイント URL: /organizations/my-organization/environments/test/apis/myproxy/revisions/1/deployments
    • プロトコル: HTTPS
    • メソッド: GET
    • ヘッダー: "Authorization: Bearer $TOKEN"

    次の例では、これらの設定で curl を使用して、デプロイのリビジョン API を呼び出します。

    curl "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/apis/myproxy/revisions/1/deployments>my-organization/environments/test/apis/myproxy/revisions/1/deployments" \
        -X GET -H "Authorization: Bearer $TOKEN"

    次のようなレスポンスが返されます。

    {
          "deployments": [
            {
              "environment": "test",
              "apiProxy": "myproxy",
              "revision": "1",
              "deployStartTime": "1560782439002",
              "pods": [
                {
                  "podName": "apigee-runtime-my-organization-test-blue-56b642fv429v",
                  "appVersion": "self",
                  "deploymentStatusTime": "1560787671389",
                  "deploymentStatus": "deployed",
                  "statusCode": "200",
                  "statusCodeDetails": "Deployment Success",
                  "deploymentTime": "1560782471370",
                  "podStatus": "active",
                  "podStatusTime": "1560787671389"
                },
                {
                  "podName": "apigee-runtime-my-organization-test-blue-564422f7dmwj",
                  "appVersion": "self",
                  "deploymentStatusTime": "1560787670121",
                  "deploymentStatus": "deployed",
                  "statusCode": "200",
                  "statusCodeDetails": "Deployment Success",
                  "deploymentTime": "1560782485204",
                  "podStatus": "active",
                  "podStatusTime": "1560787670121"
                }
              ],
              "basePath": "/"
            }
          ]
        }

    この例のレスポンスでは、2 つのポッドに関する API プロキシのステータスが表示されます。デプロイ ステータスは両方のポッドに deployed されます。

    レスポンスには、クラスタの構成に応じて、これよりも多いまたは少ないポッドに関する API プロキシのデプロイ ステータスが表示されることがあります。

    レスポンスが空の場合やエラーが発生した場合は、次の点を確認してください。

    • 正しいベース URL を使用していること。ハイブリッドのベース URL は、Edge API のベース URL と同じではありません。https://apigee.googleapis.com/v1 を使用してください。
    • 正しいエンドポイント URL を使用していること。リビジョンは「1」で、エンドポイントは /organizations/my_organization/environments/test/apis/myproxy/revisions/1/deployments です。存在しないリビジョンを指定すると、次のような空のレスポンスが返されます。
      { }
    • リクエストに指定した組織へのアクセス権を所有していること。
    • トークンの有効期限が切れていないこと。切れている場合は、OAuth 2.0 アクセス トークンの取得の説明に従って新しいトークンを再生成します。
    • "Authorization: Bearer $TOKEN" ヘッダーを引用符で囲んでいること。

このセクションでは、プロキシの同期とデプロイの確認に使用できるその他の方法について説明します。

デプロイされたプロキシのリスト

classification/tree API を使用して、MP にデプロイされたプロキシをリストします。

  1. クラスタ内のポッドの名前を取得します。
    kubectl get pods -n namespace
  2. ポート転送を使用して、apigee-runtime ポッドにアクセスします。ポート転送の構文は次のとおりです。
    kubectl port-forward -n namespace podname 8843:8843

    例:

    kubectl port-forward -n apigee \
            apigee-runtime-my-organization-test-blue-57965b7789-6j4bp 8843:8843
  3. 次の例のように、別のターミナル ウィンドウを開き、curl などのユーティリティを使用して classification/tree API にリクエストを送信します。
    curl -k https://0:8843/v1/classification/tree

    次のレスポンス例には、「test」環境にデプロイされたプロキシの情報が含まれています。

    [ {
          "condition" : "(always matches)",
          "virtualHost" : {
            "env" : "test",
            "name" : "default",
            "org" : "my-organization",
            "tree" : {
              "elements" : [ {
                "application" : "myproxy",
                "basePath" : "/myproxy",
                "name" : "default",
                "revision" : "1"
              } ],
              "name" : "IdentificationTree"
            }
          }
        } ]