Exercício – Adicionar outra aplicação de Funções do Azure a uma API existente

Concluído

Lembre-se de que você deseja integrar todos os microsserviços separados, que são o Azure Functions, em uma única API. Você adicionou o aplicativo de função Produtos a uma nova instância do Gerenciamento de API. Agora você deseja adicionar outro aplicativo de função a essa API.

Neste exercício, você adiciona o aplicativo de função Pedidos à API e usa a curl ferramenta para testar o sistema integrado.

Testar a função OrderDetails

Antes de adicionarmos o aplicativo da função Pedidos à API, vamos testar a função que ele hospeda - OrderDetails.

  1. No menu de recursos do Azure ou na página inicial , selecione Todos os recursos. O painel Todos os recursos é exibido.

  2. Classifique os recursos por Tipo e selecione o Aplicativo de Função cujo nome começa com OrderFunction. O painel Visão geral do aplicativo de função OrderFunction é exibido.

  3. Na lista de funções do seu aplicativo de funções, selecione OrderDetails. O painel Visão geral da função OrderDetails é exibido.

  4. No menu Detalhes do pedido, em Desenvolvedor, selecione Código + Teste. O painel Code + Test para a função OrderDetails é exibido, mostrando o function.json conteúdo do arquivo.

    OrderDetails JSON code, with Code + Test in menu and Test/Run in command bar highlighted.

  5. Na barra de comandos, selecione Testar/Executar. A guia Parâmetros de entrada para sua função OrderDetails é exibida.

  6. No campo Método HTTP, selecione GET na lista suspensa e, em Consulta, selecione Adicionar parâmetro e, no campo Nome, digite nome e, no campo Valor, insira Chiba (o valor diferencia maiúsculas de minúsculas) e selecione Executar.

  7. Um console de log é aberto e exibe o status da solicitação. A guia Saída exibe o código de resposta HTTP e o conteúdo no formato JSON.

    Add a new function option page appears.

    Opcionalmente, você pode executar mais solicitações usando os valores de nome Henri e Barriclough para obter pedidos de clientes diferentes.

  8. Selecione Fechar para fechar as guias Entrada-saída para Teste/Execução.

  9. Na barra de comandos do painel OrderDetails, selecione Obter URL da função. Observe que o URL é o nome da função dentro do domínio azurewebsites.net.

Adicionar uma função a uma API existente

