Rabbit MQ

O conetor do Rabbit MQ oferece conetividade ao Rabbit MQ.

Antes de começar

Antes de usar o conetor do RabbitMQ, faça as seguintes tarefas:

  • No seu projeto do Google Cloud:
    • Certifique-se de que a conetividade de rede está configurada. Para obter informações sobre padrões de rede, consulte o artigo Conetividade de rede.
    • Conceda a função IAM roles/connectors.admin ao utilizador que está a configurar o conetor.
    • Conceda as seguintes funções de IAM à conta de serviço que quer usar para o conector:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      Uma conta de serviço é um tipo especial de Conta Google destinada a representar um utilizador não humano que precisa de autenticação e autorização para aceder a dados nas APIs Google. Se não tiver uma conta de serviço, tem de criar uma. O conector e a conta de serviço têm de pertencer ao mesmo projeto. Para mais informações, consulte Criar uma conta de serviço.

    • Ative os seguintes serviços:
      • secretmanager.googleapis.com (Secret Manager API)
      • connectors.googleapis.com (API Connectors)

      Para saber como ativar serviços, consulte o artigo Ativar serviços.

    Se estes serviços ou autorizações não tiverem sido ativados anteriormente para o seu projeto, é-lhe pedido que os ative quando configurar o conector.

Configure o conetor

Uma associação é específica de uma origem de dados. Isto significa que, se tiver muitas origens de dados, tem de criar uma associação separada para cada origem de dados. Para criar uma associação, faça o seguinte:

  1. Na Cloud Console, aceda à página Integration Connectors > Ligações e, de seguida, selecione ou crie um projeto do Google Cloud.

    Aceda à página Ligações

  2. Clique em + CRIAR NOVO para abrir a página Criar associação.
  3. Na secção Localização, escolha a localização para a ligação.
    1. Região: selecione uma localização na lista pendente.

      Para ver a lista de todas as regiões suportadas, consulte o artigo Localizações.

    2. Clicar em Seguinte.
  4. Na secção Detalhes da associação, conclua o seguinte:
    1. Conetor: selecione RabbitMQ na lista pendente de conetores disponíveis.
    2. Versão do conetor: selecione a versão do conetor na lista pendente de versões disponíveis.
    3. No campo Nome da ligação, introduza um nome para a instância de ligação.

      Os nomes das associações têm de cumprir os seguintes critérios:

      • Os nomes das associações podem usar letras, números ou hífenes.
      • As letras têm de ser minúsculas.
      • Os nomes das associações têm de começar com uma letra e terminar com uma letra ou um número.
      • Os nomes das associações não podem exceder 49 carateres.
      • Para os conetores que suportam a subscrição de eventos, os nomes das associações não podem começar com o prefixo "goog".
    4. Opcionalmente, introduza uma Descrição para a instância de associação.
    5. Conta de serviço: selecione uma conta de serviço que tenha as funções necessárias.
    6. Para usar a associação para subscrições de eventos, selecione Ativar subscrição de eventos. Se selecionar esta opção, ativa a subscrição de eventos com ações.
    7. Opcionalmente, configure as definições do nó de associação:

      • Número mínimo de nós: introduza o número mínimo de nós de ligação.
      • Número máximo de nós: introduza o número máximo de nós de ligação.

      Um nó é uma unidade (ou uma réplica) de uma ligação que processa transações. São necessários mais nós para processar mais transações para uma ligação e, inversamente, são necessários menos nós para processar menos transações. Para compreender como os nós afetam os preços dos conectores, consulte o artigo Preços dos nós de ligação. Se não introduzir valores, por predefinição, os nós mínimos são definidos como 2 (para uma melhor disponibilidade) e os nós máximos são definidos como 50.

    8. Nome da fila predefinida: o nome da fila predefinida pode ser substituído quando a ação é executada.
    9. Anfitrião virtual: o anfitrião virtual do RabbitMQ.
    10. Opcionalmente, clique em + Adicionar etiqueta para adicionar uma etiqueta à associação sob a forma de um par chave/valor.
    11. Opcionalmente, se quiser usar SSL, selecione Ativar SSL. São apresentados os detalhes da configuração SSL.
      1. Selecione um tipo de loja fidedigna. Pode ser Público, Privado ou Ligação não segura.
      2. Selecione os certificados conforme apresentado com base na sua seleção da loja de confiança.
      3. Se estiver a usar o mTLS, selecione os certificados do armazenamento de chaves na secção Armazenamento de chaves.
      4. Opcionalmente, selecione a versão do TLS.
      5. Introduza o conjunto de cifras suportado. Introduza várias suites de cifragem como valores separados por vírgulas. Para mais informações, consulte o artigo Conjuntos de cifras suportados.
    12. Clicar em Seguinte.
  5. Na secção Destinos, introduza os detalhes do anfitrião remoto (sistema de back-end) ao qual quer estabelecer ligação.
    1. Tipo de destino: selecione um Tipo de destino.
      • Para especificar o nome de anfitrião ou o endereço IP de destino, selecione Endereço do anfitrião e introduza o endereço no campo Anfitrião 1.
      • Para estabelecer uma ligação privada, selecione Anexo do ponto final e escolha o anexo necessário na lista Anexo do ponto final.

      Se quiser estabelecer uma ligação pública aos seus sistemas de back-end com segurança adicional, pode considerar configurar endereços IP estáticos de saída para as suas ligações e, em seguida, configurar as regras da firewall para permitir apenas os endereços IP estáticos específicos.

    2. Clicar em Seguinte.
  6. Na secção Autenticação, introduza os detalhes de autenticação.
    1. Selecione um Tipo de autenticação e introduza os detalhes relevantes.

      Os seguintes tipos de autenticação são suportados pela ligação RabbitMQ:

      • Anónimo
      • Nome de utilizador e palavra-passe
    2. Para saber como configurar estes tipos de autenticação, consulte o artigo Configurar autenticação.

    3. Clicar em Seguinte.
  7. Na secção Detalhes da subscrição de eventos, configure os detalhes relacionados com o evento.
    • Introduza a configuração de mensagens não entregues. Se configurar a fila de mensagens rejeitadas, a ligação escreve os eventos não processados no tópico Pub/Sub especificado. Introduza os seguintes detalhes:
      1. ID do projeto de mensagens não entregues: o ID do projeto do Google Cloud onde configurou o tópico Pub/Sub de mensagens não entregues.
      2. Tópico de mensagens não entregues: o tópico do Pub/Sub onde quer escrever os detalhes do evento não processado.
  8. Rever: reveja os detalhes da ligação e da autenticação.
  9. Clique em Criar.

