Note

Ce plugin fait partie de la collection google.cloud (version 1.0.2).

Pour l'installer, utilisez : ansible-galaxy collection install google.cloud.

Pour l'utiliser dans un playbook, spécifiez : google.cloud.gcp_pubsub_subscription.

  • Synopsis
  • Exigences
  • Paramètres
  • Notes
  • Exemples
  • Valeurs de retour

Synopsis

  • Une ressource nommée représentant le flux de messages d'un sujet unique et spécifique, à livrer à l'application abonnée.

Exigences

Les exigences ci-dessous sont nécessaires sur l'hôte qui exécute ce module.

  • python >= 2.6
  • requests >= 2.18.4
  • google-auth >= 1.3.0

Paramètres

Paramètre Choix/par défaut Commentaires
ack_deadline_secondsnombre entier Cette valeur est le délai maximum après la réception d'un message par un abonné avant que celui-ci ne doive accuser réception du message. Après la livraison du message mais avant l'expiration du délai d'ack et avant que le message ne soit acquitté, il s'agit d'un message en suspens et il ne sera pas livré à nouveau pendant cette période (sur la base du meilleur effort).Pour les abonnements pull, cette valeur est utilisée comme valeur initiale pour le délai d'ack. Pour remplacer cette valeur pour un message donné, appelez subscriptions.modifyAckDeadline avec l'ackId correspondant si vous utilisez la fonction pull. Le délai personnalisé minimum que vous pouvez spécifier est de 10 secondes. Le délai personnalisé maximum que vous pouvez spécifier est de 600 secondes (10 minutes).Si ce paramètre est égal à 0, une valeur par défaut de 10 secondes est utilisée.Pour la livraison push, cette valeur est également utilisée pour définir le délai de demande pour l'appel au point de terminaison push.Si l'abonné n'accuse jamais réception du message, le système Pub/Sub finira par redonner le message.
auth_kindchaîne de caractères / obligatoire
    Choix :

  • application
  • compte machine
  • compte de service
