Cette page explique comment créer des abonnements Pub/Sub avec des filtres.
Lorsque vous recevez des messages d'un abonnement avec un filtre, vous ne recevez que ceux qui correspondent au filtre. Le service Pub/Sub reconnaît automatiquement les messages qui ne correspondent pas au filtre. Vous pouvez filtrer les messages en fonction de leurs attributs, mais pas en fonction des données qu'ils contiennent.
Vous pouvez associer plusieurs abonnements à un sujet, et chaque abonnement peut avoir un filtre différent.
Par exemple, si vous avez un sujet qui reçoit des informations provenant de différentes parties du monde, vous pouvez configurer un abonnement pour filtrer les informations publiées uniquement dans une région spécifique. Pour cette configuration, vous devez vous assurer que l'un des attributs du message du sujet indique la région de publication des informations.
Lorsque vous recevez des messages d'un abonnement avec un filtre, des frais de sortie ne vous sont pas facturés pour les messages reconnus par Pub/Sub. Des frais de distribution de messages et de stockage associé à Seek vous sont facturés pour ces messages.
Créer un abonnement avec un filtre
Les abonnements pull et push peuvent comporter des filtres. Tous les abonnés peuvent recevoir des messages des abonnements avec des filtres, y compris ceux qui utilisent l' API StreamingPull.
Vous pouvez créer un abonnement avec un filtre à l'aide de la Google Cloud console, de la Google Cloud CLI, des bibliothèques clientes ou de l'API Pub/Sub.
Console
Pour créer un abonnement pull avec filtre, procédez comme suit :
Dans la Google Cloud console, accédez à la page Abonnements.
Cliquez sur Créer un abonnement.
Saisissez l'ID de l'abonnement.
Choisissez ou créez un sujet dans le menu déroulant. L'abonnement reçoit les messages du sujet.
Dans la section Filtre d'abonnement, saisissez l'expression du filtre.
Cliquez sur Create (Créer).
Pour créer un abonnement push avec un filtre, procédez comme suit :
Dans la Google Cloud console, accédez à la page Abonnements.
Cliquez sur Créer un abonnement.
Saisissez l'ID de l'abonnement.
Choisissez ou créez un sujet dans le menu déroulant. L'abonnement reçoit les messages du sujet.
Dans la section Type de distribution, cliquez sur Push.
Dans le champ URL du point de terminaison, saisissez l'URL du point de terminaison push.
Dans la section Filtre d'abonnement, saisissez l'expression du filtre.
Cliquez sur Create (Créer).
gcloud
Pour créer un abonnement pull avec un filtre, exécutez la commande gcloud pubsub subscriptions create avec l'option --message-filter :
gcloud pubsub subscriptions create SUBSCRIPTION_ID \ --topic=TOPIC_ID \ --message-filter='FILTER'
Remplacez les éléments suivants :
- SUBSCRIPTION_ID : ID de l'abonnement à créer
- TOPIC_ID : ID du sujet à associer à l'abonnement
- FILTER : expression dans la syntaxe de filtrage
Pour créer un abonnement push avec un filtre, exécutez la commande gcloud pubsub subscriptions create avec les options --push-endpoint et --message-filter :
gcloud pubsub subscriptions create SUBSCRIPTION_ID \ --topic=TOPIC_ID \ --push-endpoint=PUSH_ENDPOINT \ --message-filter='FILTER'
Remplacez les éléments suivants :
- SUBSCRIPTION_ID : ID de l'abonnement à créer
- TOPIC_ID : ID du sujet à associer à l'abonnement
- PUSH_ENDPOINT : URL du serveur sur lequel s'exécute l'abonné push
- FILTER : expression dans la syntaxe de filtrage
REST
Pour créer un abonnement avec un filtre, utilisez la méthode projects.subscriptions.create.
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID Authorization: Bearer $(gcloud auth print-access-token)
Remplacez les éléments suivants :
- PROJECT_ID : ID du projet dans lequel créer l'abonnement
- SUBSCRIPTION_ID : ID de l'abonnement à créer
Pour créer un abonnement pull avec un filtre, spécifiez le filtre dans le corps de la requête :