Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X. info
Versione: 2.0.0
Pubblica messaggi in un argomento del servizio Google Cloud Pub/Sub.
Questi contenuti forniscono un riferimento per la configurazione e l'utilizzo di questa estensione.
Prerequisiti
Prima di utilizzare l'estensione da un proxy API utilizzando il criterio ExtensionCallout, devi:
Crea un argomento Cloud Pub/Sub, come descritto nella guida rapida all'utilizzo della console.
Una volta ottenuto l'argomento, concedi l'autorizzazione per pubblicare nell'argomento Cloud Pub/Sub. Ad esempio, puoi utilizzare il ruolo
roles/pubsub.publisher
per pubblicare negli argomenti. Per saperne di più sui ruoli di Cloud Pub/Sub, consulta Controllo dell'accesso.Utilizza la console Google Cloud per generare una chiave per l'account di servizio.
Utilizza i contenuti del file JSON della chiave risultante quando aggiungi e configuri l'estensione utilizzando il riferimento alla configurazione.
Informazioni su Cloud Pub/Sub
Cloud Pub/Sub fornisce messaggistica asincrona many-to-many che disaccoppia mittenti e destinatari. Cloud Pub/Sub offre una messaggistica duratura a bassa latenza che aiuta gli sviluppatori a integrare rapidamente i sistemi ospitati sulla piattaforma Google Cloud ed esterni.
Se hai appena iniziato a utilizzare Cloud Pub/Sub, consulta le iniziative rapide nella documentazione di Cloud Pub/Sub.
Esempi
Gli esempi riportati di seguito illustrano come configurare il supporto per le azioni di estensione Cloud Pub/Sub utilizzando il criterio ExtensionCallout.
Messaggio
In questo esempio, l'azione publish
pubblica un messaggio come una semplice stringa in un argomento specificato nella configurazione dell'estensione. L'azione publish
restituisce l'ID del messaggio pubblicato nell'argomento in cui è stato pubblicato e lo scrive nella variabile specificata dal tag <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>
Il seguente criterio Assegna messaggio utilizza il valore della variabile che memorizza la risposta dell'estensione per assegnare il payload della risposta. L'ID messaggio viene memorizzato nella proprietà messageId
della variabile di output:
<?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>
I dati della risposta vengono restituiti come JSON:
{"messageId":"165918654986954"}
Pertanto, il valore di topic.message.messageId
è 165918654986954.
Messaggio JSON
In questo esempio, l'azione publish
pubblica un messaggio in formato JSON in un argomento specificato nella configurazione dell'estensione. L'azione publish
restituisce l'ID del messaggio pubblicato nell'argomento in cui è stato pubblicato e lo scrive nella variabile specificata dal tag <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>
Il seguente criterio Assegna messaggio utilizza il valore della variabile che memorizza la risposta dell'estensione per assegnare il payload della risposta. L'ID messaggio viene memorizzato nella proprietà messageId
della variabile di output:
<?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>
I dati della risposta vengono restituiti come JSON:
{"messageId":"165918654986954"}
Pertanto, il valore di topic.message.messageId
è 165918654986954.
Azioni
pubblica
Pubblica un messaggio nell'argomento specificato nella configurazione di questa estensione.
Sintassi
<Action>publish</Action>
<Input><![CDATA[{
"message" : "message-to-publish" | JSON-structured-data,
"customAttributes": JSON-array
}]]></Input>
Esempio di stringa
<Action>publish</Action>
<Input><![CDATA[
{
"message" : "My test message."
}
]]></Input>
Esempio di dati strutturati JSON
<Action>publish</Action>
<Input><![CDATA[
{
"message" : { "info" : "My test message" }
}
]]></Input>
Esempio di attributi personalizzati
<Action>publish</Action>
<Input><![CDATA[
{
"message" : { "info" : "My test message" },
"customAttributes": {"attr1": "foo", "attr2": "bar"}
}
]]></Input>
Parametri di richiesta
Parametro | Descrizione | Tipo | Predefinito | Obbligatorio |
---|---|---|---|---|
messaggio | Il messaggio da pubblicare. Puoi utilizzare una stringa semplice o strutturare il messaggio con JSON di tua creazione. | Stringa o JSON | Nessuno | Sì |
customAttributes | Attributi personalizzati da aggiungere al messaggio nel modulo: "customAttributes": {"attr1": "foo", "attr2": "bar"} . |
Array JSON | Nessuno | No |
Risposta
JSON contenente l'ID del messaggio pubblicato nell'argomento. Ad esempio:
{"messageId":"165918654986954"}
Riferimento alla configurazione
Utilizza quanto segue quando configuri ed esegui il deployment di questa estensione per utilizzarla nei proxy API.
Proprietà comuni delle estensioni
Per ogni estensione sono presenti le seguenti proprietà.
Proprietà | Descrizione | Predefinito | Obbligatorio |
---|---|---|---|
name |
Il nome che assegni a questa configurazione dell'estensione. | Nessuno | Sì |
packageName |
Nome del pacchetto dell'estensione fornito da Apigee Edge. | Nessuno | Sì |
version |
Numero di versione del pacchetto dell'estensione da cui stai configurando un'estensione. | Nessuno | Sì |
configuration |
Valore di configurazione specifico per l'estensione che stai aggiungendo. Vedi Proprietà per questo pacchetto di estensioni | Nessuno | Sì |
Proprietà per questo pacchetto di estensioni
Proprietà | Descrizione | Predefinito | Obbligatorio |
---|---|---|---|
topic |
L'argomento in cui pubblicare. Ottieni questo valore dal servizio Pub/Sub, ad esempio dalla console Google Cloud per il servizio. Ad esempio, il nome dell'argomento potrebbe avere il seguente formato: projects/GCP-PROJECT-ID/topics/TOPIC-NAME |
Nessuno. | Sì. |
credentials |
Se inserito nella console Apigee Edge, si tratta dei contenuti del file della chiave dell'account di servizio. Se inviato tramite l'API di gestione, è un valore codificato in base64 generato dal file della chiave dell'account di servizio. | Nessuno. | Sì. |