Google Cloud projelerini yönetme ve taşıma

Merchant API'yi kullanmak için Google Cloud projenizi geliştirici kaydı aracılığıyla birincil Merchant Center hesabınıza bağlamanız gerekir. Entegrasyonunuzun yaşam döngüsü boyunca Merchant Center hesabınızla ilişkili Google Cloud projesi kimliğini değiştirmeniz, ortamlar genelinde birden fazla projeyi yönetmeniz veya Content API for Shopping'den geçiş yaparken projeleri taşımanız gerekebilir.

Bu kılavuzda aşağıdakilerin nasıl yapılacağı açıklanmaktadır:

  • Mevcut bir Merchant API entegrasyonu için Google Cloud proje kimliğini kesinti olmadan değiştirin veya rotasyona tabi tutun.
  • Bir Google Cloud projesinin kaydını bir Merchant Center hesabından kaldırıp farklı bir Merchant Center hesabına kaydetme
  • Content API for Shopping'den Merchant API'ye geçiş yapıyorsanız doğru Google Cloud projesi geçiş stratejisini seçip uygulayın.

Ön koşullar

Google Cloud projelerini yönetmeden veya geçirmeden önce geliştirici kaydı ön koşullarını karşıladığınızı doğrulayın. Daha fazla bilgi için Geliştirici olarak kaydolma kılavuzunun Ön koşullar bölümünü inceleyin.

Temel kurallar ve sınırlamalar

Google Cloud projelerinizde değişiklik planlarken aşağıdaki kuralları göz önünde bulundurun:

  • Bire çok proje kaydı: Tek bir birincil Merchant Center hesabına aynı anda birden fazla Google Cloud projesi kaydedilebilir. Ancak her Google Cloud projesi, aynı anda yalnızca bir birincil Merchant Center hesabına kaydedilebilir. Başka bir Merchant Center hesabına bağlı bir projeyi kaydetmeye çalışırsanız DUPLICATE_PROJECT_REGISTRATION nedeniyle ALREADY_EXISTS (409 Conflict) hatası alırsınız.
  • Proje sahipliği gizliliği: Güvenlik ve gizlilik nedeniyle Google Alışveriş ve Merchant API Destek Ekibi, Google Cloud projesinin sahibinin veya yöneticisinin e-posta adreslerini paylaşamaz. Bir projeye erişiminizi kaybederseniz Google Cloud Destek Ekibi ile iletişime geçin.
  • Content API for Shopping'in kullanımdan kaldırılmasıyla ilgili uzatmalar projeye özeldir: Content API for Shopping için uzatılmış erişim onayı aldıysanız bu uzatma yalnızca isteğinizde gönderilen belirli Google Cloud proje kimliği için geçerlidir. Uzantılar yeni Google Cloud projelerine otomatik olarak aktarılmaz.

Merchant API hesabı için Google Cloud proje kimliğini değiştirme

Merchant API'yi zaten kullanıyorsanız ve entegrasyonunuzu yeni bir Google Cloud projesine geçirmeniz gerekiyorsa (ör. kuruluşun yeniden yapılandırılması, kimlik doğrulama bilgileri değişim döngüsü politikaları veya eski bir projeye yönetim erişiminin kaybedilmesi nedeniyle) projeleri kesinti olmadan geçirebilirsiniz. Merchant Center hesapları aynı anda birden fazla kayıtlı Google Cloud projesini desteklediğinden, eski projeyi kullanımdan kaldırmadan önce yeni projeyi kaydedebilirsiniz.

1. adım: Yeni Google Cloud projenizi oluşturun ve yapılandırın

  1. Google Cloud Console'da yeni bir proje oluşturun. Ayrıntılı talimatlar için Google Cloud projesi oluşturma başlıklı makaleyi inceleyin.
  2. Merchant API'yi (merchantapi.googleapis.com) yeni projede etkinleştirin. Google Cloud projesi oluşturma bölümündeki Merchant API'yi etkinleştirme bölümüne bakın.
  3. Yeni Google Cloud projesinde kimlik doğrulama bilgileri (hizmet hesabı veya OAuth 2.0 istemci kimliği) oluşturun.
  4. Kimlik doğrulama e-posta adresini (ör. yeni hizmet hesabı e-posta adresi), birincil Merchant Center hesabınıza ADMIN rolüne sahip bir kullanıcı olarak ekleyin.

2. adım: Yeni Google Cloud projesini kaydetme

Yeni Google Cloud projenizdeki kimlik bilgilerini kullanarak kimlik doğrulaması yapın ve yeni projeyi birincil Merchant Center hesabınıza bağlamak için accounts.developerRegistration.registerGcp yöntemini çağırın. Ayrıntılı talimatlar için Geliştirici olarak kaydolma başlıklı makalenin Kayıt görüşmesi yapma bölümüne bakın.

3. adım: Kayıtlı Google Cloud projelerinizi doğrulayın

