Créer un bus pour acheminer les messages

Un bus Eventarc Advanced vous permet de centraliser, de surveiller et de tracer le flux de messages dans votre système, et sert de routeur. Il reçoit des événements d'une source de messages ou publiés par un fournisseur, et les évalue en fonction d'un enregistrement. Un enregistrement identifie un abonnement à un bus spécifique et définit les critères de correspondance pour les messages, ce qui permet de les acheminer en conséquence. Pour en savoir plus, consultez Créer un enregistrement pour recevoir des événements.

Un bus peut être utilisé par les fournisseurs d'événements et les destinations de votre projet ou d'autres projets. Pour en savoir plus, consultez Mises en page des projets.

Rôles requis

Un rôle Identity and Access Management (IAM) contient un ensemble d'autorisations qui vous permet d'effectuer des actions spécifiques sur les ressources Google Cloud . Les rôles et autorisations suivants sont requis lorsque vous créez un bus pour acheminer des messages :

  • Pour obtenir l'autorisation nécessaire pour créer un bus, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Eventarc (roles/eventarc.admin) ou Administrateur de bus de messages Eventarc (roles/eventarc.messageBusAdmin) sur votre projet de bus. Ces rôles prédéfinis contiennent l'autorisation eventarc.messageBuses.create, qui est requise pour créer un bus.
  • Pour obtenir l'autorisation dont vous avez besoin pour utiliser un bus, demandez à votre administrateur de vous accorder le rôle IAM Utilisateur du bus de messages Eventarc (roles/eventarc.messageBusUser) sur votre projet de bus. Ce rôle prédéfini contient l'autorisation eventarc.buses.use, qui est nécessaire pour utiliser un bus.
  • Pour créer un pipeline et une inscription, des autorisations supplémentaires sont requises. Pour en savoir plus, consultez la section Rôles requis pour créer une inscription.

Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès. Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Créer un bus

Vous pouvez créer un bus de plusieurs manières :

  • Dans la console Google Cloud
  • En utilisant la Google Cloud CLI dans votre terminal ou Cloud Shell
  • en envoyant une requête à l'API Eventarc ;

Console

  1. Dans la console Google Cloud , accédez à la page Eventarc > Bus.

    Accéder à Bus

  2. Cliquez sur Créer un bus.

  3. Sur la page Créer un bus, procédez comme suit :

    1. Saisissez un nom de bus. Il s'agit de l'ID de votre bus.
    2. Facultatif : Saisissez un nom à afficher du bus qui s'affiche sur la page Détails du bus.
    3. Dans la liste Région, sélectionnez une région compatible pour déployer votre bus.
    4. Dans la liste Gravité du journal, sélectionnez la gravité minimale des événements décrits dans les entrées de journal. La valeur par défaut est Aucun. Pour en savoir plus, consultez LogSeverity.
    5. Pour Chiffrement, acceptez la valeur par défaut Google-managed encryption key ou sélectionnez Clé Cloud KMS. Pour en savoir plus, consultez Utiliser des clés de chiffrement gérées par le client (CMEK).
    6. Si vous sélectionnez Clé Cloud KMS, procédez comme suit :

      1. Dans la liste Type de clé, sélectionnez une méthode de gestion de vos clés.

        Vous pouvez gérer vos clés manuellement ou utiliser Autokey, qui vous permet de générer des trousseaux de clés et des clés à la demande. Si l'option Cloud KMS avec Autokey est désactivée, cela signifie qu'elle n'est pas encore intégrée au type de ressource actuel.

      2. Dans Sélectionner une clé Cloud KMS, sélectionnez une clé.

        Notez que vous devez sélectionner une région pour pouvoir afficher vos clés gérées par le client.

      3. (Facultatif) Pour saisir manuellement le nom de ressource de la clé, dans la liste Sélectionner une clé gérée par le client, cliquez sur Saisir la clé manuellement, puis saisissez le nom de la clé au format spécifié.

      4. Si vous y êtes invité, attribuez le rôle cloudkms.cryptoKeyEncrypterDecrypter à l'agent de service Eventarc.

    7. Facultatif : Pour ajouter une source de message, cliquez sur  > Ajouter une source.

      1. Dans le volet Ajouter une source de message, pour le fournisseur de messages de l'API Google, acceptez la valeur par défaut google-api-source ou saisissez un autre nom de source.
      2. Cliquez sur Créer.

        Cela permet la collecte automatique d'événements provenant directement de sources Google.

        Notez que seuls les événements provenant de ressources du même projet Google Cloudque le bus sont publiés. Pour en savoir plus, consultez Publier des événements à partir de sources Google.

    8. Facultatif : Pour ajouter des libellés, cliquez sur Ajouter un libellé. Les libellés sont des paires clé/valeur qui vous aident à organiser vos ressourcesGoogle Cloud . Pour en savoir plus, consultez Que sont les libellés ?

  4. Cliquez sur Créer.

