Compartilhar via


Configurar um fluxo de trabalho de notificação depois que uma API for registrada no Centro de API Azure

Este artigo mostra como configurar um fluxo de trabalho de notificação automatizado para atualizar o status de uma API após o registro no centro de API da sua organização. Adapte este exemplo para automatizar fluxos de trabalho para outros tipos de eventos no centro de API.

Há vários benefícios para configurar um fluxo de trabalho de notificação:

  • Atualizações em tempo real: receber alertas imediatamente quando determinados eventos ocorrerem, como o registro de API ou atualizações de definição de API. Resolva rapidamente problemas ou tome medidas adicionais com base nesses eventos.
  • Automação: economize tempo e reduza o monitoramento manual. Por exemplo, configure alertas para quando uma nova API é registrada, uma definição de API é alterada ou relatórios de análise de API são gerados.
  • Experiência aprimorada do usuário: aproveite as notificações integradas e mantenha os usuários informados sobre o status de suas solicitações ou ações. As ações podem incluir processos de aprovação para suas APIs ou alteração de metadados personalizados com base em critérios.
  • Colaboração: envie notificações para diferentes membros da equipe com base em suas funções (administrador de API, desenvolvedor de API e assim por diante) e verifique se os usuários certos são informados e podem tomar as medidas apropriadas.

O exemplo neste artigo cria o seguinte processo:

  1. Quando uma API é registrada no centro de API, um evento dispara um fluxo de trabalho Azure Logic Apps.
  2. O fluxo de trabalho envia uma notificação em Microsoft Teams para um usuário designado.
  3. O usuário decide o status do registro de API diretamente da notificação em Microsoft Teams.
  4. O fluxo de trabalho atualiza os metadados de status da API no registro da API com base na decisão do usuário. O status da API é uma propriedade de metadados personalizada que você configurou no centro de API.

Você pode adaptar o exemplo para atender aos requisitos de notificação e governança da sua organização para o centro de API. Você também pode disparar um fluxo de trabalho de nuvem automatizado semelhante no Microsoft Power Automate.

Pré-requisitos

Adicionar uma propriedade de metadados personalizada no centro de API

O fluxo de trabalho demonstrado neste artigo define o valor de uma propriedade personalizada de metadados de exemplo em seu centro de API, que é usada para acompanhar o status de um registro de API.

Crie uma propriedade personalizada api-status no centro de API:

  1. No Azure portal, navegue até o centro de API.

  2. Expanda Inventário, selecione Metadados e selecione + Novos metadados.

  3. Na guia Detalhes , defina as seguintes configurações:

    1. Para o valor título , insira api-status.

    2. Para o valor tipo , selecione opções predefinidas.

    3. Para o conjunto de Opções, adicione os seguintes nomes: novos, pendentes, aprovados. Selecione Avançar.

  4. Na guia Atribuições , defina o valor das APIs como Opcional.

  5. (Opcional) Faça atribuições para Implantações e Ambientes valores. Selecione Avançar.

  6. Examine a configuração e selecione Criar.

Habilitar uma identidade gerenciada em seu aplicativo lógico

Para esse cenário, o aplicativo de lógica usa uma identidade gerenciada para acessar a central de API. Com base nas suas necessidades, habilite uma identidade gerenciada atribuída pelo sistema ou pelo usuário. Para configurar a identidade gerenciada, consulte Autenticar acesso e conexões com recursos do Azure com identidades gerenciadas no Azure Logic Apps.

Captura de tela da configuração de identidade gerenciada para um aplicativo de lógica no portal do Azure.

Atribuir permissões à identidade gerenciada

Atribua à identidade gerenciada do aplicativo de lógica as permissões necessárias para acessar a central de API. Para esse cenário, atribua a função Colaborador à identidade gerenciada.

  1. No Azure portal, navegue até o centro de API e selecione Access control (IAM).

  2. Selecione +Adicionar>Adicionar atribuição de função.

  3. Selecione a guia funções de administrador com privilégios .

  4. Na lista de funções, selecione Colaborador e selecione Avançar.

  5. Na página Members, em Atribuir acesso a, selecione Identidade gerenciada.

  6. Em Membros, selecione + Selecionar membros.

  7. Na página Selecionar identidades gerenciadas , defina a identidade gerenciada para seu novo aplicativo lógico e escolha Selecionar.

  8. Na atribuição Adicionar função, selecione Avançar.

  9. Examine a atribuição de função e selecione Examinar + atribuir.

Configurar o fluxo de trabalho do aplicativo lógico

Esta seção fornece as etapas manuais para configurar uma assinatura de evento que dispara um fluxo de trabalho de aplicativo lógico quando uma API é registrada no centro de API.

Acionar quando ocorrer um evento de recurso

