Google Cloud 프로젝트 관리 및 전환

Merchant API를 사용하려면 개발자 등록을 통해 Google Cloud 프로젝트를 기본 판매자 센터 계정에 연결해야 합니다. 통합의 수명 주기 동안 판매자 센터 계정과 연결된 Google Cloud 프로젝트 ID를 변경하거나, 여러 환경에서 여러 프로젝트를 관리하거나, Content API for Shopping에서 이전할 때 프로젝트를 전환해야 할 수 있습니다.

이 가이드에서는 다음 작업을 실행하는 방법을 설명합니다.

  • 다운타임 없이 기존 Merchant API 통합의 Google Cloud 프로젝트 ID를 변경하거나 순환합니다.
  • 하나의 판매자 센터 계정에서 Google Cloud 프로젝트를 등록 취소하고 다른 판매자 센터 계정에 등록합니다.
  • Content API for Shopping에서 Merchant API로 이전하는 경우 올바른 Google Cloud 프로젝트 전환 전략을 선택하고 실행합니다.

기본 요건

Google Cloud 프로젝트를 관리하거나 전환하기 전에 개발자 등록 기본 요건을 충족하는지 확인하세요. 자세한 내용은 개발자로 등록하기 가이드의 기본 요건 섹션 을 참고하세요.

주요 규칙 및 제한사항

Google Cloud 프로젝트 변경을 계획할 때는 다음 규칙을 염두에 두세요.

  • 일대다 프로젝트 등록: 단일 기본 판매자 센터 계정에 여러 Google Cloud 프로젝트를 동시에 등록할 수 있습니다. 하지만 각 Google Cloud 프로젝트는 특정 시점에 하나의 기본 판매자 센터 계정에만 등록할 수 있습니다. 이미 다른 판매자 센터 계정에 연결된 프로젝트를 등록하려고 하면 DUPLICATE_PROJECT_REGISTRATION이라는 이유로 ALREADY_EXISTS (409 Conflict) 오류가 반환됩니다.
  • 프로젝트 소유권 개인 정보 보호: 보안 및 개인 정보 보호상의 이유로 Google Shopping 및 Merchant API 지원팀은 Google Cloud 프로젝트의 소유자 또는 관리자 이메일 주소를 공개할 수 없습니다. 프로젝트에 액세스할 수 없게 되면 Google Cloud 지원팀에 문의하세요.
  • Content API for Shopping 종료 확장 프로그램은 프로젝트별로 적용됨: Content API for Shopping에 대한 확장된 액세스 승인을 받은 경우 해당 확장 프로그램은 요청에 제출된 특정 Google Cloud 프로젝트 ID에만 적용됩니다. 확장 프로그램은 새 Google Cloud 프로젝트로 자동 이전되지 않습니다.

Merchant API 계정의 Google Cloud 프로젝트 ID 변경

이미 Merchant API를 사용 중이며 조직 개편, 사용자 인증 정보 순환 정책 또는 이전 프로젝트에 대한 관리 액세스 권한 상실 등의 이유로 통합을 새 Google Cloud 프로젝트로 전환해야 하는 경우 다운타임 없이 프로젝트를 전환할 수 있습니다. 판매자 센터 계정은 여러 등록된 Google Cloud 프로젝트를 동시에 지원하므로 이전 프로젝트를 폐기하기 전에 새 프로젝트를 등록할 수 있습니다.

1단계: 새 Google Cloud 프로젝트 만들기 및 구성

  1. Google Cloud 콘솔에서 새 프로젝트를 만듭니다. 자세한 내용은 Google Cloud 프로젝트 만들기를 참고하세요.
  2. 새 프로젝트에서 Merchant API (merchantapi.googleapis.com)를 사용 설정합니다. Google Cloud 프로젝트 만들기에서 Merchant API 사용 설정 섹션을 참고하세요.
  3. 새 Google Cloud 프로젝트에서 인증 사용자 인증 정보 (서비스 계정 또는 OAuth 2.0 클라이언트 ID)를 만듭니다.
  4. 기본 판매자 센터 계정에서 인증 이메일 주소 (예: 새 서비스 계정 이메일)를 ADMIN 역할이 있는 사용자로 추가합니다.

2단계: 새 Google Cloud 프로젝트 등록

