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

Concluído

Lembre-se de que quer integrar todos os microsserviços separados da Loja Online, que são as Funções do Azure, numa única API. Já adicionou a função Produtos a uma nova instância da Gestão de API. Agora, quer adicionar mais funções.

Neste exercício, vai adicionar a aplicação de funções Encomendas à API e utilizar a ferramenta curl para testar o sistema integrado.

Testar a função OrderDetails

Antes de adicionarmos a aplicação de função Ordens à API, vamos testar a função que acolhe - OrderDetails.

  1. No menu do portal do Azure ou a partir da Home page, selecione Todos os recursos. O painel de todos os recursos aparece.

  2. Selecione a App de Função cujo nome começa com OrderFunction. O painel de aplicação de funções aparece para esta função de encomenda.

  3. No painel de menus médio, em Funções, selecione Funções. O painel de funções aparece para a sua App de Função.

  4. Na lista, selecione OrderDetails. O painel de funções aparece para OrderDetails.

  5. No painel de menus esquerdo, em Programador, selecione Code + Test, e na barra de menu superior, selecione Teste/Run.

    É apresentado o código de detalhes da encomenda.

    Aparece o painel de entrada/saída.

  6. No separador Entrada, no método HTTP dropdown, selecione GET, e, em seguida, em Consulta, selecione Adicionar o parâmetro.

  7. No campo Nome, insira o nome, e no campo Valor, insira Chiba. O valor é sensível a casos.

  8. Selecione Executar, examine os resultados no separador Saída e, em seguida, selecione Fechar.

    É apresentada a página Adicionar uma nova opção de funções.

    O painel de resultados apresenta os detalhes de uma encomenda no formato JSON. Também pode testar a função com os nomes “Henri” e “Barriclough” para encomendas diferentes.

  9. Na barra de menu superior do painel de funções para OrderDetails, selecione Obter URL de função. Observe que o URL é o nome da função dentro do domínio azurewebsites.net. Anote este URL para comparação posterior.

Adicione outra app de função à API existente

Neste passo, vamos adicionar a função Encomenda ao recurso da Gestão de API que criámos no exercício anterior. Nesse exercício, utilizámos a interface da Gestão de API a partir da IU da aplicação de funções. Aqui, vamos navegar para a nossa instância da Gestão de API através do painel de navegação principal do portal, apenas para demonstrar que ambas as abordagens estão disponíveis.

  1. No menu do portal Azure, ou na página Inicial, selecione Todos os recursos. O painel de todos os recursos aparece.

  2. Selecione a App de Função cujo nome começa com OrderFunction.

  3. Na barra de menus esquerda, em API, selecione API Management.

  4. Na barra de menu superior, selecione Ir para a API Management.

  5. No painel de menus esquerdo, em APIs, selecione APIs. Na página APIs para o seu serviço de Gestão de API, no painel de menus esquerdo, selecione Add API.

  6. Na nova janela API, selecione App de Função.

    Captura de ecrã a mostrar a opção Adicionar uma Nova API (ecrã), com uma nota de aviso a realçar a opção Aplicação da Funções do Azure.

    Aparece o diálogo "Create from Function App".

  7. Para selecionar a função, selecione Procurar e, em seguida, selecione a secção Aplicação de Funções.

    Screenshot das funções de Import Azure com a configuração da aplicação de funções necessária Definições opção selecionada.

    Aparece o painel Select Azure Function App.

  8. Na lista de Aplicações de Funções, selecione OrderFunction e, em seguida, selecione Selecionar.

  9. Certifique-se de que OrderDetails está marcada e, em seguida, selecione Selecionar. A caixa de diálogo "Create from Function App" reaparece.

  10. No campo sufixo url da API, introduza as ordens e, em seguida, selecione Criar.

    Captura de ecrã a mostrar a caixa de diálogo Criar a partir da Aplicação de Funções preenchida com detalhes da função Encomendas.

Testar o ponto final das encomendas da OnlineStore no portal

Agora que adicionámos OrderDetails à nossa API, vamos testá-la com as ferramentas de Gestão de API no portal do Azure.

  1. Na janela APIs para a sua página de serviço de Gestão API que aparece na secção anterior, no painel de menus esquerdo, em todas as APIs, certifique-se de que a API de Funcionamento da Ordem está selecionada.

  2. Na lista de operações, selecione GET OrderDetails e, em seguida, selecione o separador Teste.

  3. Em 'OrderDetails' na secção parâmetros de consulta, selecione Adicionar o parâmetro.

  4. No campo NAME, insira o nome, e no campo VALOR, insira Chiba, e, em seguida, selecione Enviar.

  5. Na secção de resposta HTTP, note que os detalhes de uma encomenda foram devolvidos em formato JSON. Além disso, note que o pedido HTTP foi enviado para um destino dentro do domínio azure-api.net. Esta localização é diferente do domínio azurewebsites.net, onde a aplicação de funções original está alojada.

Teste a API combinada

Podemos utilizar a ferramenta de linha de comandos curl para submeter pedidos à nossa API, o que é ideal porque podemos utilizá-la para incluir a chave de subscrição correta com os nossos pedidos. Para submeter pedidos, também precisamos da localização da API, que está alojada na Gestão de API do Azure e que consiste nas funções Produtos e Encomendas.

  1. No portal Azure, selecione Todos os recursos e, em seguida, selecione a sua instância de serviço de Gestão API Azure (App de Função de Função deFuncção de Produto).

  2. No painel de visão geral, selecione o ícone copy para a área de transferência à direita do valor URL.

  3. Em Cloud Shell, executar o seguinte comando, colar o valor URL gateway que copiou no lugar do token e, em seguida, premir Enter.

    GATEWAY_URL=<paste the URL here>
    
  4. No portal Azure,na barra de menus esquerdo, em API, selecione API Management, e no painel de menus superior, selecione Ir para a API Management.

  5. No painel de menus esquerdo, em APIs, selecione Subscrições. A página de Subscrições aparece para a sua instância de serviço.

  6. Para a extrema direita da subscrição de acesso total incorporado, selecione a elipse... e, em seguida, selecione as teclas Show/hide.

  7. À direita do campo de chave primária, selecione o ícone Copy para a área de transferência.

  8. Na Cloud Shell, executar o seguinte comando, colar o valor PRIMARY KEY que copiou no lugar do token e, em seguida, premir Enter.

    SUB_KEY=<paste the key here>
    
  9. Para solicitar os detalhes de um produto, executar o seguinte comando em Cloud Shell.

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

    O comando devolve os detalhes de um produto. Também pode tentar o comando com os IDs 1 e 3 para obter resultados diferentes.

  10. Para solicitar os detalhes de uma ordem, execute o seguinte comando e, em seguida, pressione Enter.

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

    O comando devolve os detalhes de uma encomenda. Também pode tentar o comando com os nomes “Chiba” e “Barriclough” para obter diferentes resultados.

Repare que ambas as funções podem ser chamadas através de pontos finais no domínio azure-api.net, que é o domínio utilizado pela Gestão de API do Azure. Também podemos aceder às funções com a mesma chave de subscrição, porque essa chave concede acesso ao gateway de Gestão de API. Veja outros módulos do Microsoft Learn para saber como aplicar políticas, definições de segurança, caches externas e outras funcionalidades a todas as funções no Gateway de Gestão de API. O gateway fornece um ponto de controlo central, onde pode gerir vários microsserviços sem alterar o código.