Início Rápido: criar uma função Python no Azure da linha de comando

Neste artigo, você usa ferramentas de linha de comando para criar uma função em Python que responde a solicitações HTTP. Após testar o código localmente, implante-o no ambiente sem servidor do Azure Functions.

Esse artigo utiliza o modelo de programação Python v2 para Azure Functions, que fornece uma abordagem baseada em decorador para a criação de funções. Para saber mais sobre o modelo de programação Python v2, veja o Guia de referência do desenvolvedor

A realização deste início rápido gera um pequeno custo de alguns centavos de dólar ou menos em sua conta do Azure.

Há também uma versão baseada no Visual Studio Code deste artigo.

Configurar o ambiente local

Antes de começar, você precisa ter os seguintes requisitos em vigor:

Instalação das ferramentas básicas do Azure Functions

A maneira recomendada de instalar o Core Tools depende do sistema operacional do computador de desenvolvimento local.

As etapas a seguir usam um instalador do Windows (MSI) para instalar o Core Tools v4.x. Para obter mais informações sobre outros instaladores baseados em pacote, confira o arquivo leiame do Core Tools.

Baixe e execute o instalador do Core Tools, com base em sua versão do Windows:

Se você usou anteriormente o instalador do Windows (MSI) para instalar o Core Tools no Windows, desinstale a versão antiga em Adicionar ou Remover Programas antes de instalar a versão mais recente.

Use o comando func --version para garantir que sua versão do Core Tools seja pelo menos 4.0.5530.

Criar e ativar um ambiente virtual

Em uma pasta adequada, execute os comandos a seguir para criar e ativar um ambiente virtual chamado .venv. Verifique se você está usando uma versão do Python com suporte do Azure Functions.

python -m venv .venv
source .venv/bin/activate

Se o Python não instalou o pacote venv na distribuição do Linux, execute o seguinte comando:

sudo apt-get install python3-venv

Você executará todos os comandos posteriores neste ambiente virtual ativado.

Criar uma função local

No Azure Functions, um projeto de função é um contêiner para uma ou mais funções individuais que respondem, cada uma, a um gatilho específico. Todas as funções em um projeto compartilham as configurações locais e de hospedagem.

Nesta seção, você cria um projeto de função e adiciona uma função disparada por HTTP.

  1. Execute o comando da func init seguinte maneira para criar um projeto de funções do Python v2 no ambiente virtual.

    func init --python
    

    Essa pasta contém vários arquivos do projeto, incluindo arquivos de configuração chamados local.settings.json e host.json. Como local.settings.json pode conter segredos baixados do Azure, o arquivo é excluído do controle do código-fonte por padrão no arquivo .gitignore.

  2. Adicione uma função ao projeto usando o comando a seguir, em que o argumento --name é o nome exclusivo da função (HttpExample) e o argumento --template especifica o gatilho da função (HTTP).

    func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
    

    Se solicitado, escolha a opção ANONYMOUS . func new adiciona um ponto de extremidade de gatilho HTTP nomeado HttpExample para o function_app.py arquivo, que é acessível sem autenticação.

Executar a função localmente

  1. Execute a função iniciando o host de runtime local do Azure Functions na pasta LocalFunctionProj.

    func start
    

    Perto do fim da saída, as seguintes linhas precisam ser exibidas:

    Screenshot of terminal window output when running function locally.

    Observação

    Se HttpExample não aparece conforme mostrado acima, é provável que você tenha iniciado o host fora da pasta raiz do projeto. Nesse caso, use CTRL+C para interromper o host, procure a pasta raiz do projeto e execute o comando anterior novamente.

  2. Copie a URL da função HTTP dessa saída para um navegador e acrescente a cadeia de caracteres de consulta ?name=<YOUR_NAME>, fazendo com que a URL completa seja http://localhost:7071/api/HttpExample?name=Functions. O navegador exibirá uma mensagem de resposta que retorna o valor da cadeia de consulta. O terminal em que você iniciou seu projeto também mostra a saída do log conforme você faz solicitações.

  3. Quando terminar, pressione CTRL + C e digite y para interromper o host de funções.

Criar recursos de suporte do Azure para a função

Antes de poder implantar o código da função no Azure, você precisa criar três recursos:

  • Um grupo de recursos, que é um contêiner lógico para recursos relacionados.
  • Uma conta de armazenamento, que mantém o estado e outras informações sobre seus projetos.
  • Um aplicativo de funções, que fornece o ambiente para a execução do código de função. Um aplicativo de funções é mapeado para seu projeto de função local e permite agrupar funções como uma unidade lógica para facilitar o gerenciamento, a implantação e o compartilhamento de recursos.