Configure uma etapa de fluxo de trabalho para disparar o fluxo de trabalho do aplicativo lógico quando ocorrer um evento no centro de API.

  1. No portal do Azure, navegue até o aplicativo de lógica.

  2. Expanda as ferramentas de desenvolvimento e selecione o designer de aplicativos lógicos.

  3. No surface do designer, selecione Adicionar um gatilho.

  4. Pesquise Azure Event Grid e selecione o gatilho Quando ocorrer um evento de recurso.

  5. No painel Quando ocorrer um evento de recurso , defina as seguintes configurações:

    1. Para o valor de tipo de recurso, selecione Microsoft.ApiCenter.Services.

    2. Para o valor da assinatura , selecione sua assinatura.

    3. Para o valor nome do recurso , insira o nome completo do recurso do centro de API, no seguinte formulário:

      /subscriptions/<subscription ID>/resourceGroups/<resource group nam>/providers/Microsoft.ApiCenter/services/<API Center name>

    4. Para o valor do Item de Tipo de Evento - 1, insira ou selecione Microsoft.ApiCenter.ApiAdded.

    Captura de tela de quando ocorre um evento de recurso que aciona uma ação no portal do Azure.

  6. Feche o painel para retornar à surface de design.

Inicializar uma variável para a ID da API

Adicione uma etapa de fluxo de trabalho para inicializar uma variável que armazena a ID da API registrada.

  1. No widget Quando ocorrer um evento de recurso, selecione o sinal de mais +, e selecione Adicionar uma ação.

  2. Pesquise variáveis e selecione Inicializar variáveis.

  3. No painel Inicializar variáveis , defina as seguintes configurações para uma Nova Variável:

    1. Para o valor nome , insira subjectvar.

    2. Para o valor tipo , selecione Cadeia de caracteres.

    3. Para o valor Valor, insira a barra de avanço / e selecione Inserir conteúdo dinâmico.

    4. Em Quando um evento de recurso ocorre, selecione Assunto.

    Screenshot de inicialização da variável subjectvar no Azure portal.

Inicializar uma variável para a versão da API

Adicione uma etapa de fluxo de trabalho para inicializar uma variável para armazenar a versão da API de gerenciamento do Centro de API. Essa versão é necessária para as solicitações HTTP no fluxo de trabalho.

Dica

Inicializar uma variável para a versão facilita a alteração do valor posteriormente, pois a API de gerenciamento é atualizada.

  1. No painel Inicializar variáveis , selecione Adicionar uma Variável.

  2. Defina as seguintes configurações:

    1. Para o valor nome , insira versionvar.

    2. Para o valor tipo , selecione Cadeia de caracteres.

    3. Para o valor Valor , insira ?api-version=2024-03-01.

    Screenshot de inicialização da variável versionvar no Azure portal.

  3. Feche o painel para retornar à surface de design.

Configurar uma ação HTTP para obter os detalhes da API

Adicione uma etapa de fluxo de trabalho para fazer uma solicitação HTTP GET para recuperar detalhes da API do centro de API.

  1. No widget de ação Inicializar variáveis, selecione o sinal de adição + e selecione Adicionar uma ação.

  2. Pesquise HTTP e selecione HTTP.

  3. No painel HTTP :

    1. Para o valor URI, insira https://management.azure.com/ (incluindo a barra inclinada à frente /).

      1. Quando o sistema detectar a barra invertida /, selecione Inserir conteúdo dinâmico e selecione a variável subjectvar.

      2. Insira a barra / para frente novamente, selecione Inserir conteúdo dinâmico e selecione a variável versionvar .

      O valor final deve ser semelhante a este exemplo em que o URI termina com uma barra /para frente:

      Screenshot que mostra o valor correto para a configuração de URI no Azure portal.

    2. Para o Método, selecione GET.

    3. Em parâmetros avançados, expanda a lista suspensa e selecione Autenticação. Defina as seguintes configurações:

      1. Para o valor do tipo autenticação , selecione Identidade Gerenciada.

      2. Para o valor de identidade gerenciada , selecione a identidade gerenciada atribuída pelo sistema.

      3. Para o valor Audience, insira o valor de URI https://management.azure.com/.

    Screenshot da ação de solicitação HTTP GET no Azure portal.

  4. Feche o painel para retornar à surface de design.

Analisar o resultado da ação JSON