새 Google Cloud 프로젝트의 사용자 인증 정보를 사용하여 인증하고 accounts.developerRegistration.registerGcp 메서드를 호출하여 새 프로젝트를 기본 판매자 센터 계정에 연결합니다. 자세한 내용은 개발자로 등록하기의 등록 호출하기 섹션을 참고하세요.

3단계: 등록된 Google Cloud 프로젝트 확인

기존 Google Cloud 프로젝트와 새 Google Cloud 프로젝트가 모두 판매자 센터 계정에 연결되어 있는지 확인하려면 accounts.developerRegistration.getDeveloperRegistration 메서드를 호출하세요.

GET https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration
Authorization: Bearer ACCESS_TOKEN

다음을 바꿉니다.

  • ACCOUNT_ID: 판매자 센터 ID
  • ACCESS_TOKEN: API 호출을 실행하는 승인 토큰

응답은 연결된 모든 프로젝트의 숫자 Google Cloud 프로젝트 번호가 포함된 DeveloperRegistration 리소스의 gcpIds 필드를 반환합니다.

{
  "name": "accounts/ACCOUNT_ID/developerRegistration",
  "gcpIds": [
    "123456789012",
    "987654321098"
  ]
}

`accounts.developerRegistration.getAccountForGcpRegistration` accounts.developerRegistration.getAccountForGcpRegistration 메서드를 호출하여 호출 Google Cloud 프로젝트가 등록된 판매자 센터 계정을 확인할 수도 있습니다.

GET https://merchantapi.googleapis.com/accounts/v1/accounts:getAccountForGcpRegistration
Authorization: Bearer ACCESS_TOKEN

다음을 바꿉니다.

  • ACCESS_TOKEN: 확인하려는 Google Cloud 프로젝트의 사용자 인증 정보를 사용하여 생성된 승인 토큰

4단계: 트래픽 전환 및 이전 Google Cloud 프로젝트 등록 취소

  1. 새 Google Cloud 프로젝트의 사용자 인증 정보를 사용하도록 애플리케이션 구성을 업데이트합니다. 두 프로젝트가 모두 등록되어 있으므로 워크로드가 중단 없이 전환됩니다.
  2. 모든 트래픽이 새 프로젝트를 사용하면 이전 프로젝트 링크를 선택적으로 삭제할 수 있습니다. 이때 이전 Google Cloud 프로젝트 사용자 인증 정보를 사용하여 인증하고 accounts.developerRegistration.unregisterGcp 메서드를 호출합니다.
POST https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp
Content-Type: application/json
Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN

다음을 바꿉니다.

  • ACCOUNT_ID: 판매자 센터 ID
  • OLD_PROJECT_ACCESS_TOKEN: API 호출을 실행하는 이전 Google Cloud 프로젝트의 승인 토큰

자바

import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationName;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationServiceClient;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationServiceSettings;
import com.google.shopping.merchant.accounts.v1.UnregisterGcpRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;

/**
 * This class demonstrates how to unregister the GCP project currently used to call the Merchant API
 * for a specific account.
 */
public class UnregisterGcpSample {

  public static void unregisterGcp(Config config) throws Exception {

    // Obtains OAuth token based on the user's configuration.
    GoogleCredentials credential = new Authenticator().authenticate();

    // Creates service settings using the credentials retrieved above.
    DeveloperRegistrationServiceSettings developerRegistrationServiceSettings =
        DeveloperRegistrationServiceSettings.newBuilder()
            .setCredentialsProvider(FixedCredentialsProvider.create(credential))
            .build();

    // Creates DeveloperRegistration name to identify the DeveloperRegistration.
    // The name has the format: accounts/{account}/developerRegistration
    String name =
        DeveloperRegistrationName.newBuilder()
            .setAccount(config.getAccountId().toString())
            .build()
            .toString();

    // Calls the API and propagates any network failures/errors.
    try (DeveloperRegistrationServiceClient developerRegistrationServiceClient =
        DeveloperRegistrationServiceClient.create(developerRegistrationServiceSettings)) {

      // Creates a request to unregister the GCP project.
      UnregisterGcpRequest request = UnregisterGcpRequest.newBuilder().setName(name).build();

      System.out.println("Sending UnregisterGcp request for: " + name);
      developerRegistrationServiceClient.unregisterGcp(request);
      System.out.println("Unregister GCP successful.");
    }
  }

