Gérer et transférer des projets Google Cloud

Pour utiliser Merchant API, vous devez associer votre projet Google Cloud à votre compte Merchant Center principal en vous inscrivant en tant que développeur. Au cours du cycle de vie de votre intégration, vous devrez peut-être modifier l'ID du projet Google Cloud associé à votre compte Merchant Center, gérer plusieurs projets dans différents environnements ou transférer des projets lors de la migration depuis Content API for Shopping.

Ce guide explique comment :

  • Modifier ou faire alterner l'ID du projet Google Cloud pour une intégration Merchant API existante sans temps d'arrêt.
  • dissocier un projet Google Cloud d'un compte Merchant Center et l'associer à un autre compte Merchant Center ;
  • choisir et exécuter la bonne stratégie de transition de projet Google Cloud si vous migrez de Content API for Shopping vers Merchant API.

Prérequis

Avant de gérer ou de transférer des projets Google Cloud, vérifiez que vous remplissez les conditions préalables à l'inscription en tant que développeur. Pour en savoir plus, consultez la section Prérequis du guide S'inscrire en tant que développeur.

Règles et limites clés

Lorsque vous planifiez des modifications de vos projets Google Cloud, gardez à l'esprit les règles suivantes :

  • Enregistrement de projet un à plusieurs : un seul compte Merchant Center principal peut avoir plusieurs projets Google Cloud enregistrés simultanément. Toutefois, chaque projet Google Cloud ne peut être associé qu'à un seul compte Merchant Center principal à la fois. Si vous tentez d'associer un projet déjà lié à un autre compte Merchant Center, une erreur ALREADY_EXISTS (409 Conflict) s'affiche avec le motif DUPLICATE_PROJECT_REGISTRATION.
  • Confidentialité du propriétaire du projet : pour des raisons de sécurité et de confidentialité, l'assistance Google Shopping et Merchant API ne peut pas communiquer les adresses e-mail du propriétaire ou de l'administrateur d'un projet Google Cloud. Si vous perdez l'accès à un projet, contactez l'assistance Google Cloud.
  • Les extensions de mise hors service de Content API for Shopping sont spécifiques à un projet : si vous avez reçu une approbation d'accès étendu pour Content API for Shopping, cette extension ne s'applique qu'à l'ID du projet Google Cloud spécifique envoyé dans votre demande. Les extensions ne sont pas transférées automatiquement vers de nouveaux projets Google Cloud.

Modifier l'ID du projet Google Cloud pour un compte Merchant API