Adicione uma etapa de fluxo de trabalho para analisar a saída JSON da solicitação HTTP anterior.

  1. No widget de ação HTTP, selecione o sinal de mais + e selecione Adicionar uma ação.

  2. Pesquise por Analisar JSON e selecione Analisar JSON em Operações de dados.

  3. No painel Analisar JSON , defina as seguintes configurações:

    1. Para o valor Conteúdo, insira a barra (/) e selecione /.

    2. Em HTTP, selecione Corpo.

    3. Para o valor Schema, insira o seguinte código:

      {
          "type": "object",
          "properties": {
              "type": {
                  "type": "string"
              },
              "properties": {
                  "type": "object",
                  "properties": {
                      "title": {
                          "type": "string"
                      },
                      "kind": {
                          "type": "string"
                      },
                      "description": {
                          "type": "string"
                      },
                      "lifecycleStage": {
                          "type": "string"
                      },
                      "externalDocumentation": {
                          "type": "array"
                      },
                      "contacts": {
                          "type": "array"
                      },
                      "customProperties": {
                          "type": "object",
                          "properties": {}
                      }
                  }
              },
              "id": {
                  "type": "string"
              },
              "name": {
                  "type": "string"
              },
              "systemData": {
                  "type": "object",
                  "properties": {
                      "createdAt": {
                          "type": "string"
                      },
                      "lastModifiedAt": {
                          "type": "string"
                      }
                  }
              }
          }
      }
      

    A imagem a seguir mostra as configurações no painel Analisar JSON :

    Captura de tela da ação de análise de JSON com o esquema no portal do Azure.

  4. Feche o painel para retornar à surface de design.

Publicar um cartão adaptável no Teams

Adicione uma etapa de fluxo de trabalho para postar a notificação como um cartão adaptável no Microsoft Teams.

  1. No widget de ação Analisar JSON, selecione o sinal de mais +, e selecione Adicionar uma ação.

  2. Pesquise Teams e, em seguida, selecione Postar cartão adaptável e aguardar uma resposta em Microsoft Teams.

    Talvez seja necessário selecionar Ver mais para localizar essa opção. Se solicitado, entre em sua conta Microsoft Teams.

  3. No painel Envie o cartão adaptativo e aguarde uma resposta, defina as seguintes configurações:

    1. Para o valor de Postar como, selecione Bot do flow.

    2. Para o valor Publicar em, selecione uma opção apropriada para a configuração do Teams. Para testar, selecione Chat com o bot do Flow.

    3. Para o valor da mensagem , insira o texto a seguir para um cartão adaptável. Modifique o texto conforme necessário.

      {
          "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
          "type": "AdaptiveCard",
          "version": "1.4",
          "body": [
              {
                  "type": "TextBlock",
                  "text": "Hi API Admin,",
                  "weight": "Bolder",
                  "size": "Medium"
              },
              {
                  "type": "TextBlock",
                  "text": "A new API has been registered.",
                  "wrap": true
              },
              {
                  "type": "TextBlock",
                  "text": "API Title: **{{apiTitle}}**",
                  "wrap": true
              },
              {
                  "type": "TextBlock",
                  "text": "Please provide the status for this API:",
                  "wrap": true
              },
              {
                  "type": "Input.ChoiceSet",
                  "id": "apiStatus",
                  "style": "expanded",
                  "choices": [
                      {
                          "title": "New",
                          "value": "new"
                      },
                      {
                          "title": "Pending",
                          "value": "pending"
                      },
                      {
                          "title": "Approved",
                          "value": "approved"
                      }
                  ],
                  "isRequired": true,
                  "errorMessage": "Please select a status."
              }
          ],
          "actions": [
              {
                  "type": "Action.Submit",
                  "title": "Submit"
              }
          ]
      }
      
      
  4. Ajuste o título da mensagem. Na seção "body" do esquema de mensagem, localize a instrução "text": "API Title: **{{apiTitle}}**",.

  5. Selecione a parte da instrução {{apiTitle}} e exclua-a.

  6. Insira a barra invertida / e selecione Inserir conteúdo dinâmico.

    Em Analisar o JSON, selecione Título do corpo para substituir o texto selecionado pelo conteúdo dinâmico.

    A parte atualizada deve ser semelhante a este exemplo:

    Captura de tela que mostra um valor gerado dinamicamente para o título do corpo da mensagem no esquema da mensagem.

  7. Para o valor destinatário , insira o endereço de email do usuário que recebe notificações.

    Captura de tela do cartão de postagem adaptável para a ação do Teams no portal do Azure.

  8. Feche o painel para retornar à surface de design.

Inicializar uma variável para o status da API

Adicione um passo ao fluxo de trabalho para inicializar o valor de uma variável que armazena o valor de status da API retornado do cartão adaptável do Teams.

  1. No widget da ação Postar cartão adaptável e aguardar uma resposta, selecione o ícone de adição +, e selecione Adicionar uma ação.

  2. Pesquise variáveis e selecione Inicializar variáveis.

  3. No painel Inicializar variáveis , defina as seguintes configurações para uma Nova Variável:

    1. Para o valor Nome, insira statusvar.

    2. Para o valor tipo , selecione Cadeia de caracteres.

    3. Para o valor Valor , insira o script @body('Post_adaptive_card_and_wait_for_a_response')?['data']?['apiStatus'].

      Depois de inserir o script, o sistema adiciona o body(...) glifo ao valor de configuração. Você pode passar o cursor sobre o glifo para confirmar se o script está adicionado conforme o esperado.

    Captura de tela da inicialização da variável statusvar no portal do Azure, mostrando o script completo ao passar o mouse sobre ela.

  4. Feche o painel para retornar à surface de design.

