Criar um barramento para rotear mensagens

Um barramento do Eventarc Advanced permite centralizar, monitorar e rastrear o fluxo de mensagens no sistema e atua como um roteador. Ele recebe eventos de uma origem de mensagem ou publicados por um provedor e os avalia de acordo com uma inscrição. Um registro identifica uma assinatura de um barramento específico e define os critérios de correspondência para as mensagens, fazendo com que elas sejam roteadas adequadamente. Para mais informações, consulte Criar uma inscrição para receber eventos.

Um barramento pode ser usado por provedores de eventos e destinos no seu projeto ou em outros projetos. Para mais informações, consulte Layouts de projetos.

Funções exigidas

Uma função de gerenciamento de identidade e acesso (IAM) contém um conjunto de permissões que permite realizar ações específicas nos recursos Google Cloud . Os seguintes papéis e permissões são necessários ao criar um barramento para encaminhar mensagens:

  • Para receber a permissão necessária para criar um bus, peça ao administrador para conceder a você o papel do IAM de Administrador do Eventarc (roles/eventarc.admin) ou o de Administrador do Eventarc Message Bus (roles/eventarc.messageBusAdmin) no projeto do bus. Esses papéis predefinidos contêm a permissão eventarc.messageBuses.create, que é necessária para criar um barramento.
  • Para receber a permissão necessária para usar um bus, peça ao administrador para conceder a você o papel do IAM de Usuário da bus de mensagens do Eventarc (roles/eventarc.messageBusUser) no projeto da bus. Esse papel predefinido contém a permissão eventarc.buses.use, que é necessária para usar um barramento.
  • Para criar um pipeline e um registro, são necessárias outras permissões. Para mais informações, consulte os papéis necessários para criar uma inscrição.

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso. Também é possível conseguir essas permissões com papéis personalizados ou outros papéis predefinidos.

Criar barramento

É possível criar um barramento das seguintes maneiras:

  • No console do Google Cloud
  • Usando a CLI do Google Cloud no terminal ou no Cloud Shell
  • Enviando uma solicitação para a API Eventarc

Console

  1. No console do Google Cloud, acesse a página Eventarc > Bus.

    Acessar "Bus"

  2. Clique em Criar barramento.

  3. Na página Criar um barramento, faça o seguinte:

    1. Digite um Nome do barramento. Esse é o ID do seu ônibus.
    2. Opcional: insira um Nome de exibição do barramento que será mostrado na página Detalhes do barramento.
    3. Na lista Região, selecione uma região com suporte para implantar o bus.
    4. Na lista Gravidade do registro, selecione a gravidade mínima para os eventos descritos nas entradas de registro. O padrão é Nenhum. Para mais informações, consulte LogSeverity.
    5. Em Criptografia, aceite o padrão Google-managed encryption key ou selecione Chave do Cloud KMS. Para mais informações, consulte Usar chaves de criptografia gerenciadas pelo cliente (CMEK).
    6. Se você selecionar Chave do Cloud KMS, faça o seguinte:

      1. Na lista Tipo de chave, selecione um método para gerenciar as chaves.

        Você pode gerenciar as chaves manualmente ou usar a chave automática, que permite gerar chaves e chaveiros sob demanda. Se a opção Cloud KMS com Autokey estiver desativada, ela ainda não estará integrada ao tipo de recurso atual.

      2. Em Selecionar uma chave do Cloud KMS, selecione uma chave.

        É necessário selecionar uma região para visualizar as chaves gerenciadas pelo cliente.

      3. Opcional: para inserir manualmente o nome do recurso da chave, na lista Selecionar uma chave gerenciada pelo cliente, clique em Inserir chave manualmente e insira o nome da chave no formato especificado.

      4. Se solicitado, conceda o papel cloudkms.cryptoKeyEncrypterDecrypter ao Agente de serviço do Eventarc.

    7. Opcional: para adicionar uma origem de mensagens, clique em Adicionar origem.

      1. No painel Adicionar origem de mensagem, para o provedor de mensagens da API do Google, aceite o padrão google-api-source ou insira um nome de origem diferente.
      2. Clique em Criar.

        Isso permite a coleta automática de eventos provenientes diretamente de fontes do Google.

        Somente os eventos de recursos no mesmo projeto Google Cloud do barramento são publicados. Para mais informações, consulte Publicar eventos de origens do Google.

    8. Opcional: para adicionar rótulos, clique em Adicionar rótulo. Os rótulos são pares de chave-valor que ajudam a organizar seus recursosGoogle Cloud . Para mais informações, consulte O que são rótulos?

  4. Clique em Criar.

