Synchronizer を構成する

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

Synchronizer の概要

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

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

1 つの Synchronizer により、同じ Pod にデプロイされた複数の Message Processor がサポートされます。

Synchronizer アクセスを有効にする

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

  1. Google Cloud の設定手順で説明したように、Apigee API が有効になっていることを確認します。詳しくは、API を有効にするをご覧ください。
  2. サービス アカウントと認証情報の作成の一環でダウンロードした書き込み可能な Google Cloud サービス アカウントキー(JSON ファイル)を探します。このサービス アカウントには Apigee 組織管理者のロールがあり、名前は apigee-org-admin です。このサービス アカウントをまだ作成していない場合は、アカウントを作成してから続行する必要があります。
  3. GOOGLE_APPLICATION_CREDENTIALS 環境変数をサービス アカウント キーが置かれているパスに設定します。

    export GOOGLE_APPLICATION_CREDENTIALS=your_sa_credentials_file.json
  4. setSyncAuthorization API を呼び出して、Synchronizer に必要な権限を有効にします。
    curl -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-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 $(gcloud auth application-default print-access-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 の詳細については、setSyncAuthorization API をご覧ください。

  5. サービス アカウントが設定されていることを確認するには、次の API を呼び出してサービス アカウントのリストを取得します。
    curl -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-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="
    }