Le type de justificatif d'identité utilisé.
politique_de_lettre_mortedictionnaire Une politique qui spécifie les conditions de lettrage mort des messages dans cet abonnement. Si dead_letter_policy n'est pas défini, le lettrage mort est désactivé.Le compte de service Cloud Pub/Sub associé au projet parent de cet abonnement (c'est-à-dire, service-{numéro_projet}@gcp-sa-pubsub.iam.gserviceaccount.com) doit avoir la permission d'Acquitter() les messages sur cet abonnement.
lettre_morte_sujetchaîne de caractères Le nom du sujet vers lequel les messages de lettre morte doivent être publiés.Le format est `projects/{projet}/topics/{topic}`.Le compte de service Cloud Pub/Sub associé au projet parent de l'abonnement englobant (c'est-à-dire, service-{numéro_projet}@gcp-sa-pubsub.iam.gserviceaccount.com) doit avoir la permission de Publish() vers ce sujet.L'opération échouera si le sujet n'existe pas.Les utilisateurs doivent s'assurer qu'un abonnement est attaché à ce sujet car les messages publiés vers un sujet sans abonnement sont perdus.
max_delivery_attemptsnombre entier Le nombre maximum de tentatives de livraison pour tout message. La valeur doit être comprise entre 5 et 100.Le nombre de tentatives de livraison est défini comme 1 + (la somme du nombre de NACKs et du nombre de fois où le délai d'acquittement a été dépassé pour le message).Un NACK est tout appel à ModifyAckDeadline avec un délai de 0. Notez que les bibliothèques clientes peuvent prolonger automatiquement les ack_deadlines.Ce champ sera honoré au mieux.Si ce paramètre est égal à 0, une valeur par défaut de 5 est utilisée.
enable_message_orderingbooléen
    Choix :

  • pas de
  • oui
Si `true`, les messages publiés avec la même orderingKey dans PubsubMessage seront livrés aux abonnés dans l'ordre dans lequel ils sont reçus par le système Pub/Sub. Sinon, ils peuvent être livrés dans n'importe quel ordre.
env_typechaîne de caractères Spécifie dans quel environnement Ansible vous exécutez ce module.Cela ne devrait pas être défini à moins que vous ne sachiez ce que vous faites.Cela modifie uniquement la chaîne d'agent utilisateur pour toute demande d'API.
politique_expirationdictionnaire Une politique qui spécifie les conditions d'expiration de cet abonnement.Un abonnement est considéré comme actif tant que tout abonné connecté consomme avec succès des messages de l'abonnement ou émet des opérations sur l'abonnement. Si expirationPolicy n'est pas défini, une politique par défaut avec ttl de 31 jours sera utilisée. Si elle est définie mais que ttl est "", la ressource n'expire jamais. La valeur minimale autorisée pour expirationPolicy.ttl est de 1 jour.
ttlchaîne de caractères / obligatoire Spécifie la durée du "temps de vie" pour une ressource associée. La ressource expire si elle n'est pas active pendant une période de ttl.Si ttl n'est pas défini, la ressource associée n'expire jamais.Une durée en secondes avec jusqu'à neuf chiffres fractionnaires, terminée par 's'.Exemple - "3,5s".
filtrechaîne de caractères L'abonnement ne délivre que les messages qui correspondent au filtre. Pub/Sub accuse automatiquement réception des messages qui ne correspondent pas au filtre. Vous pouvez filtrer les messages par leurs attributs. La longueur maximale d'un filtre est de 256 octets. Après avoir créé l'abonnement, vous ne pouvez pas modifier le filtre.
étiquettesdictionnaire Un ensemble de couples d'étiquettes clé/valeur à affecter à cet Abonnement.
message_retention_durationchaîne de caractères Par défaut :
"604800s"
Durée de conservation des messages non acquittés dans le backlog de l'abonnement, à partir du moment où un message est publié. Si retainAckedMessages est true, alors cela configure également la rétention des messages acquittés, et donc configure jusqu'à quand un subscriptions.seek peut être effectué. La valeur par défaut est de 7 jours. Ne peut pas être supérieur à 7 jours (`"604800s"`) ou inférieur à 10 minutes (`"600s"`).Une durée en secondes avec jusqu'à neuf chiffres fractionnaires, terminés par 's'. Exemple : `"600.5s"`.
nomchaîne de caractères / obligatoire Nom de l'abonnement.
projetchaîne de caractères Le projet de la plateforme Google Cloud à utiliser.
push_configdictionnaire Si la livraison par push est utilisée avec cet abonnement, ce champ est utilisé pour le configurer. Un pushConfig vide signifie que l'abonné tirera et acquerra des messages en utilisant des méthodes API.
attributsdictionnaire Attributs de configuration du point de terminaison.Chaque point de terminaison possède un ensemble d'attributs pris en charge par l'API qui peuvent être utilisés pour contrôler différents aspects de la livraison du message.L'attribut actuellement pris en charge est x-goog-version, que vous pouvez utiliser pour modifier le format du message poussé. Cet attribut indique la version des données attendues par le point de terminaison. Cela contrôle la forme du message poussé (c'est-à-dire ses champs et ses métadonnées). La version du point de terminaison est basée sur la version de l'API Pub/Sub. Si elle n'est pas présente lors de l'appel subscriptions.create, elle correspondra par défaut à la version de l'API utilisée pour effectuer cet appel. S'il n'est pas présent lors d'un appel subscriptions.modifyPushConfig, sa valeur ne sera pas modifiée. Les appels subscriptions.get renverront toujours une version valide, même si l'abonnement a été créé sans cet attribut.Les valeurs possibles pour cet attribut sont : - v1beta1 : utilise le format push défini dans l'API Pub/Sub v1beta1.- v1 ou v1beta2 : utilise le format push défini dans l'API Pub/Sub v1.
oidc_tokendictionnaire S'il est spécifié, Pub/Sub génère et joint un jeton OIDC JWT en tant qu'en-tête d'autorisation dans la requête HTTP pour chaque message poussé.
audiencechaîne de caractères Audience à utiliser lors de la génération du jeton OIDC. La demande d'audience identifie les destinataires auxquels le JWT est destiné. La valeur audience est une chaîne de caractères unique sensible à la casse. Il n'est pas possible d'avoir plusieurs valeurs (tableau) pour le champ audience. Plus d'infos sur l'audience du jeton OIDC JWT ici : https://tools.ietf.org/html/rfc7519#section-4.1.3 Remarque : si elle n'est pas spécifiée, l'URL du point de terminaison Push sera utilisée.
service_account_emailchaîne de caractères / obligatoire Courriel du compte de service à utiliser pour générer le jeton OIDC.L'appelant (pour les RPCs subscriptions.create, subscriptions.patch, et subscriptions.modifyPushConfig) doit avoir la permission iam.serviceAccounts.actAs pour le compte de service.
push_endpointchaîne de caractères / obligatoire Une URL localisant le point de terminaison vers lequel les messages doivent être poussés.Par exemple, un point de terminaison Webhook pourrait utiliser "https://example.com/push".
retain_acked_messagesbooléen
    Choix :

  • pas de
  • oui