Nesta etapa, adicionamos a função Order ao recurso de Gerenciamento de API que criamos no exercício anterior. Nesse exercício, usamos a interface de Gerenciamento de API de dentro da interface do aplicativo de função. Aqui, navegamos até nossa instância de Gerenciamento de API por meio do menu de recursos do portal do Azure, apenas para demonstrar que ambas as abordagens estão disponíveis.

  1. No menu de recursos do Azure ou na página inicial , selecione Todos os recursos. O painel Todos os recursos é exibido.

  2. Classifique os recursos por Tipo e selecione o serviço de Gerenciamento de API da Loja Online . O serviço de Gerenciamento de API para OnlineStore é exibido.

  3. No menu, em APIs, selecione APIs. O painel APIs mostra opções para definir uma nova API.

  4. Em Criar a partir do recurso do Azure, selecione Aplicativo de Função.

    Screenshot of the Add a New API screen with a callout highlighting the Azure Function App option.

    A caixa de diálogo Criar a partir do aplicativo de função é exibida.

  5. Para selecionar seu aplicativo de função, selecione Procurar. O painel Importar Funções do Azure é exibido.

  6. No campo Configurar configurações necessárias, selecione Selecionar.

    Screenshot of the Import Azure Functions dialog box with Configure required settings field and Select button highlighted.(.. /media/5-import-azure-function-app-03-expanded.png#lightbox)

    O painel Selecionar Aplicativo de Função do Azure é exibido.

  7. Selecione OrderFunctionNNNNNNN e, em seguida, selecione Selecionar. O painel Importar Funções do Azure reaparece com seu aplicativo de função OrderDetails configurado.

  8. Verifique se OrderDetails está marcado e, na parte inferior da página, selecione Selecionar para adicionar a função. A caixa de diálogo Criar a partir do aplicativo de função é exibida.

  9. Substitua o valor no campo de sufixo URL da API por ordens. Observe como essa alteração atualiza a URL base. Selecione Criar para criar sua API.

    Screenshot of the Create from Function App dialog populated with details of the Orders function.

    O serviço de Gerenciamento de API da Loja Online exibe a guia Design com todas as APIs disponíveis (GET, POST) para OrderDetails.

Testar o ponto final das encomendas da OnlineStore no portal

Agora que adicionamos OrderDetails à nossa API, vamos testá-la usando as ferramentas de Gerenciamento de API no portal do Azure.

  1. Na guia Design de APIs OrderFunctionNNNNNN, em Todas as operações, selecione GET OrderDetails e, em seguida, selecione a guia Teste.

  2. Na seção Parâmetros de consulta, selecione Adicionar parâmetro e digite o nome no campo NOME e Chiba e no campo VALOR. Selecione Enviar.

  3. A guia Mensagem de resposta HTTP mostra a solicitação HTTP bem-sucedida (HTTP/1.1/ 200 OK), juntamente com um objeto JSON mostrando uma ID do pedido, juntamente com o nome do cliente, o preço total do pedido e o status de envio.

  4. Role para cima até a seção de solicitação HTTP, observe que a solicitação foi enviada para um subdomínio e subdiretório dentro do domínio azure-api.net. Esse local difere do domínio de host azurewebsites.net .

Testar a API combinada

Podemos utilizar a ferramenta de linha de comandos curl para submeter pedidos à nossa API, cURL é ideal porque podemos incluir a chave de assinatura correta com uma solicitação. Uma solicitação também precisa do local da API, que é hospedada no Gerenciamento de API do Azure e, nesse caso, consiste nas funções Produtos e Pedidos.

  1. No menu de recursos do Azure ou em Página Inicial, selecione Todos os recursos.

  2. Classifique os recursos por Tipo e selecione o serviço de Gerenciamento de API da Loja Online . O serviço de Gerenciamento de API para OnlineStore é exibido.

  3. Na seção Essenciais, passe o mouse sobre a URL do Gateway e selecione o ícone Copiar para área de transferência.

  4. No Azure Cloud Shell à direita, vamos definir algumas variáveis. Execute o seguinte comando, substituindo o espaço reservado <paste URL here> pelo valor de URL que você copiou para a área de transferência e pressione Enter. Esse valor define a variável de gateway.

    GATEWAY_URL=<paste URL here>
    
  5. No Azure, no menu do serviço de Gerenciamento de API da Loja Online, role para baixo até API e selecione Assinaturas. O painel Assinaturas é exibido para sua instância de Gerenciamento de API da Loja Online.

  6. Para a subscrição de acesso total incorporada, selecione as reticências ... na extremidade direita dessa linha e, em seguida, selecione Mostrar/ocultar teclas no menu de contexto. A chave primária e a chave secundária da API são exibidas.

  7. No campo Chave primária, selecione o ícone Copiar para área de transferência.

  8. No Cloud Shell, execute o seguinte comando, substituindo o espaço reservado pelo valor na área de transferência e pressione Enter.

    SUB_KEY=<paste key here>
    
  9. Agora podemos solicitar detalhes de um pedido e de um produto consultando o mesmo serviço de Gerenciamento de API:

    1. Para solicitar detalhes para um cliente chamado Henri, execute o seguinte comando no Cloud Shell:

       curl -X GET "$GATEWAY_URL/orders/OrderDetails?name=Henri" -H "Ocp-Apim-Subscription-Key:$SUB_KEY"
      

      A resposta contém um bloco de código JSON com detalhes do pedido mostrando que o pedido 56224 foi enviado para Pascale Henri. Você também pode tentar o comando com os nomes Chiba e Barriclough para resultados diferentes.

    2. Para solicitar os detalhes de um produto com uma id de 2, execute o seguinte comando no Cloud Shell:

       curl -X GET "$GATEWAY_URL/products/ProductDetails?id=2" -H "Ocp-Apim-Subscription-Key:$SUB_KEY"
      

      A resposta contém um bloco de código JSON com os detalhes de um produto. Você também pode tentar o comando com valores id de 1 e 3 para resultados diferentes.

Observe que ambas as funções agora podem ser chamadas por meio de pontos de extremidade dentro do domínio azure-api.net (conforme definido pelo GATEWAY_URL), que é o domínio usado pelo Gerenciamento de API do Azure. Em outros módulos do Learn, você pode aprender a aplicar políticas, configurações de segurança, caches externos e outros recursos às funções em um API Management Gateway. Um gateway fornece um ponto de controle central, onde você pode gerenciar vários microsserviços sem alterar seu código.