Use os comandos a seguir para criar esses itens. Tanto a CLI do Azure quanto o PowerShell são compatíveis.

  1. Se necessário, entre no Azure.

    az login
    

    O comando az login conecta você à conta do Azure.

  2. Crie um grupo de recursos chamado AzureFunctionsQuickstart-rg na região de sua escolha.

    az group create --name AzureFunctionsQuickstart-rg --location <REGION>
    

    O comando az group create cria um grupo de recursos. No comando acima, substitua <REGION> por uma região perto de você, usando um código de região disponível retornado do comando <REGION>.

    Observação

    Você não pode hospedar aplicativos Windows e Linux no mesmo grupo de recursos. Se você tiver um grupo de recursos chamado AzureFunctionsQuickstart-rg com um aplicativo de funções ou um aplicativo Web do Windows, você precisará usar um grupo de recursos diferente.

  3. Crie uma conta de armazenamento para uso geral no grupo de recursos e na região.

    az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group AzureFunctionsQuickstart-rg --sku Standard_LRS
    

    O comando az storage account create cria a conta de armazenamento.

    No exemplo anterior, substitua <STORAGE_NAME> por um nome que seja apropriado para você e exclusivo no Armazenamento do Azure. Os nomes precisam conter de três a 24 caracteres e só podem conter números e letras minúsculas. Standard_LRS especifica uma conta de uso geral, compatível com o Functions.

    A conta de armazenamento gera apenas alguns centavos de dólar para este início rápido.

  4. Crie o aplicativo de funções no Azure.

    az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location westeurope --runtime python --runtime-version <PYTHON_VERSION> --functions-version 4 --name <APP_NAME> --os-type linux --storage-account <STORAGE_NAME>
    

    O comando az functionapp create cria o aplicativo de funções no Azure. Você deve fornecer --os-type linux porque as funções do Python só são executadas no Linux.

    No exemplo anterior, substitua <APP_NAME> por um nome exclusivo globalmente que for adequado para você. O <APP_NAME> também é o domínio do DNS padrão para o aplicativo de funções. Verifique se o valor definido <PYTHON_VERSION> é uma versão compatível com o Functions e é a mesma versão usada durante o desenvolvimento local.

    Este comando cria um aplicativo de funções que executa o runtime da linguagem especificada no Plano de Consumo do Azure Functions, que é gratuito para o uso que você fará aqui. O comando também cria uma instância associada do Azure Application Insights no mesmo grupo de recursos, com o qual será possível monitorar o aplicativo de funções e exibir os logs. Para saber mais, consulte Monitorar Azure Functions. A instância não gera nenhum custo até você ativá-la.

Implantar o projeto de funções no Azure

Depois de criar com sucesso o aplicativo de funções no Azure, você estará pronto para implantar um projeto local de funções usando o comando func azure functionapp publish.

No exemplo a seguir, substitua <APP_NAME> pelo nome do aplicativo.

func azure functionapp publish <APP_NAME>

O comando de publicação mostra resultados semelhantes à seguinte saída (truncado para fins de simplicidade):

...

Getting site publishing info...
Creating archive for current directory...
Performing remote build for functions project.

...

Deployment successful.
Remote build succeeded!
Syncing triggers...
Functions in msdocs-azurefunctions-qs:
    HttpExample - [httpTrigger]
        Invoke url: https://msdocs-azurefunctions-qs.azurewebsites.net/api/httpexample

Invocar a função no Azure

Como a função usa um gatilho HTTP, você a invoca fazendo uma solicitação HTTP para sua URL no navegador ou usando uma ferramenta como curl.

Copie a URL de Invocação completa mostrada na saída do comando publish na barra de endereços de um navegador, acrescentando o parâmetro de consulta ?name=Functions. O navegador deverá exibir uma saída semelhante à que foi exibida quando você executou a função localmente.

Limpar os recursos

Se você prosseguir para a próxima etapa e adicionar uma associação de saída da fila do Armazenamento do Azure, mantenha todos os recursos, pois você se baseará no que já fez.

Caso contrário, use o comando a seguir para excluir o grupo de recursos e todos os recursos contidos nele para evitar custos adicionais.

az group delete --name AzureFunctionsQuickstart-rg

Próximas etapas

Problemas com este artigo?