Расширение Google Cloud Pub/Sub

Вы просматриваете документацию по Apigee Edge.
См. документацию по Apigee X.

Версия: 1.2.0

Публикуйте сообщения в теме в сервисе Google Cloud Pub/Sub.

В этом содержимом содержится справочная информация по настройке и использованию этого расширения.

Предпосылки

Прежде чем использовать это расширение с API-прокси, вы должны:

  1. Создайте тему Cloud Pub/Sub, как описано в разделе Краткое руководство: использование консоли .

  2. Получив тему, дайте разрешение на публикацию в теме Cloud Pub/Sub. Например, вы можете использовать роль roles/pubsub.publisher для публикации в темах. Дополнительные сведения о ролях Cloud Pub/Sub см. в разделе Управление доступом .

  3. Используйте консоль GCP для создания ключа для сервисного аккаунта .

  4. Используйте содержимое полученного ключевого 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>

Следующая политика Assign Message использует значение переменной, в которой хранится ответ расширения, для назначения полезной нагрузки ответа.

<?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 создается из файла ключа учетной записи службы. Никто. Да.