  public static void main(String[] args) throws Exception {
    Config config = Config.load();
    unregisterGcp(config);
  }
}

cURL

curl -X POST \
  "https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN"

등록된 Google Cloud 프로젝트를 다른 판매자 센터 계정에 재할당

Google Cloud 프로젝트는 한 번에 하나의 기본 판매자 센터 계정에만 등록할 수 있으므로 다음 단계에 따라 기존 프로젝트를 한 판매자 센터 계정 (OLD_ACCOUNT_ID)에서 다른 판매자 센터 계정 (NEW_ACCOUNT_ID)으로 재할당하세요. 프로젝트를 등록할 판매자 센터 계정을 선택하는 방법에 관한 가이드라인은 중요한 고려사항을 참고하세요.

  1. OLD_ACCOUNT_ID에 액세스할 수 있는 Google Cloud 프로젝트의 사용자 인증 정보를 사용하여 인증하고 accounts/OLD_ACCOUNT_ID/developerRegistration에서 unregisterGcp를 호출합니다.
  2. 인증 ID에 NEW_ACCOUNT_ID에 대한 ADMIN 역할이 있고 NEW_ACCOUNT_ID에 인증된 웹사이트가 있는지 확인합니다.
  3. 동일한 Google Cloud 프로젝트의 사용자 인증 정보를 사용하여 accounts/NEW_ACCOUNT_ID/developerRegistration에서 registerGcp 를 호출합니다. NEW_ACCOUNT_ID에 아직 API_DEVELOPER 역할이 있는 사용자가 없는 경우 developerEmail 요청 필드에 유효한 사용자 이메일을 전달합니다. .gserviceaccount.com으로 끝나는 서비스 계정 이메일은 developerEmail로 사용할 수 없습니다.

Content API for Shopping에서 이전할 때 Google Cloud 프로젝트 전환

Content API for Shopping에서 Merchant API로 이전할 때 기존 Google Cloud 프로젝트에 대한 액세스 제한이 발생할 수 있습니다. 예를 들어 원래 API 키가 기존 판매자 센터 인증 워크플로를 통해 직접 구성되었거나 원래 프로젝트 소유자가 조직을 떠난 경우입니다.

기존 프로젝트를 유지할지 아니면 이전 프로젝트에서 Content API for Shopping을 유지하면서 Merchant API에 새 프로젝트를 사용할지에 따라 다음 두 가지 옵션 중 하나를 선택하세요.

이전 프로젝트 전략 선택

시나리오 이전 프로젝트에 대한 관리 액세스 권한이 필요한가요? 사용 설정할 API 새 프로젝트에 Content API for Shopping 확장 프로그램이 필요한가요?
옵션 1: 기존 프로젝트 유지 예 (또는 Google Cloud 지원팀을 통해 복구) 기존 프로젝트에서 Merchant API 사용 설정 (Content API for Shopping은 이미 사용 설정됨) 아니요 (이전 프로젝트 ID의 기존 확장 프로그램은 계속 유효함)
옵션 2: Content API for Shopping에 이전 프로젝트를 유지하고 Merchant API에 새 프로젝트 사용 아니요 새 프로젝트에서 Merchant API 사용 설정 (이전 프로젝트에서 Content API for Shopping을 사용 설정된 상태로 유지) 아니요 (이전 프로젝트는 확장 프로그램을 유지하고 새 프로젝트는 Merchant API만 호출함)

옵션 1: 기존 Google Cloud 프로젝트 유지

Content API for Shopping과 Merchant API 모두에 기존 Google Cloud 프로젝트를 사용하려면 이 옵션을 선택하세요.

