동기화 담당자 구성

이 섹션에서는 동기화 담당자를 설명합니다.

동기화 담당자 개요

Apigee Hybrid에서 동기화 담당자의 기본 작업은 관리 영역에서 제공하는 런타임 계약을 폴링하고 다운로드하는 것입니다. 계약으로 전달되는 정보에는 API 프록시, API 제품, 캐시, 가상 호스트가 포함됩니다.

런타임 영역에서 실행되는 동기화 담당자 인스턴스는 정기적으로 관리 영역을 폴링하고, 계약을 다운로드하고, 로컬 런타임 인스턴스에 동일하게 제공해야 합니다.

하나의 동기화 담당자가 동일한 pod에 배포된 여러 메시지 프로세서를 지원할 수 있습니다.

동기화 담당자 액세스 사용 설정

프록시 번들 및 관리 영역의 리소스와 같은 Apigee 아티팩트를 풀다운할 수 있도록 동기화 담당자 권한을 부여해야 합니다. Apigee API를 호출하여 동기화 담당자가 관리 영역에서 런타임 영역으로 아티팩트를 가져오도록 승인해야 합니다.

  1. GCP 설정 단계에서 설명된 대로 Apigee API를 사용 설정했는지 확인합니다. 자세한 내용은 3단계: API 사용 설정을 참조하세요.
  2. 서비스 계정 만들기의 일부로 다운로드한 쓰기 사용 설정된 GCP 서비스 계정 키(JSON 파일)를 찾습니다. 서비스 계정에는 Apigee 조직 관리자 역할이 있으며 이름은 'apigee-org-admin'입니다. 이전에 이 서비스 계정을 만들지 않은 경우 계속하기 전에 계정을 만들어야 합니다.
  3. GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 서비스 계정 키가 있는 경로로 설정합니다.

    export GOOGLE_APPLICATION_CREDENTIALS=your_sa_credentials_file.json
  4. setSyncAuthorization 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:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:synchronizer-manager-service-account-name"]}'
    

    각 항목의 의미는 다음과 같습니다.

    • your_org_name: 하이브리드 조직의 이름입니다.
    • synchronizer-manager-service-account-name: Apigee 동기화 담당자 관리자 역할이 있는 서비스 계정의 이름입니다. 이름은 이메일 주소 형식과 같습니다. 예를 들면 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에 대한 자세한 내용은 SyncAuthorization 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="
    }