Hem mevcut hem de yeni Google Cloud projelerinizin Merchant Center hesabınıza bağlı olduğunu onaylamak için accounts.developerRegistration.getDeveloperRegistration yöntemini çağırın:

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

Aşağıdakini değiştirin:

  • ACCOUNT_ID: Merchant Center kimliğiniz
  • ACCESS_TOKEN: API çağrısı yapmak için yetkilendirme jetonu

Yanıt, gcpIds alanında tüm bağlı projelerin sayısal Google Cloud proje numaralarını içeren DeveloperRegistration kaynağını döndürür:

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

Ayrıca, aşağıdaki accounts.developerRegistration.getAccountForGcpRegistration yöntemini çağırarak arayan Google Cloud projesinin hangi Merchant Center hesabına kaydedildiğini de doğrulayabilirsiniz:

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

Aşağıdakini değiştirin:

  • ACCESS_TOKEN: Kontrol etmek istediğiniz Google Cloud projesinin kimlik bilgileri kullanılarak oluşturulan yetkilendirme jetonu

4. adım: Trafiği değiştirin ve eski Google Cloud projesinin kaydını iptal edin

  1. Uygulama yapılandırmanızı, yeni Google Cloud projenizdeki kimlik bilgilerini kullanacak şekilde güncelleyin. Her iki proje de kayıtlı olduğundan iş yükleriniz kesintisiz olarak taşınır.
  2. Tüm trafik yeni projeyi kullanmaya başladıktan sonra, eski Google Cloud proje kimlik bilgileriyle kimlik doğrulama yapıp accounts.developerRegistration.unregisterGcp yöntemini çağırarak eski proje bağlantısını isteğe bağlı olarak kaldırabilirsiniz:
POST https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp
Content-Type: application/json
Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN

Aşağıdakini değiştirin:

  • ACCOUNT_ID: Merchant Center kimliğiniz
  • OLD_PROJECT_ACCESS_TOKEN: API çağrısı yapmak için eski Google Cloud projesinden alınan yetkilendirme jetonu

Java

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"

Kayıtlı bir Google Cloud projesini farklı bir Merchant Center hesabına yeniden atama

Google Cloud projesi aynı anda yalnızca birincil bir Merchant Center hesabına kaydedilebildiğinden, mevcut bir projeyi bir Merchant Center hesabından (OLD_ACCOUNT_ID) diğerine (NEW_ACCOUNT_ID) yeniden atamak için aşağıdaki adımları uygulayın. Projenizi hangi Merchant Center hesabına kaydedeceğinizi seçmeyle ilgili yönergeler için Önemli hususlar başlıklı bölümü inceleyin:

  1. OLD_ACCOUNT_ID erişimi olan Google Cloud projesinin kimlik bilgilerini kullanarak kimlik doğrulaması yapın ve accounts/OLD_ACCOUNT_ID/developerRegistration üzerinde unregisterGcp yöntemini çağırın.
  2. Kimlik doğrulama kimliğinin NEW_ACCOUNT_ID üzerinde ADMIN rolüne sahip olduğunu ve NEW_ACCOUNT_ID kimliğinin doğrulanmış bir web sitesi olduğunu doğrulayın.
  3. Aynı Google Cloud projesindeki kimlik bilgilerini kullanarak accounts/NEW_ACCOUNT_ID/developerRegistration üzerinde registerGcp çağrısı yapın. NEW_ACCOUNT_ID uygulamasında henüz API_DEVELOPER rolüne sahip bir kullanıcı yoksa developerEmail istek alanına geçerli bir kullanıcı e-posta adresi girin. .gserviceaccount.com ile biten hizmet hesabı e-posta adresleri developerEmail olarak kullanılamaz.

Content API for Shopping'den geçiş yaparken Google Cloud projelerini taşıma

Content API for Shopping'den Merchant API'ye geçiş yaparken eski Google Cloud projenizde erişim sınırlamalarıyla karşılaşabilirsiniz. Örneğin, orijinal API anahtarlarınız doğrudan eski Merchant Center kimlik doğrulama iş akışı üzerinden yapılandırılmışsa veya orijinal proje sahibi kuruluşunuzdan ayrılmışsa bu durumla karşılaşabilirsiniz.

Mevcut projenizi korumak veya eski projenizde Content API for Shopping'i kullanmaya devam ederken Merchant API için yeni bir proje kullanmak isteyip istemediğinize bağlı olarak aşağıdaki iki seçenekten birini belirleyin.

Taşıma projesi stratejinizi seçme

