Exercício - Publicar uma função no Azure usando as Ferramentas Principais

Concluído

Neste exercício, você cria um aplicativo de função no Azure e publica nosso projeto.

Criar uma aplicação de funções

Importante

Os procedimentos nesta unidade dependem do trabalho realizado na Unidade 3. A área restrita para este módulo deve estar ativa. A sandbox dá-lhe acesso gratuito e temporário ao Azure e à CLI do Azure.

O Azure Cloud Shell já deve estar conectado à sua conta e configurado. Se a área restrita não estiver ativa, você perdeu o acesso, os recursos e a saída necessários de que precisava. Volte e complete a Unidade 3.

Antes de publicar seu código em um aplicativo de função usando as Ferramentas Principais, você precisa criar o aplicativo no Azure usando a CLI do Azure do Cloud Shell.

Para criar um aplicativo de função no Azure, execute os seguintes comandos no Azure Cloud Shell.

RESOURCEGROUP="<rgn>[sandbox resource group]</rgn>"
STORAGEACCT=learnstorage$(openssl rand -hex 5)
FUNCTIONAPP=learnfunctions$(openssl rand -hex 5)

az storage account create \
  --resource-group "$RESOURCEGROUP" \
  --name "$STORAGEACCT" \
  --kind StorageV2 \
  --location centralus

az functionapp create \
  --resource-group "$RESOURCEGROUP" \
  --name "$FUNCTIONAPP" \
  --storage-account "$STORAGEACCT" \
  --runtime node \
  --consumption-plan-location centralus \
  --functions-version 4

Eis o que estes comandos fazem:

  • As três primeiras linhas na parte superior criam variáveis de shell com valores que usamos repetidamente nos comandos a seguir.

    • Para o grupo de recursos, especifique o grupo criado para você pela área restrita. Este já deve ser o valor correto com base na sua sandbox atual.
    • Os nomes da conta de armazenamento e do aplicativo de função incluem $(openssl rand -hex 5), que gera uma cadeia de caracteres aleatória de cinco caracteres, para garantir que os nomes atendam ao requisito de serem globalmente exclusivos, bem como outros requisitos de nomenclatura de serviço.
  • az storage account create cria uma conta de armazenamento do Azure que o aplicativo de função usa. Uma conta de armazenamento é um recurso separado do Azure que deve ser criado antes que o aplicativo de função possa ser criado.

  • az functionapp create cria a aplicação de funções. Seu novo aplicativo usa o node tempo de execução (JavaScript), que é executado sem servidor em um plano de hospedagem de consumo.

Nota

O az functionapp create comando também tenta criar automaticamente uma instância do Application Insights para monitorar execuções em seu aplicativo de função. Como os recursos do Application Insights baseados em espaço de trabalho não podem ser hospedados atualmente na área restrita, suas funções funcionam, mas os logs de execução não são enviados para o Application Insights.

Publicar no Azure

Agora que você criou seu aplicativo de função no Azure, pode publicar o projeto nele com as Ferramentas Principais.

Execute os seguintes comandos no Cloud Shell para publicar. Execute cd primeiro para se certificar de que ainda está na pasta do projeto de funções antes de publicar.

cd ~/loan-wizard
func azure functionapp publish "$FUNCTIONAPP" --force

Nota

Se este comando apresentar um erro a indicar que não consegue encontrar a sua aplicação, aguarde dois minutos e tente novamente. As novas aplicações de funções demoram alguns segundos a ser detetáveis pelo Core Tools após a sua criação.

Além disso, você está anexando --force ao comando para atualizar a incompatibilidade de versão do aplicativo de função.

Ao contrário do exercício anterior, em que você hospedou temporariamente sua função localmente a partir das Ferramentas Principais, sua função agora está ativa na Web. Ele permanece disponível globalmente até que a sandbox para este tutorial expire. Como o ponto de extremidade HTTP foi definido com um nível de anonymous autorização, ele pode ser acessado por qualquer pessoa na Web.

Executar a função

Sua função agora está publicada no Azure e pode ser chamada de qualquer lugar. Como uma função acionada por HTTP que responde a solicitações GET, ela pode ser executada de qualquer navegador.

  1. Execute o seguinte comando para obter a URL da solicitação:

    func azure functionapp list-functions "$FUNCTIONAPP" --show-keys
    
  2. Cole o URL da saída em uma nova guia do navegador. Você vê a mesma saída que observou quando executou a função localmente sem fornecer os parâmetros corretos da cadeia de caracteres de consulta. Nenhuma chave é incluída na saída quando você usa um nível de anonymous autorização.

  3. Adicione ?principal=5000&rate=.035&term=36 ao final do URL e selecione Enter. Certifique-se de preservar o code parâmetro, se presente. O resultado retornado é 6300.000000000001, como esperado.