Google Cloud-Projekte verwalten und umstellen

Wenn Sie die Merchant API verwenden möchten, müssen Sie Ihr Google Cloud-Projekt über die Entwicklerregistrierung mit Ihrem primären Merchant Center-Konto verknüpfen. Im Laufe des Lebenszyklus Ihrer Integration müssen Sie möglicherweise die Google Cloud-Projekt-ID ändern, die mit Ihrem Merchant Center-Konto verknüpft ist, mehrere Projekte in verschiedenen Umgebungen verwalten oder Projekte migrieren, wenn Sie von der Content API for Shopping migrieren.

In diesem Leitfaden wird Folgendes beschrieben:

  • Die Google Cloud-Projekt-ID für eine vorhandene Merchant API-Integration ohne Ausfallzeiten ändern oder rotieren.
  • Die Registrierung eines Google Cloud-Projekts für ein Merchant Center-Konto aufheben und es für ein anderes Merchant Center-Konto registrieren.
  • Die richtige Strategie für die Migration von Google Cloud-Projekten auswählen und ausführen, wenn Sie von der Content API for Shopping zur Merchant API migrieren.

Vorbereitung

Bevor Sie Google Cloud-Projekte verwalten oder migrieren, prüfen Sie, ob Sie die Voraussetzungen für die Entwicklerregistrierung erfüllen. Weitere Informationen finden Sie unter dem Abschnitt Voraussetzungen des Leitfadens Als Entwickler registrieren.

Wichtige Regeln und Einschränkungen

Beachten Sie bei der Planung von Änderungen an Ihren Google Cloud-Projekten die folgenden Regeln:

  • 1:n-Projektregistrierung: Ein einzelnes primäres Merchant Center-Konto kann mehrere Google Cloud-Projekte gleichzeitig registriert haben. Jedes Google Cloud-Projekt kann jedoch jeweils nur für ein primäres Merchant Center-Konto registriert sein. Wenn Sie versuchen, ein Projekt zu registrieren, das bereits mit einem anderen Merchant Center-Konto verknüpft ist, wird der Fehler ALREADY_EXISTS (409 Conflict) mit dem Grund DUPLICATE_PROJECT_REGISTRATION zurückgegeben.
  • Datenschutz bei Projektinhaberschaft:Aus Sicherheits- und Datenschutzgründen kann der Google Shopping- und Merchant API-Support die E‑Mail-Adressen des Project Owner oder Administrators eines Google Cloud-Projekts nicht offenlegen. Wenn Sie den Zugriff auf ein Projekt verlieren, wenden Sie sich an den Google Cloud-Support.
  • Verlängerungen für die Einstellung der Content API for Shopping sind projektspezifisch:Wenn Sie eine Verlängerung der Zugriffsberechtigung für die Content API for Shopping erhalten haben, gilt diese Verlängerung nur für die Google Cloud-Projekt-ID, die Sie in Ihrer Anfrage angegeben haben. Verlängerungen werden nicht automatisch auf neue Google Cloud-Projekte übertragen.

Google Cloud-Projekt-ID für ein Merchant API-Konto ändern

Wenn Sie die Merchant API bereits verwenden und Ihre Integration auf ein neues Google Cloud-Projekt umstellen müssen, z. B. aufgrund einer Umstrukturierung des Unternehmens, Richtlinien zur Rotation von Anmeldedaten oder verlorenem Administratorzugriff auf ein älteres Projekt, können Sie Projekte ohne Ausfallzeiten migrieren. Da ein Merchant Center-Konto mehrere registrierte Google Cloud-Projekte gleichzeitig unterstützt, können Sie das neue Projekt registrieren, bevor Sie das alte einstellen.

Schritt 1: Neues Google Cloud-Projekt erstellen und konfigurieren

  1. Erstellen Sie ein neues Projekt in der Google Cloud Console. Eine detaillierte Anleitung finden Sie unter Google Cloud-Projekt erstellen.
  2. Aktivieren Sie die Merchant API (merchantapi.googleapis.com) im neuen Projekt. Weitere Informationen finden Sie im Abschnitt Merchant API aktivieren unter Google Cloud-Projekt erstellen.
  3. Erstellen Sie im neuen Google Cloud-Projekt Authentifizierungsdaten (ein Dienstkonto oder eine OAuth 2.0-Client-ID).
  4. Fügen Sie die E‑Mail-Adresse für die Authentifizierung (z. B. die E‑Mail-Adresse des neuen Dienstkontos) als Nutzer mit der Rolle ADMIN in Ihrem primären Merchant Center-Konto hinzu.

Schritt 2: Neues Google Cloud-Projekt registrieren

Authentifizieren Sie sich mit den Anmeldedaten aus Ihrem neuen Google Cloud-Projekt und rufen Sie die accounts.developerRegistration.registerGcp Methode auf, um das neue Projekt mit Ihrem primären Merchant Center-Konto zu verknüpfen. Eine detaillierte Anleitung finden Sie im Abschnitt Registrierungsaufruf ausführen unter Als Entwickler registrieren.

Schritt 3: Registrierte Google Cloud-Projekte bestätigen

