Guia de início rápido: criar uma função Python no Azure a partir da linha de comando

Neste artigo, você usa ferramentas de linha de comando para criar uma função Python que responde a solicitações HTTP. Depois de testar o código localmente, vai implementá-lo no ambiente sem servidor das Funções do Azure.

Este artigo usa o modelo de programação Python v2 para o Azure Functions, que fornece uma abordagem baseada em decorador para criar funções. Para saber mais sobre o modelo de programação Python v2, consulte o Guia de Referência do Desenvolvedor

A conclusão deste início rápido incorre num pequeno custo de alguns cêntimos USD ou menos na sua conta do Azure.

Há também uma versão baseada em código do Visual Studio deste artigo.

Configure seu ambiente local

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

Instalar as Ferramentas de Núcleo de Funções do Azure

A maneira recomendada de instalar o Core Tools depende do sistema operacional do seu 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 pacotes, consulte o Leiame das Ferramentas Principais.

Transfira e execute o instalador das Ferramentas Principais, com base na sua versão do Windows:

Se você usou anteriormente o instalador do Windows (MSI) para instalar o Core Tools no Windows, você deve desinstalar a versão antiga de Adicionar remover programas antes de instalar a versão mais recente.

Use o func --version comando 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 seguintes comandos para criar e ativar um ambiente virtual chamado .venv. Certifique-se de que está a utilizar uma versão do Python suportada pelo Azure Functions.

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

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

sudo apt-get install python3-venv

Execute todos os comandos subsequentes 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 a um gatilho específico. Todas as funções em um projeto compartilham as mesmas configurações locais e de hospedagem.

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

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

    func init --python
    

    O ambiente agora contém vários arquivos para o 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 seu projeto usando o seguinte comando, onde o --name argumento é o nome exclusivo da sua função (HttpExample) e o --template argumento especifica o gatilho da função (HTTP).

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

    Se solicitado, escolha a opção ANÔNIMO . 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 sua função iniciando o host de tempo de execução local do Azure Functions a partir da pasta LocalFunctionProj .

    func start
    

    No final da saída, as seguintes linhas devem aparecer:

    Screenshot of terminal window output when running function locally.

    Nota

    Se HttpExample não aparecer como mostrado acima, você provavelmente iniciou o host de fora da pasta raiz do projeto. Nesse caso, use Ctrl+C para parar o host, vá para a pasta raiz do projeto e execute o comando anterior novamente.

  2. Copie o URL da sua função HTTP desta saída para um navegador e anexe a cadeia de caracteres ?name=<YOUR_NAME>de consulta, tornando o URL completo como http://localhost:7071/api/HttpExample?name=Functions. O navegador deve exibir uma mensagem de resposta que ecoe o valor da cadeia de caracteres de consulta. O terminal no qual você iniciou seu projeto também mostra a saída de log à medida que você faz solicitações.

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

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

Antes de implantar seu código de 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ção, que fornece o ambiente para executar seu código de função. Um aplicativo de função mapeia 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. A CLI do Azure e o PowerShell são suportados.

  1. Se necessário, entre no Azure.

    az login
    

    O az login comando inicia sessão na sua conta do Azure.

  2. Crie um grupo de recursos nomeado AzureFunctionsQuickstart-rg na região escolhida.

    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 az account list-locations .

    Nota

    Não é possível hospedar aplicativos Linux e Windows no mesmo grupo de recursos. Se você tiver um grupo de recursos existente nomeado AzureFunctionsQuickstart-rg com um aplicativo de função ou aplicativo Web do Windows, deverá usar um grupo de recursos diferente.

  3. Crie uma conta de armazenamento de uso geral em seu grupo de recursos e 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 apropriado para você e exclusivo no Armazenamento do Azure. Os nomes devem conter apenas números de 3 a 24 caracteres e letras minúsculas. Standard_LRS especifica uma conta de uso geral suportada pelo Functions.

    A conta de armazenamento incorre em apenas alguns centavos (USD) para este início rápido.

  4. Crie o aplicativo de função 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ção no Azure. Você deve fornecer --os-type linux porque as funções Python só são executadas no Linux.

    No exemplo anterior, substitua <APP_NAME> por um nome globalmente exclusivo apropriado para você. O <APP_NAME> também é o subdomínio padrão para o aplicativo de função. Certifique-se de que o valor definido para <PYTHON_VERSION> é uma versão suportada pelo Functions e é a mesma versão que você usou durante o desenvolvimento local.

    Este comando cria um aplicativo de função em execução em seu tempo de execução de idioma especificado no Plano de Consumo do Azure Functions, que é gratuito para a quantidade de uso que você incorre aqui. O comando também cria uma instância associada do Azure Application Insights no mesmo grupo de recursos, com a qual você pode monitorar seu aplicativo de função e exibir logs. Para obter mais informações, consulte Monitorar o Azure Functions. A instância não incorre em custos até que você a ative.

Implantar o projeto de função no Azure

Depois de criar com êxito seu aplicativo de função no Azure, você está pronto para implantar seu projeto de funções locais usando o comando func azure functionapp publishing .

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

func azure functionapp publish <APP_NAME>

O comando publish mostra resultados semelhantes à seguinte saída (truncada para simplificar):

...

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

Invoque a função no Azure

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

Copie o URL Invoke completo mostrado na saída do comando para uma barra de endereço do publish navegador, anexando o parâmetro ?name=Functions query . O navegador deve exibir uma saída semelhante à de quando você executou a função localmente.

Clean up resources (Limpar recursos)

Se você continuar para a próxima etapa e adicionar uma vinculação de saída de fila do Armazenamento do Azure, mantenha todos os seus recursos no lugar, pois você aproveitará o que já fez.

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

az group delete --name AzureFunctionsQuickstart-rg

Próximos passos

Está a ter problemas com este artigo?