Partilhar via


Configure um fluxo de notificação depois de uma API ser registada no Azure API Center

Este artigo mostra como configurar um fluxo de trabalho automatizado de notificações para atualizar o estado de uma API após o registo no centro de APIs da sua organização. Adapte este exemplo para automatizar fluxos de trabalho para outros tipos de eventos em seu centro de API.

Existem vários benefícios em configurar um fluxo de trabalho de notificações:

  • Atualizações em tempo real: Receba alertas imediatamente quando certos eventos ocorrem, como registo de API ou atualizações de definição de API. Resolva rapidamente os problemas ou tome medidas adicionais com base nestes acontecimentos.
  • Automação: Poupe tempo e reduza a monitorização 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.
  • Melhoria da experiência do utilizador: Aproveite as notificações integradas e mantenha os utilizadores informados sobre o estado dos seus pedidos ou ações. As ações podem incluir processos de aprovação para as suas APIs ou alteração de metadados personalizados com base em critérios.
  • Colaboração: Envie notificações a diferentes membros da equipa consoante os seus papéis (administrador da API, desenvolvedor da API, etc.) e assegure que os utilizadores certos estão informados e podem tomar as medidas adequadas.

O exemplo neste artigo constrói o seguinte processo:

  1. Quando uma API é registada no seu centro de API, um evento é ativado que executa um fluxo de trabalho Azure Logic Apps.
  2. O fluxo de trabalho envia uma notificação no Microsoft Teams para um utilizador designado.
  3. O utilizador decide o estado do registo da API diretamente a partir da notificação no Microsoft Teams.
  4. O fluxo de trabalho atualiza os metadados de estado da API no registo da API com base na decisão do utilizador. O estado da API é uma propriedade de metadados personalizada que configura no seu centro de API.

Pode adaptar o exemplo para cumprir os requisitos de notificação e governação da sua organização para o seu centro API. Também pode ativar um fluxo de trabalho automatizado na cloud semelhante no Microsoft Power Automate.

Pré-requisitos

Adicionar uma propriedade de metadados personalizada no seu centro de API

O fluxo de trabalho demonstrado neste artigo define o valor de uma propriedade de metadados personalizada no seu centro de API, que é usada para acompanhar o estado de um registo de API.

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

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

  2. Expandir o Inventário, selecionar Metadados e selecionar + Novos Metadados.

  3. No separador Detalhes , configure as seguintes definições:

    1. Para o valor Título , introduza o estado da api.

    2. Para o valor do Tipo , selecione Escolhas Predefinidas.

    3. Para o conjunto de Opções, adicione os seguintes nomes: novo, pendente, aprovado. Selecione Seguinte.

  4. No separador Atribuições, defina o valor das APIs para Opcional.

  5. Faça atribuições para os valores Implantação e Ambiente (opcional). Selecione Seguinte.

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

Habilite uma identidade gerenciada em seu aplicativo lógico

Neste cenário, a aplicação lógica usa uma identidade gerida para acess ao centro da API. Dependendo das suas necessidades, habilite uma identidade gerenciada atribuída pelo sistema ou pelo usuário. Para configurar a identidade gerida, veja Autenticar acesso e ligações a recursos do Azure com identidades geridas em Azure Logic Apps.

Captura de ecrã da configuração da identidade gerida para uma aplicação lógica na Azure portal.

Atribuir permissões à identidade gerenciada

Atribua à identidade gerida da aplicação lógica as permissões necessárias para acess ao centro de API. Para esse cenário, atribua a função de Colaborador à identidade gerenciada.

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

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

  3. Selecione o separador de funções de administrador privilegiado .

  4. Na lista de funções, selecione Contribuidor e depois selecione Próximo.

  5. Na página Members, sob Atribuir acesso a, selecione Identidade gerida.

  6. Em Membros, selecione + Selecione membros.

  7. Na página Selecionar identidades geridas , defina a identidade Gerida para a sua nova aplicação lógica e depois escolha Selecionar.

  8. Na atribuição de Adicionar funções, selecione Próximo.

  9. Reveja a atribuição de funções e selecione Rever + atribuir.

Configurar o fluxo de trabalho da Logic App

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

