Synchronizer の構成

このセクションでは、Synchronizer について説明します。

Synchronizer の概要

Apigee ハイブリッドにおける Synchronizer の主な役割は、管理プレーンにより提供されるランタイム契約をポーリングしてダウンロードすることです。契約により通知される情報には、API プロキシ、API プロダクト、キャッシュ、仮想ホストなどがあります。

ランタイム プレーンで実行中の Synchronizer インスタンスは、定期的に管理プレーンをポーリングして、契約をダウンロードし、ローカル ランタイム インスタンスでも使用できるようにします。

1 つの Synchronizer は、同じポッドにデプロイされた多数の Message Processor をサポートできます。

Synchronizer アクセスを有効にする

プロキシ バンドルやリソースなどの Apigee アーティファクトを管理プレーンから pull するには、Synchronizer の権限を付与する必要があります。管理プレーンからランタイム プレーンにアーティファクトを pull するには、Apigee API を呼び出して Synchronizer を承認する必要があります。

  1. GCP の設定手順で説明したように、Apigee API が有効になっていることを確認します。詳細については、ステップ 3: API を有効にするをご覧ください。
  2. サービス アカウントの作成の一環でダウンロードした書き込み可能な GCP サービス アカウント キー(JSON ファイル)を特定します。このサービス アカウントには Apigee 組織管理者のロールがあり、名前は「apigee-org-admin」です。このサービス アカウントをまだ作成していない場合は、続行する前にアカウントを作成する必要があります。
  3. Apigee 組織管理者サービス アカウント キーを使用し、次のいずれかの方法で OAuth 2.0 アクセス トークンを生成します。このトークンは、Apigee API の認証に必要です。

    gcloud

    gcloud を使用して、OAuth 2.0 アクセス トークンを取得し、GOOGLE_APPLICATION_CREDENTIALS 環境変数を使用してダウンロードしたサービス アカウント認証情報の JSON ファイルを渡します。

    export GOOGLE_APPLICATION_CREDENTIALS=your_sa_credentials_file.json
    gcloud auth application-default print-access-token

    OAuth2.0 トークンが返されます。

    詳細については、gcloud beta auth application-default print-access-token をご覧ください。

    oauth2l ユーティリティ

    oauth2l を使用して、OAuth 2.0 アクセス トークンを取得し、ステップ 1 でダウンロードしたサービス アカウント認証情報の JSON ファイルを渡します。

    oauth2l fetch --json your_sa_credentials_file.json cloud-platform
  4. 返された OAuth 2.0 トークンをコピーして、TOKEN などの変数に格納します。次に例を示します。
    export TOKEN=ya29....Ts13inj3LrqMJlztwygtM
  5. setSyncAuthorization API を呼び出し、Synchronizer に必要な権限を有効にします。
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:synchronizer-manager-service-account-name"]}'
    

    ここで

    • your_org_name: ハイブリッド組織の名前。
    • synchronizer-manager-service-account-name: Apigee Synchronizer 管理者のロールを持つサービス アカウントの名前。この名前はメールアドレスのような形式になります。例: my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com

    例:

    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/my_org:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com"]}'
    

    この API の詳細については、SyncAuthorization API をご覧ください。

  6. サービス アカウントが設定されたことを確認するには、次の API を呼び出して、サービス アカウントのリストを取得します。
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \
       -d ''

    出力は次のようになります。

    {
       "identities":[
          "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com"
       ],
       "etag":"BwWJgyS8I4w="
    }