gcloud

  1. Abra um terminal.

  2. Crie um barramento usando o comando gcloud beta eventarc message-buses create.

    gcloud beta eventarc message-buses create BUS_NAME \
        --location=REGION
    

    Substitua:

    • BUS_NAME: o ID ou identificador totalmente qualificado do barramento
    • REGION: um local compatível para o bus

      Também é possível definir a propriedade de local da Google Cloud CLI:

      gcloud config set eventarc/location REGION
      

    Opcional: também é possível usar as seguintes flags:

    • --async para retornar do comando imediatamente, sem aguardar a conclusão da operação em andamento.
    • --crypto-key para especificar o nome totalmente qualificado de uma chave de criptografia gerenciada pelo cliente. Se não especificado, Google-owned and managed keys será usado.
    • --logging-config para configurar a gravidade mínima para eventos descritos nas entradas de registro. Precisa ser um dos seguintes formatos: NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY. O padrão é NONE. Para mais informações, consulte LogSeverity.

API REST

Para criar um bus, use o método projects.locations.messageBuses.create.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • BUS_NAME: o nome de exibição do barramento, por exemplo, my_bus.
  • LABEL_KEY e LABEL_VALUE: opcional. Um mapa de pares de chave e valor de rótulos que ajudam a organizar os recursos. Google Cloud Para mais informações, consulte O que são rótulos?
  • ANNOTATION_KEY e ANNOTATION_VALUE: opcional. Um mapa de pares de chave e valor de anotação de texto em formato livre. É possível usá-las para anexar informações arbitrárias associadas ao recurso. Para mais informações, consulte Anotações.
  • ENCRYPT_KEY: opcional. Uma chave do Cloud KMS que o barramento precisa usar para criptografia de dados no formato projects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Para mais informações, consulte Usar chaves de criptografia gerenciadas pelo cliente.
  • PROJECT_ID: o ID do projeto Google Cloud.
  • LOCATION: a região em que o barramento será criado, por exemplo, us-central1.
  • LOG_SEVERITY: opcional. A gravidade mínima do evento descrito em uma entrada de registro. Uma destas opções: NONE, DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL, ALERT, EMERGENCY. O padrão é NONE. Para mais informações, consulte LogSeverity.

Corpo JSON da solicitação:

{
  "display_name": "BUS_NAME",
  "labels": {"LABEL_KEY":"LABEL_VALUE"},
  "annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"},
  "cryptoKeyName": "ENCRYPT_KEY",
  "loggingConfig": {"logSeverity":"LOG_SEVERITY"}
}

Para enviar a solicitação, expanda uma destas opções:

Se houver êxito, o corpo da resposta conterá uma instância de Operation:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/messageBuses/BUS_NAME",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Excluir um barramento

É possível excluir um ônibus das seguintes maneiras:

  • No console do Google Cloud
  • Usando a CLI gcloud no terminal ou no Cloud Shell
  • Enviando uma solicitação para a API Eventarc

Console

  1. No console do Google Cloud, acesse a página Eventarc > Bus.

    Acessar "Bus"

  2. Clique no nome do ônibus que você quer excluir.

    A página Detalhes do ônibus é aberta.

  3. Clique em Excluir.

  4. Quando você for solicitado a excluir o barramento, para confirmar que as origens de mensagem configuradas para usar o barramento não poderão mais fazer isso, selecione a caixa de seleção Você quer continuar?.

  5. Para confirmar a exclusão, digite Delete.

  6. Clique em Excluir.

gcloud

  1. Abra um terminal.

  2. Exclua um barramento usando o comando gcloud beta eventarc message-buses delete.

    gcloud beta eventarc message-buses delete BUS_NAME \
        --location=REGION
    

    Substitua:

    • BUS_NAME: o ID ou identificador totalmente qualificado do barramento
    • REGION: o local compatível do ônibus

API REST

Para excluir um bus, use o método projects.locations.messageBuses.delete.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o ID do projeto Google Cloud.
  • LOCATION: a região em que o barramento é criado, por exemplo, us-central1.
  • BUS_NAME: o nome do bus que você quer excluir.

Para enviar a solicitação, expanda uma destas opções:

Se houver êxito, o corpo da resposta conterá uma instância de Operation:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/messageBuses/BUS_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

A seguir