Ativação quando ocorre um evento de recurso

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

  1. No Azure portal, navegue até à sua aplicação lógica.

  2. Expanda as ferramentas de desenvolvimento e selecione Designer de aplicações lógicas.

  3. Na interface de designer, selecione Adicionar um gatilho.

  4. Procure por Azure Event Grid e selecione o trigger Quando ocorre um evento de recurso.

  5. No painel Quando ocorre um evento de recurso , configure as seguintes definições:

    1. Para o valor do tipo Resource , selecione Microsoft.ApiCenter.Services.

    2. Para o valor de subscrição , selecione a sua subscrição.

    3. Para o valor Nome do Recurso , insira o nome completo do recurso do seu centro API, na seguinte forma:

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

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

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

  6. Feche o painel para voltar à superfície de design.

Inicializar uma variável para o ID da API

Adicione um passo de fluxo de trabalho para inicializar uma variável que armazene o ID da API registada.

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

  2. Procure por Variáveis e selecione Inicializar variáveis.

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

    1. Para o valor do Nome , introduza subjectvar.

    2. Para o valor do Tipo , selecione String.

    3. Para o valor Valor, introduza barra /, e selecione Inserir conteúdo dinâmico.

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

     Captura de ecrã da 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. Esta versão é necessária para as solicitações HTTP no fluxo de trabalho.

Gorjeta

Inicializar uma variável para a versão facilita a alteração do valor mais tarde, à medida que a API de gestão é atualizada.

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

  2. Defina as seguintes configurações:

    1. Para o valor do Nome , introduza versionvar.

    2. Para o valor do Tipo , selecione String.

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

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

  3. Fecha o painel para voltar à superfície de design.

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

Adicione um passo de fluxo de trabalho para fazer um pedido HTTP GET e recuperar detalhes da API do centro de API.

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

  2. Procure por HTTP e selecione HTTP.

  3. No painel HTTP :

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

      1. Quando o sistema detetar a barra diagonal "/", selecione / e depois a variável subjectvar.

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

      O valor final deve assemelhar-se a este exemplo, onde o URI termina com uma barra /para a frente:

      Captura de ecrã que mostra o valor correto para a definição de URI na 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 Gerida.

      2. Para o valor de identidade gerida , selecione identidade gerida atribuída ao sistema.

      3. Para o valor Audience, introduza o valor do URI https://management.azure.com/.

    Captura de ecrã da ação HTTP GET no Azure portal.

  4. Feche o painel para voltar à superfície de design.

Analise a saída 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 +, e Adicione uma ação.

  2. Procure por Parse JSON e depois selecione Parse JSON em operações de dados.

  3. No painel Parse JSON , configure as seguintes definições:

    1. Para o valor Conteúdo , introduza barra /adicional , e selecione Inserir conteúdo dinâmico.

    2. Em HTTP, selecione Corpo.

    3. Para o valor do Esquema , introduza 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 seguinte mostra as definições de configuração no painel Parse JSON :

    Captura de ecrã da ação de análise JSON com o esquema na Azure portal.

  4. Feche o painel para voltar à superfície de design.

Publique um cartão adaptativo no Teams

Adicione um passo de fluxo de trabalho para publicar a notificação como um cartão adaptativo no Microsoft Teams.

  1. No widget de ação Parse JSON, selecione o +ícone de mais e selecione Adicionar ação.

  2. Procura por Teams, e depois seleciona Post adaptive card e aguarda uma resposta em Microsoft Teams.

    Pode precisar de selecionar Ver mais para encontrar esta opção. Se for solicitado, inicie sessão na sua conta Microsoft Teams.

  3. No painel de cartão adaptativo Post e aguarde por uma resposta, configure as seguintes definições:

    1. Para o valor de Publicar como, selecione Flow bot.

    2. Para o valor da publicação , selecione uma opção apropriada para a sua configuração do Teams. Para testes, você pode selecionar Bate-papo com o bot Flow.

    3. Para o valor Message , introduza o texto seguinte para um cartão adaptativo. 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. Ajusta o título da mensagem. Na "body" secção do esquema da mensagem, localize a "text": "API Title: **{{apiTitle}}**", instrução.

  5. Selecione a {{apiTitle}} parte da declaração e apague-a.

  6. Digite barra / adicional e selecione Inserir conteúdo dinâmico.

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

    A parte atualizada deve assemelhar-se a este exemplo:

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

  7. Para o valor Destinatário , introduza o endereço de email do utilizador que recebe as notificações.

    Captura de ecrã da ação do cartão adaptativo para o Teams no portal do Azure.

  8. Feche o painel para voltar à superfície de design.

