Configure clusters para receber notificações por email

Este tutorial mostra como configurar a integração de aplicações para receber notificações de clusters do Google Kubernetes Engine (GKE) por email.

Cria uma integração com um acionador do Pub/Sub para ouvir um tópico existente que recebe notificações de um cluster do GKE. Em seguida, pode usar as tarefas de mapeamento de dados e transformador de dados para transformar a mensagem do Pub/Sub e criar um corpo de email de texto simples.

Configure notificações de cluster para o seu cluster do GKE

Para usar o Pub/Sub para receber notificações sobre o seu cluster do GKE, siga as instruções em Receba notificações de clusters através do Pub/Sub.

Crie uma nova integração

Para criar uma nova integração, siga estes passos:

  1. Aceda à página Integração de aplicações na Google Cloud consola.

    Aceda à solução Application Integration

  2. No menu de navegação, clique em Integrações. É apresentada a página Integrações.

  3. Clique em Criar integração.

  4. Em Nome da integração, introduza um nome para a integração que está a criar.

  5. Se tiver várias regiões ativadas, é apresentada uma opção de menu pendente para selecionar uma região para a integração. Quando apenas uma região está ativada, esta é a região predefinida e o menu pendente não é apresentado.

    Nota: o menu pendente Regiões apenas apresenta as regiões aprovisionadas no seu Google Cloud projeto. Para aprovisionar uma nova região, clique em Ativar região, que é apresentado na parte inferior da caixa.

  6. Clique em Criar para abrir o editor de integração.

Adicione e configure o acionador do Pub/Sub

Para adicionar um acionador do Pub/Sub à integração, siga estes passos:

  1. No editor de integração, selecione Acionadores para apresentar uma lista de acionadores disponíveis.

  2. Clique e coloque o elemento acionador Pub/Sub no criador.

  3. Clique no elemento Acionador do Pub/Sub no editor de integração para ver o painel de configuração do acionador.

  4. Especifique o tópico que o acionador deve ouvir no campo Tópico do Pub/Sub no seguinte formato:

    projects/PROJECT_ID/topics/TOPIC_ID
    

    Substitua o seguinte:

  • PROJECT_ID: o Google Cloud projeto onde o seu tópico foi criado.

  • TOPIC_ID: o ID do tópico do Pub/Sub que criou em Configure o seu ambiente.

    Por exemplo, se o seu projeto se chamar my-project e tiver dado o nome gke-notifications ao tópico, introduza:

    projects/my-project/topics/gke-notifications
    

    Para ver todos os tópicos disponíveis no seu Google Cloud projeto, consulte a coluna Nome do tópico em Tópicos. O painel de configuração do acionador Pub/Sub preenche automaticamente o campo Saída do acionador com uma variável para conter a mensagem do Pub/Sub.

Adicione e configure a tarefa de mapeamento de dados

A tarefa de mapeamento de dados ajuda a extrair variáveis relevantes da notificação do Pub/Sub. Aceita o ficheiro JSON da mensagem do Pub/Sub como entrada e extrai variáveis como saída.