Configure a autenticação

Introduza os detalhes com base na autenticação que quer usar.

  • Anónimo

    Se quiser usar o início de sessão anónimo, selecione Não disponível.

  • Nome de utilizador e palavra-passe
    • Nome de utilizador: o nome de utilizador do RabbitMQ a usar para a ligação.
    • Palavra-passe: Secret do Secret Manager que contém a palavra-passe associada ao nome de utilizador do RabbitMQ.

Entidades, operações e ações

Todos os conetores de integração oferecem uma camada de abstração para os objetos da aplicação ligada. Só pode aceder aos objetos de uma aplicação através desta abstração. A abstração é exposta como entidades, operações e ações.

  • Entidade: pode considerar uma entidade como um objeto ou uma coleção de propriedades na aplicação ou no serviço associado. A definição de uma entidade difere de um conetor para um conetor. Por exemplo, num conetor de base de dados, as tabelas são as entidades. Num conetor de servidor de ficheiros, as pastas são as entidades. Num conetor de sistema de mensagens, as filas são as entidades.

    No entanto, é possível que um conector não suporte ou não tenha entidades, caso em que a lista Entities estará vazia.

  • Operação: uma operação é a atividade que pode realizar numa entidade. Pode realizar qualquer uma das seguintes operações numa entidade:

    Selecionar uma entidade na lista disponível gera uma lista de operações disponíveis para a entidade. Para uma descrição detalhada das operações, consulte as operações de entidades da tarefa de conectores. No entanto, se um conector não suportar nenhuma das operações de entidades, essas operações não suportadas não são apresentadas na lista Operations.

  • Ação: uma ação é uma função de primeira classe que é disponibilizada à integração através da interface do conetor. Uma ação permite-lhe fazer alterações a uma ou mais entidades e varia de conetor para conetor. Normalmente, uma ação tem alguns parâmetros de entrada e um parâmetro de saída. No entanto, é possível que um conector não suporte nenhuma ação, caso em que a lista Actions está vazia.

Limitações do sistema

O conector do Rabbit MQ pode processar o seguinte número de transações por segundo, por , e limita as transações que excedam este limite:

  • Máximo de 9 transações, se usar predominantemente a ação sendMessage.
  • 1 transação, se usar predominantemente a ação requestReply.

