Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Sürüm: 1.5.1
Google Cloud Pub/Sub hizmetinde bir konu için mesaj yayınlayın.
Bu içerik, bu uzantıyı yapılandırmak ve kullanmak için referans sağlar.
Ön koşullar
ExtensionExtension politikasını kullanarak bir API proxy'sinden uzantıyı kullanmadan önce:
Hızlı Başlangıç: Konsolu kullanma bölümünde açıklandığı şekilde bir Cloud Pub/Sub konusu oluşturun.
Konuyu belirledikten sonra, Cloud Pub/Sub konunuza yayın yapmak için izin verin. Örneğin, konulara içerik yayınlamak için
roles/pubsub.publisher
rolünü kullanabilirsiniz. Cloud Pub/Sub rolleri hakkında daha fazla bilgi edinmek için Erişim Denetimi bölümünü inceleyin.GCP Console'u kullanarak hizmet hesabı için bir anahtar oluşturun.
Uzantıyı yapılandırma referansını kullanarak ekleyip yapılandırırken, elde edilen anahtar JSON dosyasının içeriğini kullanın.
Cloud Pub/Sub hakkında
Cloud Pub/Sub gönderenleri ve alıcıları ayıran çoka-çok, eşzamansız mesajlaşma olanağı sunar. Cloud Pub/Sub, geliştiricilerin Google Cloud Platform'da ve harici olarak barındırılan sistemleri hızla entegre etmesine yardımcı olan düşük gecikmeli ve dayanıklı mesajlaşma sunar.
Cloud Pub/Sub'ı kullanmaya yeni başlıyorsanız Cloud Pub/Sub belgelerindeki hızlı başlangıç kılavuzlarına göz atın.
Sana Özel
Aşağıdaki örneklerde, ExtensionCall politikası kullanılarak Cloud Pub/Sub uzantı işlemleri için desteğin nasıl yapılandırılacağı gösterilmektedir.
Kısa mesaj
Bu örnekte publish
işlemi, bir mesajı uzantının yapılandırmasında belirtilen bir konuya basit dize olarak yayınlar. publish
işlemi, yayınlandığı konudaki yayınlanan mesajın kimliğini döndürür ve <Output>
etiketi tarafından belirtilen değişkene yazar:
<?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>
Aşağıdaki Mesaj Ata politikası, yanıt yükünü atamak için uzantının yanıtını depolayan değişkenin değerini kullanır. Mesaj kimliği, çıkış değişkeninin messageId
özelliğinde depolanır:
<?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>
Yanıt verileri JSON olarak döndürülür:
{"messageId":"165918654986954"}
Dolayısıyla, topic.message.messageId
değeri 165918654986954'tür.
JSON mesajı
Bu örnekte publish
işlemi, uzantının yapılandırmasında belirtilen bir konuya JSON olarak mesaj yayınlar. publish
işlemi, yayınlandığı konudaki yayınlanan mesajın kimliğini döndürür ve <Output>
etiketi tarafından belirtilen değişkene yazar:
<?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>
Aşağıdaki Mesaj Ata politikası, yanıt yükünü atamak için uzantının yanıtını depolayan değişkenin değerini kullanır. Mesaj kimliği, çıkış değişkeninin messageId
özelliğinde depolanır:
<?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>
Yanıt verileri JSON olarak döndürülür:
{"messageId":"165918654986954"}
Dolayısıyla, topic.message.messageId
değeri 165918654986954'tür.
İşlemler
publish
Bu uzantının yapılandırmasında belirtilen konuya bir mesaj yayınlar.
Söz dizimi
<Action>publish</Action>
<Input><![CDATA[{
"message" : "message-to-publish" | JSON-structured-data,
"customAttributes": JSON-array
}]]></Input>
Dize Örneği
<Action>publish</Action>
<Input><![CDATA[
{
"message" : "My test message."
}
]]></Input>
JSON Yapılandırılmış Veri Örneği
<Action>publish</Action>
<Input><![CDATA[
{
"message" : { "info" : "My test message" }
}
]]></Input>
Özel Özellikler Örneği
<Action>publish</Action>
<Input><![CDATA[
{
"message" : { "info" : "My test message" },
"customAttributes": {"attr1": "foo", "attr2": "bar"}
}
]]></Input>
İstek parametreleri
Parametre | Açıklama | Tür | Varsayılan | Gerekli |
---|---|---|---|---|
mesaj | Yayınlanacak mesaj. Basit bir dize kullanabilir veya mesajınızı kendi tasarımınıza ait JSON ile yapılandırabilirsiniz. | Dize veya JSON | Yok | Evet |
customAttributes | Formdaki mesaja eklenecek özel özellikler: "customAttributes": {"attr1": "foo", "attr2": "bar"} . |
JSON dizisi | Yok | Hayır |
Yanıt
Konuda yayınlanan iletinin kimliğini içeren JSON dosyası. Örneğin:
{"messageId":"165918654986954"}
Yapılandırma Referansı
Bu uzantıyı API proxy'lerinde kullanmak üzere yapılandırırken ve dağıtırken aşağıdakileri kullanın.
Sık kullanılan uzantı özellikleri
Aşağıdaki özellikler her uzantı için mevcuttur.
Mülk | Açıklama | Varsayılan | Zorunlu |
---|---|---|---|
name |
Uzantının bu yapılandırmasını verdiğiniz ad. | Yok | Evet |
packageName |
Apigee Edge'in sağladığı uzantı paketinin adı. | Yok | Evet |
version |
Uzantıyı yapılandırdığınız uzantı paketinin sürüm numarası. | Yok | Evet |
configuration |
Eklediğiniz uzantıya özgü yapılandırma değeri. Bu uzantı paketinin özellikleri başlıklı makaleyi inceleyin | Yok | Evet |
Bu uzantı paketinin özellikleri
Özellik | Açıklama | Varsayılan | Gerekli |
---|---|---|---|
topic |
Yayınlanacak konu. Bu değeri Pub/Sub hizmetinden (ör. hizmet için GCP Console) alın. Örneğin, konu adı projects/GCP-PROJECT-ID/topics/TOPIC-NAME şeklinde olabilir |
Yok. | Evet. |
credentials |
Apigee Edge konsoluna girildiğinde bu, hizmet hesabı anahtar dosyanızın içeriğidir. Yönetim API'si aracılığıyla gönderildiğinde, hizmet hesabı anahtar dosyasından oluşturulan base64 kodlu bir değerdir. | Yok. | Evet. |