Para configurar a tarefa de mapeamento de dados:

  1. Selecione Tarefas para apresentar uma lista de tarefas disponíveis.

  2. Clique e coloque o elemento Mapeamento de dados no editor de integração.

  3. Clique na tarefa Mapeamento de dados no criador para abrir o painel de configuração da tarefa.

  4. Para adicionar uma associação de limite do acionador do Pub/Sub ao mapeamento de dados, mantenha o ponteiro sobre um ponto de controlo no acionador do Pub/Sub e, em seguida, arraste uma linha para um ponto de controlo na tarefa de mapeamento de dados. A aresta indica o fluxo de controlo do acionador do Pub/Sub para a tarefa de mapeamento de dados.

  5. Clique em Abrir editor de mapeamento de dados. O editor de mapeamento de dados permite-lhe mapear variáveis de entrada para as variáveis de saída selecionadas, usando as funções de transformação disponíveis. A saída fica então disponível como uma variável para qualquer outra tarefa de integração ou acionador. Para mais informações sobre as variáveis na integração de aplicações, consulte o artigo Variáveis.

    Para este tutorial, siga estes passos para criar um mapeamento com o CloudPubSubMessage como entrada:

    1. Expanda a variável CloudPubSubMessage JSON na lista Variáveis e arraste a variável CloudPubSubMessage.data para a primeira linha Entrada.
    2. Para criar uma nova variável de saída para conter o valor dos dados transformados, clique na primeira linha da coluna Saída. Em seguida, faça o seguinte:
      1. No campo Nome, introduza message_data.
      2. Na lista Tipo de variável, selecione Resultado da integração.
      3. Na lista Tipo de dados, selecione String.
      4. Clique em Criar. A variável message_data é apresentada em Resultado.
    3. Arraste a variável CloudPubSubMessage.attributes da lista Variáveis para a segunda linha na coluna Entrada.
    4. Clique na segunda linha da coluna Saída para criar uma nova variável de saída para guardar o valor da carga útil JSON com os atributos do cluster. Preencha os seguintes campos:

      1. No campo Nome, introduza attributes.
      2. Na lista Tipo de variável, selecione Nenhum.
      3. Na lista Tipo de dados, selecione JSON.
      4. Selecione Introduzir um esquema JSON nas Opções do esquema JSON e cole o seguinte payload:

        {
          "$schema": "http://json-schema.org/draft-07/schema#",
          "type": "object",
          "properties": {
            "cluster_name": {
              "type": "string"
            },
            "payload": {
              "type": "string"
            },
            "project_id": {
              "type": "string"
            },
            "cluster_location": {
              "type": "string"
            },
            "type_url": {
              "type": "string"
            }
          }
        }
        
      5. Clique em Criar. A variável attributes é apresentada em Resultado. Certifique-se de que a variável de atributos tem um aspeto semelhante ao seguinte:

        Variáveis locais da Application Integration

    5. Clique na terceira linha da coluna Entrada e selecione attributes.cluster_name no painel Variáveis. Pode ter de começar a escrever atributos para ver todos os 5 atributos definidos a partir do esquema introduzido no passo anterior.

    6. Clique na linha correspondente da coluna Resultado para criar uma nova variável de resultado que contenha o valor do atributo do nome do cluster. Preencha os seguintes campos:

      1. No campo Nome, introduza cluster_name.
      2. Na lista Tipo de variável, selecione Resultado da integração.
      3. Na lista Tipo de dados, selecione String.
      4. Clique em Criar. A variável cluster_name é apresentada em Resultado.
    7. Repita os passos e e f para project_id, cluster_location, type_url e payload.

    8. Feche o editor de mapeamento de dados assim que o mapeamento estiver concluído. As alterações são guardadas automaticamente.

Adicione e configure a tarefa do transformador de dados (script)

A tarefa Data Transformer usa como entrada variáveis extraídas da tarefa Data Mapping e transforma-as num corpo de mensagem para consumo do utilizador final.

