<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
<ph type="x-smartling-placeholder">
Version: 1.3.0
Publier des messages dans un sujet du service Google Cloud Pub/Sub
Ce contenu fournit des informations de référence pour configurer et utiliser cette extension.
Prérequis
Avant d'utiliser l'extension à partir d'un proxy d'API à l'aide de la règle ExtensionCall, vous devez:
Créez un sujet Cloud Pub/Sub, comme décrit dans la section Démarrage rapide: utiliser la console.
Une fois que vous disposez du sujet, accordez l'autorisation de 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.Générez une clé pour le compte de service à l'aide de la console GCP.
Utilisez le contenu du fichier JSON de clé obtenu lors de l'ajout et de la configuration de l'extension à l'aide de la documentation 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 faites vos premiers pas avec Cloud Pub/Sub, consultez les guides de démarrage rapide de la documentation Cloud Pub/Sub.
Exemples
Les exemples suivants montrent comment configurer la prise en charge des actions d'extension Cloud Pub/Sub à l'aide de la règle ExtensionCall.
SMS
Dans cet exemple, l'action publish
publie un message sous la forme d'une 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
<ph type="x-smartling-placeholder">
publier
Publie un message sur 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ètre | Description | Type | Par défaut | Obligatoire |
---|---|---|---|---|
message | Message à publier. Vous pouvez utiliser une simple chaîne ou structurer votre message avec le format JSON de votre propre conception. | Chaîne ou JSON | Aucun | Oui |
customAttributes | Attributs personnalisés à ajouter au message dans le formulaire: "customAttributes": {"attr1": "foo", "attr2": "bar"} . |
Tableau JSON | Aucun | Non |
Réponse
JSON contenant l'ID du message publié dans le sujet. Exemple :
{"messageId":"165918654986954"}
Documentation de référence sur la configuration
Procédez comme suit lorsque vous configurez et déployez cette extension afin de l'utiliser dans des proxys d'API.
Propriétés courantes des extensions
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 à partir de la console GCP du service. Par exemple, le nom du sujet peut se présenter sous la forme projects/GCP-PROJECT-ID/topics/TOPIC-NAME . |
Aucun | Oui. |
credentials |
Lorsqu'il est 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. | Aucun | Oui. |