Indique s'il faut conserver les messages ayant fait l'objet d'un accusé de réception. Si `true`, alors les messages ne sont pas expurgés du backlog de l'abonnement, même s'ils sont acquittés, jusqu'à ce qu'ils tombent en dehors de la fenêtre messageRetentionDuration.
retry_policydictionnaire Une politique qui spécifie comment Pub/Sub relance la livraison des messages pour cet abonnement.Si elle n'est pas définie, la politique de relance par défaut est appliquée. Cela implique généralement que les messages seront retentés dès que possible pour les abonnés en bonne santé. RetryPolicy sera déclenché sur les événements NACKs ou délai d'acquittement dépassé pour un message donné .
maximum_backoffchaîne de caractères Le délai maximum entre les livraisons consécutives d'un message donné. La valeur doit être comprise entre 0 et 600 secondes. La valeur par défaut est 600 secondes. Une durée en secondes avec jusqu'à neuf chiffres fractionnaires, terminés par 's'. Exemple : "3.5s".
retrait minimumchaîne de caractères Le délai minimum entre les livraisons consécutives d'un message donné. La valeur doit être comprise entre 0 et 600 secondes. La valeur par défaut est de 10 secondes.Une durée en secondes avec jusqu'à neuf chiffres fractionnaires, terminés par 's'. Exemple : "3.5s".
scopesliste / elements=string Tableau des scopes à utiliser
service_account_contentsjsonarg Le contenu d'un fichier JSON de compte de service, soit dans un dictionnaire, soit sous la forme d'une chaîne JSON qui le représente.
compte_de_service_emailchaîne de caractères Une adresse électronique facultative du compte de service si machineaccount est sélectionné et que l'utilisateur ne souhaite pas utiliser l'adresse électronique par défaut.
service_account_filechemin d'accès Le chemin d'un fichier JSON de compte de service si serviceaccount est sélectionné comme type.
étatchaîne de caractères
    Choix :

  • présent
  • absent
Si l'objet donné doit exister dans les BPC
sujetdictionnaire / obligatoire Référence à une ressource thématique.Ce champ représente un lien vers une ressource thématique dans GCP. Il peut être spécifié de deux façons. Tout d'abord, vous pouvez placer un dictionnaire avec la clé "name" et la valeur du nom de votre ressource. Alternativement, vous pouvez ajouter `register : name-of-resource` à une tâche gcp_pubsub_topic et ensuite définir ce champ topic à "{{ name-of-resource }}".

Notes

Note

  • Référence API : https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions
  • Gestion des abonnements : https://cloud.google.com/pubsub/docs/admin#managing_subscriptions
  • pour l'authentification, vous pouvez définir le service_account_file à l'aide de la commande gcp_service_account_file variable env.
  • pour l'authentification, vous pouvez définir service_account_contents en utilisant la variable env. GCP_SERVICE_ACCOUNT_CONTENTS variable env.
  • Pour l'authentification, vous pouvez définir service_account_email en utilisant la variable env. GCP_SERVICE_ACCOUNT_EMAIL variable env.
  • Pour l'authentification, vous pouvez définir auth_kind en utilisant la variable env. GCP_AUTH_KIND variable env.
  • Pour l'authentification, vous pouvez définir les scopes en utilisant la variable env. GCP_SCOPES variable env.
  • Les valeurs des variables d'environnement ne seront utilisées que si les valeurs du playbook ne sont pas définies.
  • Le site service_account_email et service_account_file sont mutuellement exclusives.

Exemples

-name: create a topic
  google.cloud.gcp_pubsub_topic:name: topic-subscription
    project:"{{ gcp_project }}"auth_kind:"{{ gcp_cred_kind }}"service_account_file:"{{ gcp_cred_file }}"state: present
  register: topic

-name: create a subscription
  google.cloud.gcp_pubsub_subscription:name: test_object
    topic:"{{ topic }}"ack_deadline_seconds:300project: test_project
    auth_kind: serviceaccount
    service_account_file:"/tmp/auth.pem"state: present

Valeurs de retour

Les valeurs de retour courantes sont documentées ici, les champs suivants sont uniques à ce module :