Inicializar uma variável para o estado da API

Adicione uma etapa de 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. Na ação de cartão adaptativo Publicar e aguardar por uma resposta, selecione o símbolo de mais +, e selecione Adicionar uma ação.

  2. Procure por Variáveis e selecione Inicializar variáveis.

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

    1. Para o valor Nome , introduza statusvar.

    2. Para o valor do Tipo , selecione String.

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

      Depois de entrares no script, o sistema adiciona o body(...) glifo ao valor da definição. Podes passar o rato pelo glifo para confirmar que o teu script foi adicionado como esperado.

    Captura de ecrã a inicializar a variável statusvar no portal do Azure mostrando o script completo quando o cursor está sobre.

  4. Feche o painel para voltar à superfície de design.

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

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

Adicione uma etapa de fluxo de trabalho para fazer uma solicitação HTTP PUT para atualizar as propriedades da API em seu 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. Procure por HTTP e depois selecione HTTP.

  3. No painel HTTP , configure as seguintes definições:

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

      1. Quando o sistema detetar a barra diagonal "/", selecione / e depois a variável subjectvar.

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

      O valor final deve assemelhar-se a este exemplo, onde o URI termina com uma barra /para a frente:

      Captura de ecrã que mostra o valor correto para a definição de URI na Azure portal.

    2. Para o valor Método, selecione PUT.

    3. Para o valor Corpo , introduza 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 configure as seguintes definições:

      1. Para o valor do tipo Autenticação , selecione Identidade Gerida.

      2. Para o valor de identidade gerida , selecione identidade gerida atribuída ao sistema.

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

    Captura de ecrã da ação HTTP PUT no portal do Azure.

  4. Feche o painel para voltar à superfície de design.

O sistema adiciona o novo widget com o nome HTTP 1 ao seu fluxo de trabalho. Podes mudar o nome do widget no painel HTTP .

Salvar o fluxo de trabalho

No Designer de Aplicações Lógicas, selecione Guardar na barra de menus para salvar o seu fluxo de trabalho. O fluxo de trabalho completo deverá assemelhar-se ao seguinte exemplo:

Captura de ecrã do fluxo de trabalho completo no designer da aplicação Logic no Azure portal.

Confirme que a subscrição do evento foi criada com sucesso no seu centro de API. Pode demorar alguns minutos até a subscrição do evento ser ativada.

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

  2. Expandir Eventos e selecionar Subscrições de Eventos.

  3. Confirma que a aplicação lógica está listada em Nome, e o Endpoint está definido para Webhook.

Captura de ecrã de uma subscrição de evento de Logic App para o centro de API no portal do Azure.

Testar a subscrição do evento

Teste a assinatura do evento registrando uma API em seu centro de API:

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

  2. Registre uma API em seu centro de APIs.

    Depois de a API estar registada, confirme as seguintes ações:

    • A assinatura de evento aciona o fluxo de trabalho do aplicativo lógico.
    • O fluxo de trabalho da aplicação lógica corre e envia uma notificação ao destinatário designado no Microsoft Teams.
  3. No Microsoft Teams, visualize a placa adaptativa, faça uma seleção de estado da API e selecione Submit.

     Captura de ecrã da placa adaptativa do fluxo de trabalho em Microsoft Teams.

    O fluxo de trabalho do aplicativo lógico atualiza a propriedade api-status no registro da API em seu centro de API.

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

     Captura de ecrã do registo atualizado da API no Azure portal.

Consulte o histórico de processos da aplicação lógica

Para obter detalhes sobre o processo da Logic App e resolver eventuais problemas:

  1. No Azure portal, navegue até à sua aplicação lógica.

  2. Expandir as Ferramentas de Desenvolvimento e selecionar Histórico de Execuções.

  3. Selecione a execução do processo para ver os detalhes de todos os passos.