Mettre à jour les sujets SMT

Ce document explique comment mettre à jour une transformation de message unique (SMT) pour un sujet Pub/Sub. Les modifications apportées aux SMT prennent effet en quelques minutes. Pour les SMT de thèmes, les modifications s'appliquent aux nouveaux messages publiés après la mise à jour du SMT.

Pour mettre à jour les SMT de sujet, vous pouvez utiliser la console Google Cloud , la Google Cloud CLI, la bibliothèque cliente ou l'API Pub/Sub.

Rôles et autorisations requis

Pour obtenir les autorisations nécessaires pour mettre à jour les SMT de thèmes, demandez à votre administrateur de vous accorder le rôle IAM Éditeur Pub/Sub (roles/pubsub.editor) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour mettre à jour les SMT de thèmes. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour mettre à jour les SMT de thèmes :

  • Accordez l'autorisation "Mettre à jour un thème" sur le thème : projects.topics.patch
  • Accordez l'autorisation "Afficher un thème" sur le projet. Cette autorisation n'est requise que si vous utilisez la console Google Cloud  : pubsub.topics.view

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Vous pouvez configurer le contrôle des accès au niveau du projet et au niveau de chaque ressource.

Mettre à jour les SMT de thème

Pour mettre à jour les SMT de thèmes, procédez comme suit :

Console

  1. Dans la console Google Cloud , accédez à la page Sujets de Pub/Sub.

    Accéder aux sujets

  2. Cliquez sur le thème pour lequel vous souhaitez modifier les SMT.

  3. Sur la page des détails de la rubrique, cliquez sur Modifier.

    L'onglet Transformations liste tous les SMT associés au thème.

  4. Sur la page "Modifier la rubrique", vous pouvez effectuer les tâches suivantes :

    1. Ajoutez un nouveau SMT. Cliquez sur Ajouter une transformation.

    2. Modifiez un SMT existant. Développez une transformation de message unique pour la modifier.

    3. Réorganisez les SMT. Utilisez les flèches vers le haut et vers le bas.

    4. Supprimez un SMT. Cliquez sur le bouton de suppression.

  5. Cliquez sur Mettre à jour.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Exécutez la commande gcloud pubsub topics update :

    gcloud pubsub topics update TOPIC_ID \
        --message-transforms-file=TRANSFORMS_FILE

    Remplacez les éléments suivants :

    • TOPIC_ID : ID ou nom de la thématique que vous souhaitez modifier.

    • TRANSFORMS_FILE : chemin d'accès au fichier YAML ou JSON contenant les SMT mis à jour.

      Voici un exemple de fichier de transformations YAML :

      - javascriptUdf:
          code: >
              function redactSSN(message, metadata) {
                const data = JSON.parse(message.data);
                delete data['ssn'];
                message.data = JSON.stringify(data);
                return message;
              }
          functionName: redactSSN
      - javascriptUdf:
          code: >
              function filterHighAmount(message, metadata) {
                const data = JSON.parse(message.data);
                if (data['amount'] > 100 ) { return null; }
                return message;
              }
          functionName: filterHighAmount

    Pour effacer tous les SMT du thème, utilisez la commande suivante :

    gcloud pubsub topics update TOPIC_ID --clear-message-transforms

    Remplacez TOPIC_ID par l'ID ou le nom du thème que vous souhaitez modifier.

Étapes suivantes