gcloud

  1. Ouvrez un terminal.

  2. Créez un bus à l'aide de la commande gcloud eventarc message-buses create.

    gcloud eventarc message-buses create BUS_NAME \
        --location=REGION
    

    Remplacez les éléments suivants :

    • BUS_NAME : ID ou identifiant complet du bus.
    • REGION : emplacement compatible pour le bus

      Vous pouvez également définir la propriété d'emplacement de Google Cloud CLI :

      gcloud config set eventarc/location REGION
      

    Facultatif : Vous pouvez également utiliser les options suivantes :

    • --async pour quitter immédiatement la commande, sans attendre la fin de l'opération en cours.
    • --crypto-key pour spécifier le nom complet d'une clé de chiffrement gérée par le client. Si aucune clé n'est spécifiée, Google-owned and managed keys est utilisé.
    • --logging-config pour configurer le niveau de gravité minimal des événements décrits dans les entrées de journal. Doit être l'une des valeurs suivantes : NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT ou EMERGENCY. La valeur par défaut est NONE. Pour en savoir plus, consultez LogSeverity.

API REST

Pour créer un bus, utilisez la méthode projects.locations.messageBuses.create.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • BUS_NAME : nom à afficher de votre bus, par exemple my_bus.
  • LABEL_KEY et LABEL_VALUE : facultatifs. Il s'agit d'un mappage des paires clé/valeur de libellés qui vous aident à organiser vos ressources Google Cloud . Pour en savoir plus, consultez Que sont les libellés ?
  • ANNOTATION_KEY et ANNOTATION_VALUE : facultatifs. Carte des paires clé/valeur d'annotations de texte libre. Vous pouvez les utiliser pour joindre des informations arbitraires associées à la ressource. Pour en savoir plus, consultez Annotations.
  • ENCRYPT_KEY (facultatif) : Clé Cloud KMS que le bus doit utiliser pour le chiffrement des données au format projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Pour en savoir plus, consultez Utiliser des clés de chiffrement gérées par le client.
  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION : région dans laquelle créer le bus (par exemple, us-central1).
  • LOG_SEVERITY (facultatif) : Gravité minimale de l'événement décrit dans une entrée de journal. Au choix : NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT ou EMERGENCY. La valeur par défaut est NONE. Pour en savoir plus, consultez LogSeverity.

Corps JSON de la requête :

{
  "display_name": "BUS_NAME",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"},
  "cryptoKeyName": "ENCRYPT_KEY",
  "loggingConfig": {"logSeverity":"LOG_SEVERITY"}
}

Pour envoyer votre requête, développez l'une des options suivantes :

Si la requête aboutit, le corps de la réponse contient une nouvelle instance de Operation :

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/messageBuses/BUS_NAME",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Supprimer un bus

Vous pouvez supprimer un bus de différentes manières :

  • Dans la console Google Cloud
  • À l'aide de gcloud CLI dans votre terminal ou Cloud Shell
  • en envoyant une requête à l'API Eventarc ;

Console

  1. Dans la console Google Cloud , accédez à la page Eventarc > Bus.

    Accéder à Bus

    La page Détails du bus s'ouvre.

  2. Cliquez sur Supprimer.

  3. Lorsque vous êtes invité à supprimer le bus, cochez la case Voulez-vous continuer ? pour confirmer que les sources de messages configurées pour utiliser le bus ne pourront plus le faire.

  4. Pour confirmer la suppression, saisissez Delete.

  5. Cliquez sur Supprimer.

gcloud

  1. Ouvrez un terminal.

  2. Supprimez un bus à l'aide de la commande gcloud eventarc message-buses delete.

    gcloud eventarc message-buses delete BUS_NAME \
        --location=REGION
    

    Remplacez les éléments suivants :

API REST

Pour supprimer un bus, utilisez la méthode projects.locations.messageBuses.delete.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet Google Cloud.
  • LOCATION : région dans laquelle le bus est créé (par exemple, us-central1).
  • BUS_NAME : nom du bus que vous souhaitez supprimer.

Pour envoyer votre requête, développez l'une des options suivantes :

Si la requête aboutit, le corps de la réponse contient une nouvelle instance de Operation :

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/messageBuses/BUS_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Étapes suivantes