Mettre à jour les sujets SMT

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

Pour mettre à jour les SMT de sujet, vous pouvez utiliser la Google Cloud console, 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 sujet, 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 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 sujet. 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 sujet :

  • Accorder l'autorisation de mettre à jour un sujet sur le sujet : projects.topics.patch
  • Accorder l'autorisation d'afficher un sujet sur le projet. Cette autorisation n'est requise que si vous utilisez la Google Cloud console: 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 ressources individuelles.

Mettre à jour les SMT de sujet

Pour mettre à jour les SMT de sujet, procédez comme suit :

Console

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

    Accéder aux sujets

  2. Cliquez sur le sujet pour lequel vous souhaitez modifier les SMT.

  3. Sur la page d'informations du sujet, cliquez sur Modifier.

    L'onglet Transformations liste toutes les SMT associées au sujet.

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

    1. Ajouter une SMT. Cliquez sur Ajouter une transformation.

    2. Modifier une SMT existante. Développez une SMT pour la modifier.

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

    4. Supprimer une SMT. Cliquez sur le bouton Supprimer.

  5. Cliquez sur Mettre à jour.

gcloud

  1. Dans la Google Cloud console, activez Cloud Shell.

    Activer Cloud Shell

    En bas de la Google Cloud console, une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement de shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  2. Exécutez la gcloud pubsub topics updatecommande :

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

    Remplacez les éléments suivants :

    • TOPIC_ID : ID ou nom du sujet que vous souhaitez mettre à jour.

    • TRANSFORMS_FILE : chemin d'accès au fichier YAML ou JSON contenant les SMT mises à 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 toutes les SMT du sujet, utilisez la commande suivante :

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

    Remplacez TOPIC_ID par l'ID ou le nom du sujet que vous souhaitez mettre à jour.

Étape suivante