Por predefinição, os Integration Connectors atribuem 2 nós (para uma melhor disponibilidade) a uma ligação.

Para informações sobre os limites aplicáveis aos Integration Connectors, consulte Limites.

Ações

A ligação do Rabbit MQ suporta as seguintes ações:

  • sendMessage: envia uma mensagem para uma fila.
  • requestReply: envia uma mensagem para uma fila e também especifica a fila de respostas onde o respondente deve escrever a resposta.

Ação sendMessage

As tabelas seguintes descrevem os parâmetros de entrada e saída da ação sendMessage.

Parâmetros de entrada da ação sendMessage

Nome do parâmetro Obrigatória Tipo de dados Descrição
mensagem Sim String Mensagem a ser enviada para a fila do Rabbit MQ. Atualmente, o tamanho máximo de mensagem suportado é de 10 MB.
queueName Não String Nome da fila do RabbitMQ. Se não especificar um nome da fila, é usado o nome da fila predefinido especificado durante a criação da associação.
messageContentType Sim String Tipo de conteúdo da mensagem que pode especificar como Text ou Bytes. Tem de definir o tipo como Bytes se estiver a enviar dados binários.

Para enviar uma mensagem num formato binário, tem de realizar as seguintes tarefas:

  • Codifique a mensagem binária como uma string Base64 e, de seguida, defina o parâmetro message com o valor codificado.
  • Defina o valor do parâmetro messageContentType como Bytes.
messageType Sim String Tipo de mensagem que pode especificar como Datagram ou Reply.
topicName Não String Nome do tópico do Rabbit MQ. Se não especificar um nome do tópico, é usado o nome da fila predefinido especificado durante a criação da ligação.

Parâmetros de saída da ação sendMessage

Nome do parâmetro Tipo de dados Descrição
messageId String ID da mensagem enviada.

ação requestReply

As tabelas seguintes descrevem os parâmetros de entrada e saída da ação requestReply.

Introduza os parâmetros da ação requestReply

Nome do parâmetro Obrigatória Tipo de dados Descrição
mensagem Sim String Mensagem a ser enviada para a fila do Rabbit MQ. O tamanho máximo da mensagem suportado é de 10 MB.
queueName Não String Nome da fila do RabbitMQ. Se não especificar um nome da fila, é usado o nome da fila predefinido especificado durante a criação da associação.
messageContentType Sim String Tipo de conteúdo da mensagem que pode especificar como Text ou Bytes. Tem de definir o tipo como Bytes se estiver a enviar dados binários.

Para enviar uma mensagem num formato binário, tem de realizar as seguintes tarefas:

  • Codifique a mensagem binária como uma string Base64 e, de seguida, defina o parâmetro message com o valor codificado.
  • Defina o valor do parâmetro messageContentType como Bytes.
replyToQueue Sim String Fila na qual o autor da resposta deve escrever a resposta.
replyTimeout Sim String Tempo (em milissegundos) até ao qual o conector aguarda a resposta na fila de respostas. O valor máximo suportado é de 180 000 milissegundos (3 minutos).

Se a fila de respostas receber uma mensagem após o período de limite de tempo, essa mensagem não é processada pelo conector. No entanto, pode ver os detalhes da mensagem de tempo limite nos registos de execução da sua integração.

Parâmetros de saída da ação requestReply

Nome do parâmetro Tipo de dados Descrição
replyMessage String Mensagem de resposta do autor da resposta.

Crie ligações com o Terraform

Pode usar o recurso do Terraform para criar uma nova associação.

Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.

Para ver um modelo do Terraform de exemplo para a criação de ligações, consulte o modelo de exemplo.

Quando criar esta associação através do Terraform, tem de definir as seguintes variáveis no ficheiro de configuração do Terraform:

Nome do parâmetro Tipo de dados Obrigatória Descrição
default_queue_name STRING Falso O nome da fila predefinida pode ser substituído quando a ação é executada.
default_topic_name STRING Falso O nome do tópico predefinido pode ser substituído quando a ação é executada.
virtual_host STRING True O anfitrião virtual para o RabbitMQ.

Use a ligação do Rabbit MQ numa integração

Depois de criar a ligação, esta fica disponível no Apigee Integration e no Application Integration. Pode usar a ligação numa integração através da tarefa Conectores.

  • Para compreender como criar e usar a tarefa Connectors no Apigee Integration, consulte o artigo Tarefa Connectors.
  • Para compreender como criar e usar a tarefa Connectors na integração de aplicações, consulte o artigo Tarefa Connectors.