Para configurar a tarefa do transformador de dados:

  1. Selecione Tarefas para apresentar uma lista de tarefas disponíveis.
  2. Clique e coloque o elemento Transformador de dados (script) no editor de integração.
  3. Clique na tarefa Transformador de dados no criador para abrir o painel de configuração da tarefa.
  4. Para adicionar uma associação de limite da tarefa de mapeamento de dados à tarefa de transformador de dados, mantenha o ponteiro sobre um ponto de controlo no mapeamento de dados e, em seguida, arraste uma linha para um ponto de controlo na tarefa de transformador de dados. A aresta denota o fluxo de controlo da tarefa de mapeamento de dados para a tarefa de transformador de dados.
  5. Clique em Abrir editor do transformador de dados. O editor do transformador de dados permite-lhe escrever, editar e avaliar modelos Jsonnet personalizados para realizar o mapeamento de dados na sua integração. A saída fica então disponível como uma variável para qualquer outra tarefa de integração ou acionador. Para mais detalhes sobre esta tarefa do transformador, consulte o artigo Tarefa do transformador de dados. Para este início rápido, siga estes passos para criar um script:

    1. Clique em Criar no painel do lado esquerdo Variáveis. É aberto um painel Criar variável no lado direito. Preencha os seguintes campos:

      • Nome: introduza full_message.
      • Selecione Output from integration na caixa pendente Tipo de variável.
      • Selecione String na caixa pendente Tipo de dados.
      • Clique em Criar para criar a variável e fechar o painel. A nova full_message variável aparece na lista Variáveis.
    2. Selecione Script.

    3. Use o seguinte script de exemplo como modelo para o corpo da mensagem quando são enviadas notificações do seu cluster:

      local message_data = std.extVar("message_data");
      local cluster_name = std.extVar("cluster_name");
      local project_id = std.extVar("project_id");
      local cluster_location = std.extVar("cluster_location");
      local type_url = std.extVar("type_url");
      local payload = std.extVar("payload");
      
      {full_message: "Project ID: " + project_id + "\n" +
                    "Cluster Name: " + cluster_name + "\n" +
                    "Location: " + cluster_location + "\n" +
                    "Event Type: " + type_url + "\n" +
                    "Message: " + message_data + "\n" +
                    "Payload: " + std.manifestJson(std.parseJson(payload))}
      
    4. Feche o editor de mapeamento de dados assim que o mapeamento estiver concluído. As alterações são guardadas automaticamente.

Adicione e configure a tarefa Enviar email

Para configurar a tarefa Enviar email:

  1. Selecione Tarefas no editor de integração para apresentar a lista de tarefas disponíveis.
  2. Clique e coloque o elemento Enviar email no editor de integração.
  3. Para adicionar uma ligação de aresta da tarefa Data Transformer à tarefa Send email, mantenha o ponteiro sobre um ponto de controlo na tarefa Data Transformer e, em seguida, arraste uma linha para um ponto de controlo na tarefa Send email. A aresta denota o fluxo de controlo da tarefa Data Transformer para a tarefa Send email.
  4. Clique no elemento Enviar email no criador para abrir o painel de configuração da tarefa. Defina as seguintes propriedades:
    1. Para destinatários: introduza um endereço de email. Vai usar este email para confirmar a conclusão bem-sucedida da integração.
    2. Assunto: introduza GKE Notifications.
    3. Corpo em texto simples: selecione a variável full_message criada anteriormente na tarefa Transformador de dados.
    4. As restantes opções podem ser deixadas na configuração predefinida.

As alterações às propriedades são guardadas automaticamente e a tela deve ter um aspeto semelhante ao seguinte:

Tela do Application Integration

Teste a integração

Para testar a nova integração, aceda à barra de navegação na parte superior do diagrama de integração e clique em Testar. É aberto um painel no lado direito. Pode usar a seguinte mensagem Pub/Sub de exemplo na secção Adicionar um valor JSON:

{
  "data": "Node pool projects/my-project/locations/us-central1-c/clusters/cluster-1/nodePools/default-pool is upgrading to version 1.29.1-gke.1589017.",
  "attributes": {
    "cluster_location": "us-central1-c",
    "cluster_name": "cluster-1",
    "payload": "{\"resourceType\":\"NODE_POOL\",\"operation\":\"operation-upgrade\",\"operationStartTime\":\"2024-05-07T20:09:35.528855756Z\",\"currentVersion\":\"1.28.7-gke.1026000\",\"targetVersion\":\"1.29.1-gke.1589017\",\"resource\":\"projects/my-project/locations/us-central1-c/clusters/cluster-1/nodePools/default-pool\"}",
    "project_id": "my-project",
    "type_url": "type.googleapis.com/google.container.v1beta1.UpgradeEvent"
  }
}

É enviado um email para o endereço de email que configurou na tarefa Enviar email depois de clicar no botão Testar integração.

Publique a sua integração

Depois de testar esta integração com êxito, clique em Publicar para que a integração comece a processar as mensagens.

Só pode editar uma versão DRAFT da integração e executar apenas a versão ACTIVE da integração. Se quiser editar a integração, clique em Ativar edição na página do criador de integrações e, de seguida, crie uma versão de rascunho. Para mais informações, consulte o artigo Bloqueios de edição de integração.