시작하기 전에 기존 프로젝트에 대한 액세스 권한을 확인하거나 복구 하세요. Google Cloud 콘솔 에 로그인 하고 계정에 기존 프로젝트에 대한 다음 역할 중 하나가 있는지 확인합니다.

  • 소유자 (roles/owner),
  • 편집자 (roles/editor)
  • 서비스 사용량 관리자 (roles/serviceusage.serviceUsageAdmin)
  1. Merchant API 사용 설정: merchantapi.googleapis.com을(를) Google Cloud API 라이브러리 또는 gcloud 명령어를 사용하여 사용 설정합니다. 단계별 안내는 판매자 센터에서 API 인증 구성을 참고하세요.
  2. 판매자 센터에 Google Cloud 프로젝트 등록: 개발자로 등록하기 가이드의 단계에 따라 기존 프로젝트의 요청을 승인하고 registerGcp 메서드를 호출하여 기존 Google Cloud 프로젝트를 기본 판매자 센터 계정에 연결합니다. 기존 서비스 계정 키와 승인된 Content API for Shopping 확장 프로그램은 변경 없이 계속 작동합니다.

옵션 2: Content API for Shopping에 이전 Google Cloud 프로젝트를 사용하고 Merchant API에 새 프로젝트 사용

이전 Content API for Shopping 통합이 이미 유효한 사용자 인증 정보와 이전 Google Cloud 프로젝트의 승인된 확장 프로그램으로 실행 중이며 별도의 전용 Google Cloud 프로젝트에서 새 Merchant API 통합을 빌드하려는 경우 이 옵션을 선택하세요.

  1. 이전 프로젝트에서 Content API for Shopping 통합 유지: 기존 Content API for Shopping 워크플로와 사용자 인증 정보를 이전 Google Cloud 프로젝트에서 실행된 상태로 둡니다. 이전 프로젝트 ID의 확장 프로그램 요청이 승인된 경우 현재 Content API for Shopping 통합은 연장된 기한까지 계속 작동합니다.
  2. Merchant API 전용 새 Google Cloud 프로젝트 만들기: 새 Google Cloud 프로젝트를 만들고 merchantapi.googleapis.com을 사용 설정하고 새 Merchant API 워크로드의 사용자 인증 정보 (서비스 계정 또는 OAuth 2.0 클라이언트 ID)를 만듭니다.
  3. 새 프로젝트 등록: 개발자로 등록하기의 단계에 따라 새 프로젝트의 요청을 승인하고 유효한 개발자 연락처 이메일로 registerGcp 메서드를 호출합니다. .gserviceaccount.com으로 끝나는 서비스 계정 이메일은 developerEmail로 사용할 수 없습니다.
  4. 워크로드 점진적으로 이전: Content API for Shopping 종료 예정일 (또는 승인된 확장 프로그램이 만료되기 전) 전에 이전 Content API for Shopping 프로젝트에서 새 Merchant API 프로젝트로 API 호출을 점진적으로 전환하고 이전이 완료되면 이전 프로젝트를 폐기합니다.

특수한 경우: 이전을 완료하기 전에 이전 Google Cloud 프로젝트에 액세스할 수 없게 됨

Content API for Shopping은 지원 중단되었으므로 더 이상 Google Cloud API 라이브러리에 표시되지 않으며 새로 만든 Google Cloud 프로젝트에서 사용 설정할 수 없습니다. 따라서 기존 Content API for Shopping 워크로드를 새 Google Cloud 프로젝트로 직접 이동할 수 없습니다.

더 이상 이전 프로젝트에서 Content API for Shopping 호출을 실행할 수 없는 경우 (예: 사용자 인증 정보가 취소되었거나 프로젝트 액세스 권한을 복구할 수 없는 경우) 다음 안내를 따르세요.

  1. Google Cloud 지원팀 에 문의하여 기존 Google Cloud 프로젝트에 대한 액세스 권한을 복구하거나 (옵션 1)
  2. 옵션 2에 따라 새 Google Cloud 프로젝트를 만들고 등록한 후 영향을 받는 워크플로를 Merchant API로 직접 이전합니다. 중대한 이전 차단기가 발생하면 Merchant API 지원팀에 문의하세요.

다음 단계

  • 개발자로 등록하기 및 개발자 등록 FAQ에서 개발자 등록 요건에 대해 자세히 알아보세요.
  • 판매자 센터에서 API 인증 구성에서 기존 사용자 인증 정보가 어떻게 작동하는지 검토하세요.
  • 이전 시작하기 를 통해 하위 API 출시를 계획하세요.
  • 이전 확장 프로그램 요청 에서 Content API for Shopping 확장된 액세스에 관한 세부정보를 확인하세요.