Rufen Sie die accounts.developerRegistration.getDeveloperRegistration Methode auf, um zu bestätigen, dass sowohl Ihr vorhandenes als auch Ihr neues Google Cloud-Projekt mit Ihrem Merchant Center-Konto verknüpft sind:

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

Ersetzen Sie Folgendes:

  • ACCOUNT_ID: Ihre Merchant Center-ID
  • ACCESS_TOKEN: das Autorisierungstoken für den API-Aufruf

Die Antwort gibt die DeveloperRegistration Ressource mit den numerischen Google Cloud-Projektnummern aller verknüpften Projekte im gcpIds Feld zurück:

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

Sie können auch prüfen, für welches Merchant Center-Konto das aufrufende Google Cloud-Projekt registriert ist, indem Sie die accounts.developerRegistration.getAccountForGcpRegistration Methode aufrufen:

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

Ersetzen Sie Folgendes:

  • ACCESS_TOKEN: das Autorisierungstoken, das mit den Anmeldedaten aus dem Google Cloud-Projekt generiert wurde, das Sie prüfen möchten

Schritt 4: Traffic umleiten und Registrierung des alten Google Cloud-Projekts aufheben

  1. Aktualisieren Sie die Konfiguration Ihrer Anwendung, um die Anmeldedaten aus Ihrem neuen Google Cloud-Projekt zu verwenden. Da beide Projekte registriert sind, werden Ihre Arbeitslasten ohne Unterbrechung migriert.
  2. Sobald der gesamte Traffic über das neue Projekt läuft, können Sie die Verknüpfung des alten Projekts optional entfernen. Authentifizieren Sie sich dazu mit den alten Google Cloud Projektanmeldedaten und rufen Sie die accounts.developerRegistration.unregisterGcp Methode auf:
POST https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp
Content-Type: application/json
Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN

Ersetzen Sie Folgendes:

  • ACCOUNT_ID: Ihre Merchant Center-ID
  • OLD_PROJECT_ACCESS_TOKEN: das Autorisierungstoken aus dem alten Google Cloud-Projekt für den API-Aufruf

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"

Registriertes Google Cloud-Projekt einem anderen Merchant Center-Konto zuweisen

Da ein Google Cloud-Projekt jeweils nur für ein primäres Merchant Center-Konto registriert sein kann, führen Sie die folgenden Schritte aus, um ein vorhandenes Projekt von einem Merchant Center-Konto (OLD_ACCOUNT_ID) einem anderen (NEW_ACCOUNT_ID) zuzuweisen. Richtlinien zur Auswahl des Merchant Center- Kontos, für das Sie Ihr Projekt registrieren möchten, finden Sie unter Wichtige Überlegungen:

  1. Authentifizieren Sie sich mit den Anmeldedaten des Google Cloud-Projekts, das Zugriff auf OLD_ACCOUNT_ID hat, und rufen Sie unregisterGcp für accounts/OLD_ACCOUNT_ID/developerRegistration auf.
  2. Prüfen Sie, ob die authentifizierende Identität die Rolle ADMIN für NEW_ACCOUNT_ID hat und ob für NEW_ACCOUNT_ID eine Website bestätigt wurde.
  3. Rufen Sie registerGcp für accounts/NEW_ACCOUNT_ID/developerRegistration mit den Anmeldedaten aus demselben Google Cloud-Projekt auf. Wenn für NEW_ACCOUNT_ID noch kein Nutzer mit der Rolle API_DEVELOPER vorhanden ist, übergeben Sie eine gültige E‑Mail-Adresse des Nutzers im Anfragefeld developerEmail. E‑Mail-Adressen von Dienstkonten, die auf .gserviceaccount.com enden, können nicht als developerEmail verwendet werden.

Google Cloud-Projekte bei der Migration von der Content API for Shopping migrieren

Wenn Sie von der Content API for Shopping zur Merchant API migrieren, können Zugriffsbeschränkungen für Ihr altes Google Cloud-Projekt auftreten. Das kann beispielsweise der Fall sein, wenn Ihre ursprünglichen API-Schlüssel direkt über den alten Merchant Center-Authentifizierungsworkflow konfiguriert wurden oder wenn der ursprüngliche Projektinhaber Ihr Unternehmen verlassen hat.

Je nachdem, ob Sie Ihr vorhandenes Projekt behalten oder ein neues Projekt für die Merchant API verwenden möchten, während die Content API for Shopping in Ihrem alten Projekt beibehalten wird, wählen Sie eine der folgenden beiden Optionen aus.

Migrationsstrategie für Projekte auswählen

Szenario Administratorzugriff auf altes Projekt erforderlich? Zu aktivierende APIs Verlängerung für die Einstellung der Content API for Shopping für neues Projekt erforderlich?
Option 1: Vorhandenes Projekt beibehalten Ja (oder über den Google Cloud-Support wiederherstellen) Merchant API im vorhandenen Projekt aktivieren (Content API for Shopping ist bereits aktiviert) Nein (vorhandene Verlängerung für die alte Projekt-ID bleibt gültig)
Option 2: Altes Projekt für die Content API for Shopping beibehalten und neues Projekt für die Merchant API verwenden Nein Merchant API im neuen Projekt aktivieren (Content API for Shopping im alten Projekt aktiviert lassen) Nein (die Verlängerung für das alte Projekt bleibt erhalten; das neue Projekt ruft nur die Merchant API auf)

