Extensão do Google Cloud Pub/Sub

Você está visualizando a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Versão: 1.2.0

Publicar mensagens em um tópico no serviço do Google Cloud Pub/Sub.

Este conteúdo oferece uma referência para configurar e usar essa extensão.

Pré-requisitos

Antes de usar essa extensão em um proxy de API, você precisa:

  1. Crie um tópico do Cloud Pub/Sub, conforme descrito no Guia de início rápido: como usar o console.

  2. Depois de criar o tópico, conceda permissão para publicar no tópico do Cloud Pub/Sub. Por exemplo, é possível usar o papel roles/pubsub.publisher para publicar em tópicos. Para saber mais sobre os papéis do Cloud Pub/Sub, consulte Controle de acesso.

  3. Use o Console do GCP para gerar uma chave para a conta de serviço.

  4. Use o conteúdo do arquivo JSON de chave resultante ao adicionar e configurar a extensão usando a referência de configuração.

Sobre o Cloud Pub/Sub

O Cloud Pub/Sub fornece mensagens assíncronas de muitos para muitos que dissociam remetentes e destinatários. O Cloud Pub/Sub entrega mensagens duráveis de baixa latência que ajudam os desenvolvedores a integrar rapidamente os sistemas hospedados no Google Cloud Platform e externamente.

Se você está começando a usar o Cloud Pub/Sub, consulte os guias de início rápido na documentação do Cloud Pub/Sub.

Amostras

Os exemplos a seguir ilustram como configurar o suporte a ações de extensão do Cloud Pub/Sub usando a política ExtensionCallout.

Publicar uma mensagem

Neste exemplo, a ação publish publica uma mensagem simples em um tópico especificado na configuração da extensão. A ação publish retorna o ID da mensagem publicada no tópico em que ela foi publicada.

<?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>

A política Atribuir mensagem a seguir usa o valor da variável que armazena a resposta da extensão para atribuir o payload de resposta.

<?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>

Neste exemplo, os dados de resposta são retornados como JSON, como este.

{"messageId":"165918654986954"}

Ações

publicar

Publica uma mensagem no tópico especificado na configuração da extensão.

Sintaxe

<Action>publish</Action>
<Input><![CDATA[{
  "message" : "message-to-publish"
}]]></Input>

Exemplo

<Action>publish</Action>
<Input><![CDATA[
  {
      "message" : "My test message."
  }
]]></Input>

Parâmetros de solicitação

Parâmetro Descrição Tipo Padrão Obrigatório
mensagem A mensagem a ser publicada. String Nenhum. Sim.

Resposta

JSON contendo o ID da mensagem publicada no tópico. Exemplo:

{"messageId":"165918654986954"}

Referência de configuração

Use as informações a seguir ao configurar e implantar essa extensão para uso em proxies de API.

Propriedades de extensão comuns

As propriedades a seguir estão presentes para cada extensão.

Propriedade Descrição Padrão Obrigatório
name Nome que será dado a esta configuração da extensão. Nenhum Sim
packageName Nome do pacote de extensão fornecido pelo Apigee Edge. Nenhum Sim
version Número da versão do pacote de extensão a partir do qual você está configurando uma extensão. Nenhum Sim
configuration Valor de configuração específico da extensão que você está adicionando. Consulte Propriedades para este pacote de extensão. Nenhum Sim

Propriedades deste pacote de extensão

Propriedade Descrição Padrão Obrigatório
topic O tópico a ser publicado. Receba esse valor do serviço do Pub/Sub, como no console do GCP para o serviço. Por exemplo, o nome do tópico pode ter o formato projects/GCP-PROJECT-ID/topics/TOPIC-NAME Nenhum. Sim.
credentials Quando inserido no console da Apigee Edge, esse é o conteúdo do arquivo de chave da conta de serviço. Quando enviado pela API de gerenciamento, é um valor codificado em base64 gerado a partir do arquivo de chave da conta de serviço. Nenhum. Sim.