Senaryo Eski projeye yönetici erişimi gerekiyor mu? Etkinleştirilecek API'ler Yeni projede Content API for Shopping uzantısı gerekli mi?
1. seçenek: Mevcut projenizi koruyun Evet (veya Google Cloud Destek Ekibi aracılığıyla kurtarabilirsiniz) Mevcut projede Merchant API'yi etkinleştirme (Content API for Shopping zaten etkindir) Hayır (Eski proje kimliğindeki mevcut uzantı geçerli kalır.)
2. seçenek: Content API for Shopping için eski projeyi kullanmaya devam edin ve Merchant API için yeni bir proje kullanın Hayır Yeni projede Merchant API'yi etkinleştirin (eski projede Content API for Shopping'i etkin durumda tutun). Hayır (Eski proje uzantısını korur, yeni proje yalnızca Merchant API'yi çağırır.)

1. seçenek: Mevcut Google Cloud projenizi koruyun

Mevcut Google Cloud projenizi hem Content API for Shopping hem de Merchant API için kullanmak istiyorsanız bu seçeneği belirleyin.

Başlamadan önce mevcut projenize erişimi doğrulayın veya kurtarın. Google Cloud Console'da oturum açın ve hesabınızın mevcut projenizde aşağıdaki rollerden herhangi birine sahip olduğunu onaylayın:

  • Sahip (roles/owner),
  • Düzenleyici (roles/editor)
  • Service Usage Yöneticisi (roles/serviceusage.serviceUsageAdmin)
  1. Merchant API'yi etkinleştirin: merchantapi.googleapis.com seçeneğini Google Cloud API Kitaplığı'nda veya gcloud komutuyla etkinleştirin. Adım adım talimatlar için Merchant Center'dan API kimlik doğrulaması yapılandırma başlıklı makaleyi inceleyin.
  2. Google Cloud projesini Merchant Center'a kaydedin: Mevcut projenizden gelen istekleri yetkilendirmek için Geliştirici olarak kaydolma kılavuzundaki adımları uygulayın ve mevcut Google Cloud projenizi birincil Merchant Center hesabınıza bağlamak için registerGcp yöntemini çağırın. Mevcut hizmet hesabı anahtarlarınız ve onaylanmış Content API for Shopping uzantınız değişiklik yapılmadan çalışmaya devam eder.

2. seçenek: Content API for Shopping için eski Google Cloud projesini, Merchant API için yeni bir projeyi kullanma

Eski Content API for Shopping entegrasyonunuz eski Google Cloud projenizde geçerli kimlik bilgileri ve onaylı bir uzantıyla çalışıyorsa ve yeni Merchant API entegrasyonunuzu ayrı, özel bir Google Cloud projesinde oluşturmak istiyorsanız bu seçeneği belirleyin:

  1. Content API for Shopping entegrasyonunuzu eski projede tutun: Mevcut Content API for Shopping iş akışlarınızı ve kimlik bilgilerinizi eski Google Cloud projesinde çalıştırmaya devam edin. Eski proje kimliği için uzatma isteğiniz onaylandıysa mevcut Content API for Shopping entegrasyonunuz, uzatılan son tarih boyunca çalışmaya devam eder.
  2. Yalnızca Merchant API için yeni bir Google Cloud projesi oluşturun: Yeni bir Google Cloud projesi oluşturun, merchantapi.googleapis.com'yi etkinleştirin ve yeni Merchant API iş yükleriniz için kimlik bilgileri (bir hizmet hesabı veya OAuth 2.0 istemci kimliği) oluşturun.
  3. Yeni projeyi kaydetme: Yeni projenizden gelen istekleri yetkilendirmek ve registerGcp yöntemini geçerli bir geliştirici iletişim e-postasıyla çağırmak için Geliştirici olarak kaydolma bölümündeki adımları uygulayın. Hizmet hesabı e-postaları (.gserviceaccount.com ile bitenler) developerEmail olarak kullanılamaz.
  4. İş yüklerini kademeli olarak taşıma: API çağrılarını eski Content API for Shopping projenizden yeni Merchant API projenize, Content API for Shopping'in kullanımdan kaldırılma planlanan tarihinden (veya onaylanmış uzatma süreniz sona ermeden) önce kademeli olarak taşıyın ve taşıma işleminiz tamamlandıktan sonra eski projeyi kullanımdan kaldırın.

Özel durum: Taşıma işlemini tamamlamadan önce eski Google Cloud projenize erişimi kaybetme

Content API for Shopping kullanımdan kaldırıldığı için artık Google Cloud API Kitaplığı'nda listelenmez ve yeni oluşturulan Google Cloud projelerinde etkinleştirilemez. Bu nedenle, mevcut Content API for Shopping iş yüklerini yeni bir Google Cloud projesine kendi başınıza taşıyamazsınız.

Eski projenizden Content API for Shopping çağrıları yapamıyorsanız (ör. iptal edilen kimlik bilgileri veya kurtarılamayan proje erişimi nedeniyle):

  1. Mevcut Google Cloud projenize erişimi kurtarmak için Google Cloud Destek Ekibi ile iletişime geçin (1. seçenek) veya
  2. Yeni bir Google Cloud projesi oluşturup kaydetmek ve etkilenen iş akışlarını doğrudan Merchant API'ye taşımak için 2. seçeneği uygulayın. Taşıma işlemini engelleyen kritik bir sorunla karşılaşırsanız Merchant API Destek Ekibi ile iletişime geçin.

Sonraki adımlar