Option 1: Vorhandenes Google Cloud-Projekt beibehalten

Wählen Sie diese Option aus, wenn Sie Ihr vorhandenes Google Cloud-Projekt sowohl für die Content API for Shopping als auch für die Merchant API verwenden möchten.

Prüfen oder wiederherstellen Sie den Zugriff auf Ihr vorhandenes Projekt, bevor Sie beginnen. Melden Sie sich in der Google Cloud Console an und prüfen Sie, ob Ihr Konto eine der folgenden Rollen für Ihr vorhandenes Projekt hat:

  • Inhaber (roles/owner)
  • Bearbeiter (roles/editor)
  • Service Usage-Administrator (roles/serviceusage.serviceUsageAdmin)
  1. Merchant API aktivieren: Aktivieren Sie merchantapi.googleapis.com in der Google Cloud API-Bibliothek oder mit dem Befehl gcloud. Eine detaillierte Anleitung finden Sie unter API-Authentifizierung über das Merchant Center konfigurieren.
  2. Google Cloud-Projekt für das Merchant Center registrieren: Folgen Sie der Anleitung unter Als Entwickler registrieren , um Anfragen aus Ihrem vorhandenen Projekt zu autorisieren und die Methode registerGcp aufzurufen, um Ihr vorhandenes Google Cloud-Projekt mit Ihrem primären Merchant Center-Konto zu verknüpfen. Ihre vorhandenen Dienstkontoschlüssel und die genehmigte Verlängerung für die Einstellung der Content API for Shopping funktionieren weiterhin ohne Änderungen.

Option 2: Altes Google Cloud-Projekt für die Content API for Shopping und neues Projekt für die Merchant API verwenden

Wählen Sie diese Option aus, wenn Ihre alte Content API for Shopping-Integration bereits mit gültigen Anmeldedaten und einer genehmigten Verlängerung in Ihrem alten Google Cloud-Projekt ausgeführt wird und Sie Ihre neue Merchant API-Integration in einem separaten, dedizierten Google Cloud-Projekt erstellen möchten:

  1. Content API for Shopping-Integration im alten Projekt beibehalten:Lassen Sie Ihre vorhandenen Content API for Shopping-Workflows und ‑Anmeldedaten im alten Google Cloud-Projekt ausgeführt. Wenn Ihre Verlängerungsanfrage für die alte Projekt-ID genehmigt wurde, funktioniert Ihre aktuelle Content API for Shopping-Integration bis zum verlängerten Datum der Einstellung.
  2. Neues Google Cloud-Projekt ausschließlich für die Merchant API erstellen:Erstellen Sie ein neues Google Cloud-Projekt, aktivieren Sie merchantapi.googleapis.com und erstellen Sie Anmeldedaten (ein Dienstkonto oder eine OAuth 2.0-Client-ID) für Ihre neuen Merchant API-Arbeitslasten.
  3. Neues Projekt registrieren Folgen Sie der Anleitung unter Als Entwickler registrieren, um Anfragen aus Ihrem neuen Projekt zu autorisieren und die registerGcp Methode mit einer gültigen E‑Mail-Adresse für den Entwicklerkontakt aufzurufen. E‑Mail-Adressen von Dienstkonten, die auf .gserviceaccount.com enden, können nicht als developerEmail verwendet werden.
  4. Arbeitslasten schrittweise migrieren: Verschieben Sie API-Aufrufe schrittweise von Ihrem alten Content API for Shopping-Projekt zu Ihrem neuen Merchant API-Projekt, bevor die Content API for Shopping eingestellt wird (oder bevor Ihre genehmigte Verlängerung abläuft). Stellen Sie das alte Projekt ein, sobald die Migration abgeschlossen ist.

Sonderfall: Zugriff auf das alte Google Cloud-Projekt verloren, bevor die Migration abgeschlossen ist

Da die Content API for Shopping eingestellt wird, ist sie nicht mehr in der Google Cloud API-Bibliothek aufgeführt und kann nicht für neu erstellte Google Cloud-Projekte aktiviert werden. Daher können Sie vorhandene Content API for Shopping-Arbeitslasten nicht selbst zu einem neuen Google Cloud-Projekt migrieren.

Wenn Sie keine Content API for Shopping-Aufrufe mehr von Ihrem alten Projekt aus ausführen können (z. B. aufgrund widerrufener Anmeldedaten oder nicht wiederherstellbarem Projektzugriff):

  1. Wenden Sie sich an den Google Cloud-Support um den Zugriff auf Ihr vorhandenes Google Cloud-Projekt wiederherzustellen (Option 1), oder
  2. folgen Sie Option 2, um ein neues Google Cloud-Projekt zu erstellen und zu registrieren und die betroffenen Workflows direkt zur Merchant API zu migrieren. Wenn ein kritischer Migrationsblocker auftritt, wenden Sie sich an den Merchant API-Support.

Nächste Schritte