Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Версия: 1.2.0
Публикуйте сообщения в тему в сервисе Google Cloud Pub/Sub.
Данный материал содержит справочную информацию по настройке и использованию этого расширения.
Предварительные требования
Перед использованием этого расширения через API-прокси необходимо:
Создайте тему Cloud Pub/Sub, как описано в разделе «Быстрый старт: Использование консоли» .
После создания темы предоставьте ей разрешение на публикацию в вашу тему Cloud Pub/Sub. Например, вы можете использовать роль
roles/pubsub.publisherдля публикации в темы. Дополнительную информацию о ролях Cloud Pub/Sub см. в разделе «Контроль доступа» .Используйте консоль GCP для генерации ключа для учетной записи службы .
При добавлении и настройке расширения с помощью справочника по конфигурации используйте содержимое полученного JSON-файла с ключами.
О системе Cloud Pub/Sub
Cloud Pub/Sub обеспечивает асинхронный обмен сообщениями по принципу «многие ко многим», разделяя отправителей и получателей. Cloud Pub/Sub гарантирует низкую задержку и надежную передачу сообщений, что помогает разработчикам быстро интегрировать системы, размещенные на платформе Google Cloud Platform и за ее пределами.
Если вы только начинаете работать с Cloud Pub/Sub, ознакомьтесь с краткими руководствами в документации Cloud Pub/Sub .
Образцы
Следующие примеры иллюстрируют, как настроить поддержку действий расширений Cloud Pub/Sub с помощью политики ExtensionCallout .
Опубликовать сообщение
В этом примере действие publish публикует простое сообщение в тему, указанную в конфигурации расширения. Действие publish возвращает идентификатор опубликованного сообщения в теме, в которую оно было опубликовано.
<?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.id</Output>
</ConnectorCallout>
Следующая политика назначения сообщений использует значение переменной, хранящей ответ расширения, для назначения полезной нагрузки ответа.
<?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.id}</Payload>
</Set>
</AssignMessage>
В этом примере данные ответа возвращаются в формате JSON, например, в следующем виде.
{"messageId":"165918654986954"}
Действия
публиковать
Публикует сообщение в тему, указанную в конфигурации этого расширения.
Синтаксис
<Action>publish</Action>
<Input><![CDATA[{
"message" : "message-to-publish"
}]]></Input>
Пример
<Action>publish</Action>
<Input><![CDATA[
{
"message" : "My test message."
}
]]></Input>
Параметры запроса
| Параметр | Описание | Тип | По умолчанию | Необходимый |
|---|---|---|---|---|
| сообщение | Сообщение для публикации. | Нить | Никто. | Да. |
Ответ
JSON-данные, содержащие идентификатор сообщения, опубликованного в теме. Например:
{"messageId":"165918654986954"}
Справочник по конфигурации
При настройке и развертывании этого расширения для использования в API-прокси используйте следующие параметры.
Общие свойства расширения
Следующие свойства присутствуют для каждого расширения.
| Свойство | Описание | По умолчанию | Необходимый |
|---|---|---|---|
name | Имя, которое вы даете этой конфигурации расширения. | Никто | Да |
packageName | Имя пакета расширения, предоставленное Apigee Edge. | Никто | Да |
version | Номер версии пакета расширения, из которого вы настраиваете расширение. | Никто | Да |
configuration | Значение конфигурации, относящееся к добавляемому расширению. См. Свойства этого пакета расширения. | Никто | Да |
Свойства для этого пакета расширений
| Свойство | Описание | По умолчанию | Необходимый |
|---|---|---|---|
topic | Тема, в которую следует публиковать данные. Получите это значение из службы Pub/Sub, например, из консоли GCP для этой службы. Например, имя темы может иметь вид projects/GCP-PROJECT-ID/topics/TOPIC-NAME | Никто. | Да. |
credentials | При вводе в консоль Apigee Edge это содержимое файла ключа вашей учетной записи службы . При отправке через API управления это значение в кодировке base64, сгенерированное из файла ключа учетной записи службы. | Никто. | Да. |