Si vous utilisez déjà Merchant API et que vous devez passer votre intégration à un nouveau projet Google Cloud (par exemple, en raison d'une restructuration organisationnelle, de règles de rotation des identifiants ou d'une perte d'accès administratif à un ancien projet), vous pouvez transférer des projets sans temps d'arrêt. Étant donné qu'un compte Merchant Center est compatible avec plusieurs projets Google Cloud associés simultanément, vous pouvez associer le nouveau projet avant de supprimer l'ancien.

Étape 1 : Créez et configurez votre nouveau projet Google Cloud

  1. Créez un projet dans la console Google Cloud. Pour obtenir des instructions détaillées, consultez Créer un projet Google Cloud.
  2. Activez Merchant API (merchantapi.googleapis.com) dans le nouveau projet. Consultez la section Activer Merchant API de la page Créer un projet Google Cloud.
  3. Créez des identifiants d'authentification (un compte de service ou un ID client OAuth 2.0) dans le nouveau projet Google Cloud.
  4. Ajoutez l'adresse e-mail d'authentification (par exemple, l'adresse e-mail du nouveau compte de service) en tant qu'utilisateur avec le rôle ADMIN dans votre compte Merchant Center principal.

Étape 2 : Associez le nouveau projet Google Cloud

Authentifiez-vous à l'aide des identifiants de votre nouveau projet Google Cloud et appelez la accounts.developerRegistration.registerGcp méthode pour associer le nouveau projet à votre compte Merchant Center principal. Pour obtenir des instructions détaillées, consultez la section Effectuer l'appel d'association de la page S'inscrire en tant que développeur.

Étape 3 : Vérifiez vos projets Google Cloud associés

Pour confirmer que vos projets Google Cloud existant et nouveau sont associés à votre compte Merchant Center, appelez la accounts.developerRegistration.getDeveloperRegistration méthode :

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

Remplacez les éléments suivants :

  • ACCOUNT_ID : votre ID Merchant Center
  • ACCESS_TOKEN: le jeton d'autorisation pour effectuer l'appel d'API

La réponse renvoie la DeveloperRegistration ressource avec les numéros de projet Google Cloud numériques de tous les projets associés dans le gcpIds champ :

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

Vous pouvez également vérifier le compte Merchant Center auquel le projet Google Cloud appelant est associé en appelant la accounts.developerRegistration.getAccountForGcpRegistration méthode :

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

Remplacez les éléments suivants :

  • ACCESS_TOKEN: le jeton d'autorisation généré à l'aide des identifiants du projet Google Cloud que vous souhaitez vérifier

Étape 4 : Basculez le trafic et dissociez l'ancien projet Google Cloud

  1. Mettez à jour la configuration de votre application pour utiliser les identifiants de votre nouveau projet Google Cloud. Comme les deux projets sont associés, vos charges de travail sont transférées sans interruption.
  2. Une fois que tout le trafic utilise le nouveau projet, vous pouvez éventuellement supprimer l'ancien lien de projet en vous authentifiant avec les identifiants de l'ancien projet Google Cloud et en appelant la accounts.developerRegistration.unregisterGcp méthode :
POST https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp
Content-Type: application/json
Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN

Remplacez les éléments suivants :

  • ACCOUNT_ID : votre ID Merchant Center
  • OLD_PROJECT_ACCESS_TOKEN: le jeton d'autorisation de l'ancien projet Google Cloud pour effectuer l'appel d'API

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"

Réattribuer un projet Google Cloud associé à un autre compte Merchant Center

Étant donné qu'un projet Google Cloud ne peut être associé qu'à un seul compte Merchant Center principal à la fois, procédez comme suit pour réattribuer un projet existant d'un compte Merchant Center (OLD_ACCOUNT_ID) à un autre (NEW_ACCOUNT_ID). Pour obtenir des conseils sur le compte Merchant Center auquel associer votre projet, consultez Considérations importantes :

  1. Authentifiez-vous à l'aide des identifiants du projet Google Cloud qui ont accès à OLD_ACCOUNT_ID et appelez unregisterGcp sur accounts/OLD_ACCOUNT_ID/developerRegistration.
  2. Vérifiez que l'identité d'authentification dispose du rôle ADMIN sur NEW_ACCOUNT_ID et que NEW_ACCOUNT_ID possède un site Web validé.
  3. Appelez registerGcp sur accounts/NEW_ACCOUNT_ID/developerRegistration à l'aide des identifiants du même projet Google Cloud. Si NEW_ACCOUNT_ID ne dispose pas encore d'un utilisateur avec le rôle API_DEVELOPER, transmettez une adresse e-mail d'utilisateur valide dans le champ de requête developerEmail. Les adresses e-mail de compte de service se terminant par .gserviceaccount.com ne peuvent pas être utilisées comme developerEmail.

Transférer des projets Google Cloud lors de la migration depuis Content API for Shopping

Lorsque vous migrez de Content API for Shopping vers Merchant API, vous pouvez rencontrer des limites d'accès sur votre ancien projet Google Cloud, par exemple si vos clés API d'origine ont été configurées directement via l'ancien workflow d'authentification Merchant Center ou si le propriétaire d'origine du projet a quitté votre organisation.

Selon que vous souhaitez conserver votre projet existant ou utiliser un nouveau projet pour Merchant API tout en conservant Content API for Shopping sur votre ancien projet, choisissez l'une des deux options suivantes.

Choisir votre stratégie de projet de migration

Scénario Accès administrateur à l'ancien projet requis ? API à activer Extension Content API for Shopping requise sur le nouveau projet ?
Option 1 : Conserver votre projet existant Oui (ou récupérer l'accès via l'assistance Google Cloud) Activez Merchant API sur le projet existant (Content API for Shopping est déjà activée) Non (l'extension existante sur l'ancien ID du projet reste valide)
Option 2 : Conserver l'ancien projet pour Content API for Shopping et utiliser un nouveau projet pour Merchant API Non Activez Merchant API sur le nouveau projet (laissez Content API for Shopping activée sur l'ancien projet) Non (l'ancien projet conserve son extension ; le nouveau projet n'appelle que Merchant API)

Option 1 : Conserver votre projet Google Cloud existant

Choisissez cette option si vous souhaitez utiliser votre projet Google Cloud existant à la fois pour Content API for Shopping et pour Merchant API.

Avant de commencer, vérifiez ou récupérez l'accès à votre projet existant. Connectez-vous à la console Google Cloud et vérifiez que votre compte dispose de l'un des rôles suivants sur votre projet existant :

  • Propriétaire (roles/owner)
  • Éditeur (roles/editor)
  • Administrateur de Service Usage (roles/serviceusage.serviceUsageAdmin)
  1. Activez Merchant API : activez merchantapi.googleapis.com dans la bibliothèque d'API Google Cloud ou avec la commande gcloud. Pour obtenir des instructions détaillées, consultez Configurer l'authentification de l'API depuis Merchant Center.
  2. Associez le projet Google Cloud à Merchant Center : suivez les étapes du guide S'inscrire en tant que développeur pour autoriser les requêtes de votre projet existant et appelez la méthode registerGcp afin d'associer votre projet Google Cloud existant à votre compte Merchant Center principal. Vos clés de compte de service existantes et l'extension Content API for Shopping approuvée continuent de fonctionner sans modification.

Option 2 : Utiliser l'ancien projet Google Cloud pour Content API for Shopping et un nouveau projet pour Merchant API

Choisissez cette option si votre ancienne intégration Content API for Shopping s'exécute déjà avec des identifiants valides et une extension approuvée sur votre ancien projet Google Cloud, et que vous souhaitez créer votre nouvelle intégration Merchant API dans un projet Google Cloud distinct et dédié :

  1. Conservez votre intégration Content API for Shopping sur l'ancien projet : laissez vos workflows et identifiants Content API for Shopping existants s'exécuter sur l'ancien projet Google Cloud. Si votre demande d'extension pour l'ancien ID du projet a été approuvée, votre intégration Content API for Shopping actuelle continue de fonctionner jusqu'à la date limite étendue.
  2. Créez un projet Google Cloud exclusivement pour Merchant API : créez un projet Google Cloud, activez merchantapi.googleapis.com et créez des identifiants (un compte de service ou un ID client OAuth 2.0) pour vos nouvelles charges de travail Merchant API.
  3. Associez le nouveau projet : suivez les étapes de la page S'inscrire en tant que développeur pour autoriser les requêtes de votre nouveau projet et appelez la méthode registerGcp avec une adresse e-mail de contact de développeur valide. Les adresses e-mail de compte de service (se terminant par .gserviceaccount.com) ne peuvent pas être utilisées comme developerEmail.
  4. Migrez les charges de travail de manière incrémentale : transférez progressivement les appels d'API de votre ancien projet Content API for Shopping vers votre nouveau projet Merchant API, avant la date de fin prévue de Content API for Shopping (ou avant l'expiration de votre extension approuvée), puis supprimez l'ancien projet une fois la migration terminée.

Cas particulier : Perte d'accès à votre ancien projet Google Cloud avant la fin de la migration

Content API for Shopping étant obsolète, elle n'est plus listée dans la bibliothèque d'API Google Cloud et ne peut pas être activée sur les projets Google Cloud nouvellement créés. Par conséquent, vous ne pouvez pas déplacer vous-même les charges de travail Content API for Shopping existantes vers un nouveau projet Google Cloud.

Si vous ne pouvez plus effectuer d'appels Content API for Shopping depuis votre ancien projet (par exemple, en raison d'identifiants révoqués ou d'un accès au projet irrécupérable) :

  1. Contactez l'assistance Google Cloud pour récupérer l'accès à votre projet Google Cloud existant (option 1), ou
  2. Suivez l'option 2 pour créer et associer un nouveau projet Google Cloud, puis migrez les workflows concernés directement vers Merchant API. Si vous rencontrez un problème de migration critique, contactez l'assistance Merchant API.

Étapes suivantes