O sistema adiciona o novo widget com o nome Inicializar variáveis 1 ao fluxo de trabalho. O número no título indica que você tem outra ação do mesmo tipo nesse fluxo de trabalho. A primeira instância da ação é o número 0, a segunda é o número 1 e assim por diante. Você pode alterar o nome do widget no painel Inicializar variáveis .

Configurar uma ação HTTP para atualizar as propriedades da API

Adicione uma etapa de fluxo de trabalho para fazer uma solicitação HTTP PUT para atualizar as propriedades da API no centro de API.

  1. No widget de ação Inicializar variáveis 1, selecione o sinal de mais +, e selecione Adicionar uma ação.

  2. Pesquise por HTTP e selecione HTTP.

  3. No painel HTTP , defina as seguintes configurações:

    1. Para o valor URI, insira https://management.azure.com/ (incluindo a barra final /).

      1. Quando o sistema detectar a barra invertida /, selecione Inserir conteúdo dinâmico e selecione a variável subjectvar.

      2. Insira a barra / para frente novamente, selecione Inserir conteúdo dinâmico e selecione a variável versionvar .

      O valor final deve ser semelhante a este exemplo em que o URI termina com uma barra /para frente:

      Screenshot que mostra o valor correto para a configuração de URI no Azure portal.

    2. Para o valor do método , selecione PUT.

    3. Para o valor Corpo, insira o seguinte código:

      {
          "properties": {
          "customProperties": {
              "api-status": "@variables('statusvar')"
          },
          "title": "@body('Parse_JSON')?['properties']?['title']",
          "description": "@body('Parse_JSON')?['properties']?['description']",
          "lifecycleStage": "@body('Parse_JSON')?['properties']?['lifecycleStage']",
          "kind": "@body('Parse_JSON')?['properties']?['kind']"
          }
      }
      
    4. Em parâmetros avançados, selecione Autenticação e defina as seguintes configurações:

      1. Para o valor do tipo autenticação , selecione Identidade Gerenciada.

      2. Para o valor de identidade gerenciada , selecione a identidade gerenciada atribuída pelo sistema.

      3. Para o valor Audience, insira https://management.azure.com/.

    Screenshot da ação de solicitação HTTP PUT no Azure portal.

  4. Feche o painel para retornar à surface de design.

O sistema adiciona o novo widget com o nome HTTP 1 ao fluxo de trabalho. Você pode alterar o nome do widget no painel HTTP .

Salvar o fluxo de trabalho

No Designer de aplicativos lógicos, selecione Salvar na barra de menus para salvar seu fluxo de trabalho. O fluxo de trabalho completo deve ser semelhante ao exemplo a seguir:

Captura de tela do fluxo de trabalho completo no designer de app lógico no portal do Azure.

Confirme se a assinatura do evento foi criada com êxito no centro de API. A assinatura do evento pode levar alguns minutos para ser provisionada.

  1. No Azure portal, navegue até o centro de API.

  2. Expanda Eventos e selecione Assinaturas de Eventos.

  3. Confirme se Aplicativos Lógicos está listado como Nome e se o ponto de extremidade está definido como o Webhook.

Captura de tela de uma assinatura de evento do Logic App para o centro de API no portal do Azure.

Teste a assinatura do evento.

Teste a assinatura do evento registrando uma API no centro de API:

  1. No Azure portal, navegue até o centro de API.

  2. Registre uma API no centro de API.

    Depois que a API for registrada, confirme as seguintes ações:

    • O fluxo de trabalho do Logic App é acionado pela assinatura de evento.
    • O fluxo de trabalho do aplicativo lógico é executado e envia uma notificação para o destinatário designado em Microsoft Teams.
  3. Em Microsoft Teams, exiba o cartão adaptável, faça uma seleção de status de API e selecione Submit.

    Captura de tela do cartão adaptativo do fluxo de trabalho no Microsoft Teams.

    O workflow do aplicativo lógico atualiza a propriedade do api-status no registro da API no centro de APIs.

  4. No centro de API, exiba os detalhes da API para ver o valor atualizado da propriedade personalizada api-status .

    Captura de tela do registro de API atualizado no portal do Azure.

Visualizar o histórico do processo do aplicativo lógico

Para obter detalhes sobre o processo do aplicativo lógico e solucionar problemas:

  1. No portal do Azure, navegue até o aplicativo de lógica.

  2. Expanda as Ferramentas de Desenvolvimento e selecione Histórico de Execuções.

  3. Selecione a execução para ver os detalhes de cada etapa.