Synchronizer を構成する

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

Synchronizer の概要

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

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

1 つの Synchronizer は、同じポッドにデプロイされた複数の 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. この Apigee 組織管理者サービス アカウント キーを使用して、OAuth 2.0 アクセス トークンを生成します。このトークンは、Apigee API の認証で必要になります。

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

    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 をご覧ください。

  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"]}'
    

    データ所在地

    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/YOUR_ORG_NAME:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:SYNCHRONIZER_MANAGER_SERVICE_ACCOUNT_NAME"]}'
    

    ここで

    • YOUR_ORG_NAME: ハイブリッド組織の名前。
    • CONTROL_PLANE_LOCATION: ハイブリッド インストールでデータ レジデンシを使用する場合のコントロール プレーン データのロケーション。お客様のコアコンテンツ(プロキシ バンドルなど)が保存されるロケーション。リストについては、使用可能な Apigee API コントロール プレーンのリージョンをご覧ください。
    • 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://us-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 をご覧ください。

  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 ''

    データ所在地

    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://CONTROL_PLANE_LOCATION-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="
    }