Vous consultez la documentation d'Apigee Edge.
Consultez la
documentation Apigee X. en savoir plus
Version: 1.5.1
Publier des messages dans un sujet dans le service Google Cloud Pub/Sub
Ce contenu fournit une documentation de référence sur la configuration et l'utilisation de cette extension.
Conditions préalables
Avant d'utiliser l'extension à partir d'un proxy d'API avec la règle ExtensionCallout, vous devez:
Créez un sujet Cloud Pub/Sub, comme décrit dans le Guide de démarrage rapide sur l'utilisation de la console.
Une fois le sujet créé, accordez-lui l'autorisation de le publier dans votre sujet Cloud Pub/Sub. Par exemple, vous pouvez utiliser le rôle
roles/pubsub.publisher
pour publier dans des sujets. Pour en savoir plus sur les rôles Cloud Pub/Sub, consultez la page Contrôle des accès.Utilisez la console GCP pour générer une clé pour le compte de service.
Utilisez le contenu du fichier JSON de clé obtenu lorsque vous ajoutez et configurez l'extension à l'aide des documents de référence de configuration.
À propos de Cloud Pub/Sub
Cloud Pub/Sub fournit une messagerie asynchrone de type "plusieurs à plusieurs" qui dissocie les expéditeurs et les destinataires. Cloud Pub/Sub fournit une messagerie durable à faible latence qui aide les développeurs à intégrer rapidement les systèmes hébergés sur Google Cloud Platform et en externe.
Si vous débutez avec Cloud Pub/Sub, consultez les guides de démarrage rapide dans la documentation Cloud Pub/Sub.
Samples
Les exemples suivants illustrent comment configurer la compatibilité avec les actions de l'extension Cloud Pub/Sub à l'aide de la règle ExtensionCallout.
SMS
Dans cet exemple, l'action publish
publie un message sous forme de chaîne simple dans un sujet spécifié dans la configuration de l'extension. L'action publish
renvoie l'ID du message publié dans le sujet dans lequel il a été publié et l'écrit dans la variable spécifiée par la balise <Output>
:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Publish-Message">
<DisplayName>Publish Message</DisplayName>
<Connector>cloud-pub-sub-extension-example</Connector>
<Action>publish</Action>
<Input><![CDATA[
{
"message" : "My test message."
}
]]></Input>
<Output>topic.message</Output>
</ConnectorCallout>
La règle Assign Message (Attribuer un message) suivante utilise la valeur de la variable stockant la réponse de l'extension pour attribuer la charge utile de réponse. L'ID du message est stocké dans la propriété messageId
de la variable de sortie:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Topic-Message-ID">
<DisplayName>Get Topic Message ID</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{topic.message.messageId}</Payload>
</Set>
</AssignMessage>
Les données de réponse sont renvoyées au format JSON:
{"messageId":"165918654986954"}
Par conséquent, la valeur de topic.message.messageId
est 165918654986954.
Message JSON
Dans cet exemple, l'action publish
publie un message au format JSON dans un sujet spécifié dans la configuration de l'extension. L'action publish
renvoie l'ID du message publié dans le sujet dans lequel il a été publié et l'écrit dans la variable spécifiée par la balise <Output>
:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Publish-Message">
<DisplayName>Publish Message</DisplayName>
<Connector>cloud-pub-sub-extension-example</Connector>
<Action>publish</Action>
<Input><![CDATA[
{
"message" : { "info" : "My test message" }
}
]]></Input>
<Output>topic.message</Output>
</ConnectorCallout>
La règle Assign Message (Attribuer un message) suivante utilise la valeur de la variable stockant la réponse de l'extension pour attribuer la charge utile de réponse. L'ID du message est stocké dans la propriété messageId
de la variable de sortie:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Topic-Message-ID">
<DisplayName>Get Topic Message ID</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{topic.message.messageId}</Payload>
</Set>
</AssignMessage>
Les données de réponse sont renvoyées au format JSON:
{"messageId":"165918654986954"}
Par conséquent, la valeur de topic.message.messageId
est 165918654986954.
Actions
publish
Publie un message dans le sujet spécifié dans la configuration de cette extension.
Syntaxe
<Action>publish</Action>
<Input><![CDATA[{
"message" : "message-to-publish" | JSON-structured-data,
"customAttributes": JSON-array
}]]></Input>
Exemple de chaîne
<Action>publish</Action>
<Input><![CDATA[
{
"message" : "My test message."
}
]]></Input>
Exemple de données structurées JSON
<Action>publish</Action>
<Input><![CDATA[
{
"message" : { "info" : "My test message" }
}
]]></Input>
Exemple d'attributs personnalisés
<Action>publish</Action>
<Input><![CDATA[
{
"message" : { "info" : "My test message" },
"customAttributes": {"attr1": "foo", "attr2": "bar"}
}
]]></Input>
Paramètres de requête
Paramètres | Description | Type | Par défaut | Obligatoire |
---|---|---|---|---|
message | Message à publier. Vous pouvez utiliser une chaîne simple ou structurer votre message avec le code JSON de votre propre conception. | Chaîne ou JSON | Aucun | Oui |
customAttributes | Attributs personnalisés à ajouter au message sous la forme: "customAttributes": {"attr1": "foo", "attr2": "bar"} . |
Tableau JSON | Aucun | Non |
Réponse
JSON contenant l'ID du message tel qu'il a été publié dans le sujet. Exemple :
{"messageId":"165918654986954"}
Documentation de référence sur la configuration
Utilisez le code suivant lorsque vous configurez et déployez cette extension pour l'utiliser dans des proxys d'API.
Propriétés d'extension courantes
Les propriétés suivantes sont présentes pour chaque extension.
Propriété | Description | Par défaut | Obligatoire |
---|---|---|---|
name |
Nom que vous attribuez à cette configuration de l'extension. | Aucune | Oui |
packageName |
Nom du package d'extension tel qu'indiqué par Apigee Edge. | Aucune | Oui |
version |
Numéro de version du package d'extension à partir duquel vous configurez une extension. | Aucune | Oui |
configuration |
Valeur de configuration spécifique à l'extension que vous ajoutez. Consultez Propriétés de ce package d'extension. | Aucune | Oui |
Propriétés de ce package d'extension
Propriété | Description | Par défaut | Obligatoire |
---|---|---|---|
topic |
Sujet dans lequel publier. Récupérez cette valeur à partir du service Pub/Sub, par exemple depuis la console GCP du service. Par exemple, le nom du thème peut se présenter sous la forme projects/GCP-PROJECT-ID/topics/TOPIC-NAME . |
Aucune | Oui. |
credentials |
Une fois saisi dans la console Apigee Edge, il s'agit du contenu de votre fichier de clé de compte de service. Lorsqu'elle est envoyée via l'API de gestion, il s'agit d'une valeur encodée en base64 générée à partir du fichier de clé du compte de service. | Aucune | Oui. |