Clé Renvoyé Description
ackDeadlineSecondsnombre entier succès Cette valeur est le délai maximum après la réception d'un message par un abonné avant que celui-ci ne doive accuser réception du message. Après la livraison du message mais avant l'expiration du délai d'acquittement et avant que le message ne soit acquitté, il s'agit d'un message en suspens et il ne sera pas livré à nouveau pendant cette période (sur la base du meilleur effort).Pour les abonnements pull, cette valeur est utilisée comme valeur initiale pour le délai d'acquittement. Pour remplacer cette valeur pour un message donné, appelez subscriptions.modifyAckDeadline avec l'ackId correspondant si vous utilisez la fonction pull. Le délai personnalisé minimum que vous pouvez spécifier est de 10 secondes. Le délai personnalisé maximum que vous pouvez spécifier est de 600 secondes (10 minutes).Si ce paramètre est égal à 0, une valeur par défaut de 10 secondes est utilisée.Pour la livraison push, cette valeur est également utilisée pour définir le délai de demande pour l'appel au point de terminaison push.Si l'abonné n'accuse jamais réception du message, le système Pub/Sub finira par redonner le message.
deadLetterPolicycomplexe succès Une politique qui spécifie les conditions de lettrage mort des messages dans cet abonnement. Si dead_letter_policy n'est pas défini, le lettrage mort est désactivé.Le compte de service Cloud Pub/Sub associé au projet parent de cet abonnement (c'est-à-dire service-{numéro_projet}@gcp-sa-pubsub.iam.gserviceaccount.com) doit avoir l'autorisation d'accuser réception() des messages sur cet abonnement.
deadLetterTopicchaîne de caractères succès Le nom du sujet vers lequel les messages de lettre morte doivent être publiés.Le format est `projects/{projet}/topics/{topic}`.Le compte de service Cloud Pub/Sub associé au projet parent de l'abonnement englobant (c'est-à-dire, service-{numéro_projet}@gcp-sa-pubsub.iam.gserviceaccount.com) doit avoir la permission de Publish() vers ce sujet.L'opération échouera si le sujet n'existe pas.Les utilisateurs doivent s'assurer qu'un abonnement est attaché à ce sujet car les messages publiés vers un sujet sans abonnement sont perdus.
maxDeliveryAttemptsnombre entier succès Le nombre maximum de tentatives de livraison pour tout message. La valeur doit être comprise entre 5 et 100. Le nombre de tentatives de distribution est défini comme 1 + (la somme du nombre de NACK et du nombre de fois où le délai d'accusé de réception a été dépassé pour le message). Un NACK est un appel à ModifyAckDeadline avec un délai de 0. Notez que les bibliothèques clientes peuvent prolonger automatiquement les ack_deadlines.Ce champ sera honoré au mieux.Si ce paramètre est égal à 0, une valeur par défaut de 5 est utilisée.
enableMessageOrderingboolean succès Si `true`, les messages publiés avec la même orderingKey dans PubsubMessage seront livrés aux abonnés dans l'ordre dans lequel ils sont reçus par le système Pub/Sub. Sinon, ils peuvent être livrés dans n'importe quel ordre.
expirationPolicycomplexe succès Une politique qui spécifie les conditions d'expiration de cet abonnement.Un abonnement est considéré comme actif tant que tout abonné connecté consomme avec succès des messages de l'abonnement ou émet des opérations sur l'abonnement. Si expirationPolicy n'est pas défini, une politique par défaut avec ttl de 31 jours sera utilisée. Si elle est définie mais que ttl est "", la ressource n'expire jamais. La valeur minimale autorisée pour expirationPolicy.ttl est de 1 jour.
ttlchaîne de caractères succès Spécifie la durée de "temps à vivre" pour une ressource associée. La ressource expire si elle n'est pas active pendant une période de ttl.Si ttl n'est pas défini, la ressource associée n'expire jamais.Une durée en secondes avec jusqu'à neuf chiffres fractionnaires, terminée par 's'.Exemple - "3,5s".
filtrechaîne de caractères succès L'abonnement ne délivre que les messages qui correspondent au filtre. Pub/Sub accuse automatiquement réception des messages qui ne correspondent pas au filtre. Vous pouvez filtrer les messages par leurs attributs. La longueur maximale d'un filtre est de 256 octets. Après avoir créé l'abonnement, vous ne pouvez pas modifier le filtre.
étiquettesdictionnaire succès Un ensemble de couples d'étiquettes clé/valeur à affecter à cet Abonnement.
messageRetentionDurationchaîne de caractères succès Combien de temps conserver les messages non acquittés dans le backlog de l'abonnement, à partir du moment où un message est publié. Si retainAckedMessages est true, alors cela configure également la rétention des messages acquittés, et configure donc jusqu'où dans le temps une subscriptions.seek peut être effectuée. La valeur par défaut est de 7 jours. Ne peut pas être supérieur à 7 jours (`"604800s"`) ou inférieur à 10 minutes (`"600s"`).Une durée en secondes avec jusqu'à neuf chiffres fractionnaires, terminés par 's'. Exemple : `"600.5s"`.
nomchaîne de caractères succès Nom de l'abonnement.
pushConfigcomplexe succès Si la livraison push est utilisée avec cet abonnement, ce champ est utilisé pour le configurer. Un pushConfig vide signifie que l'abonné tirera et acquerra des messages en utilisant des méthodes API.
attributsdictionnaire succès Attributs de configuration du point de terminaison.Chaque point de terminaison possède un ensemble d'attributs supportés par l'API qui peuvent être utilisés pour contrôler différents aspects de la livraison du message.L'attribut actuellement supporté est x-goog-version, que vous pouvez utiliser pour modifier le format du message poussé. Cet attribut indique la version des données attendues par le point de terminaison. Cela contrôle la forme du message poussé (c'est-à-dire ses champs et ses métadonnées). La version du point de terminaison est basée sur la version de l'API Pub/Sub. Si elle n'est pas présente lors de l'appel subscriptions.create, elle correspondra par défaut à la version de l'API utilisée pour effectuer cet appel. S'il n'est pas présent lors d'un appel subscriptions.modifyPushConfig, sa valeur ne sera pas modifiée. Les appels subscriptions.get renverront toujours une version valide, même si l'abonnement a été créé sans cet attribut.Les valeurs possibles pour cet attribut sont : - v1beta1 : utilise le format push défini dans l'API Pub/Sub v1beta1.- v1 ou v1beta2 : utilise le format push défini dans l'API Pub/Sub v1.
oidcTokencomplexe succès S'il est spécifié, Pub/Sub générera et joindra un jeton OIDC JWT en tant qu'en-tête d'autorisation dans la requête HTTP pour chaque message poussé.
audiencechaîne de caractères succès Audience à utiliser lors de la génération du jeton OIDC. La demande d'audience identifie les destinataires auxquels le JWT est destiné. La valeur audience est une chaîne de caractères unique sensible à la casse. Il n'est pas possible d'avoir plusieurs valeurs (tableau) pour le champ audience. Plus d'infos sur l'audience du jeton OIDC JWT ici : https://tools.ietf.org/html/rfc7519#section-4.1.3 Remarque : si elle n'est pas spécifiée, l'URL du point de terminaison Push sera utilisée.
serviceAccountEmailchaîne de caractères succès Courriel du compte de service à utiliser pour générer le jeton OIDC.L'appelant (pour les RPCs subscriptions.create, subscriptions.patch, et subscriptions.modifyPushConfig) doit avoir la permission iam.serviceAccounts.actAs pour le compte de service.
pushEndpointchaîne de caractères succès Une URL localisant le point de terminaison vers lequel les messages doivent être poussés.Par exemple, un point de terminaison Webhook pourrait utiliser "https://example.com/push".
retainAckedMessagesbooléen succès Indique s'il faut conserver les messages acquittés. Si `true`, alors les messages ne sont pas expurgés du backlog de l'abonnement, même s'ils sont acquittés, jusqu'à ce qu'ils tombent en dehors de la fenêtre messageRetentionDuration.
retryPolicycomplexe succès Une politique qui spécifie comment Pub/Sub relance la livraison des messages pour cet abonnement.Si elle n'est pas définie, la politique de relance par défaut est appliquée. Cela implique généralement que les messages seront retentés dès que possible pour les abonnés sains. RetryPolicy sera déclenché sur les événements NACKs ou délai d'acquittement dépassé pour un message donné .
maximumBackoffchaîne de caractères succès Le délai maximal entre les livraisons consécutives d'un message donné. La valeur doit être comprise entre 0 et 600 secondes. La valeur par défaut est de 600 secondes. Une durée en secondes avec jusqu'à neuf chiffres fractionnaires, terminés par 's'. Exemple : "3.5s".
minimumBackoffchaîne de caractères succès Le délai minimum entre les livraisons consécutives d'un message donné. La valeur doit être comprise entre 0 et 600 secondes. La valeur par défaut est de 10 secondes.Une durée en secondes avec jusqu'à neuf chiffres fractionnaires, terminée par 's'. Exemple : "3.5s".
sujetdictionnaire succès Une référence à une ressource thématique.

Auteurs

  • Google Inc. (@googlecloudplatform)