Início Rápido: Criar uma função no Azure com Python com o Visual Studio Code

Neste artigo, vai utilizar o Visual Studio Code para criar uma função Python que responda a pedidos HTTP. Depois de testar o código localmente, implemente-o no ambiente sem servidor do Funções do Azure.

Este artigo abrange ambos os modelos de programação Python suportados por Funções do Azure. Utilize o seletor na parte superior para escolher o modelo de programação.

Nota

O modelo de programação Python v2 para Funções está atualmente em Pré-visualização. Para saber mais sobre o modelo de programação v2, consulte o Guia de Referência do Programador.

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

Também existe uma versão baseada na CLI deste artigo.

Configurar o ambiente

Antes de começar, certifique-se de que tem os seguintes requisitos em vigor:

  • A extensão Funções do Azure do Visual Studio Code, versão 1.8.1 ou posterior.

  • O emulador de armazenamento local da extensão Azurite V3 . Embora também possa utilizar uma conta de armazenamento real do Azure, este artigo pressupõe que está a utilizar o emulador Azurite.

Importante

Atualmente, as funções não suportam o desenvolvimento da função Python em dispositivos ARM64. Para desenvolver funções Python num Mac com um chip M1, tem de executar num ambiente x86 emulado. Para saber mais, veja emulação x86 no ARM64.

Criar o projeto local

Nesta secção, vai utilizar o Visual Studio Code para criar um projeto de Funções do Azure local no Python. Mais adiante neste artigo, irá publicar o seu código de função no Azure.

  1. Selecione o ícone do Azure na Barra de atividade. Em seguida, na área Área de Trabalho (local ), selecione o + botão e selecione Criar Função no menu pendente. Quando lhe for pedido, selecione Criar novo projeto.

    Captura de ecrã a mostrar a janela criar um novo projeto.

  2. Selecione a localização do diretório para a área de trabalho do projeto e selecione Selecionar. Deve criar uma nova pasta ou escolher uma pasta vazia para a área de trabalho do projeto. Não escolha uma pasta de projeto que já faça parte de uma área de trabalho.

  1. Forneça as seguintes informações nos pedidos:

    Prompt Seleção
    Escolha um idioma Selecione Python.
    Selecionar um interpretador python para criar um ambiente virtual Escolha o seu interpretador de Python preferido. Se não for apresentada uma opção, escreva o caminho completo para o binário do Python.
    Selecionar um modelo para a primeira função do projeto Selecione HTTP trigger.
    Indique um nome de função Introduza HttpExample.
    Nível de autorização Selecione Anonymous, o que permite que qualquer pessoa chame o seu ponto final de função. Para obter mais informações sobre o nível de autorização, veja Chaves de autorização.
    Selecione como pretende abrir o projeto Selecione Add to workspace.
  2. O Visual Studio Code utiliza as informações fornecidas e gera um projeto Funções do Azure com um acionador HTTP. Pode ver os ficheiros do projeto local no Explorador. Para obter mais informações sobre os ficheiros criados, veja Ficheiros de projeto gerados.

  1. Forneça as seguintes informações nos pedidos:

    Prompt Seleção
    Escolha um idioma Selecione Python (Programming Model V2).
    Selecionar um interpretador python para criar um ambiente virtual Escolha o seu interpretador de Python preferido. Se não for apresentada uma opção, escreva o caminho completo para o binário do Python.
    Selecione como pretende abrir o projeto Selecione Add to workspace.
  2. O Visual Studio Code utiliza as informações fornecidas e gera um projeto Funções do Azure.

  3. Abra o ficheiro de projeto gerado function_app.py , que contém as suas funções.

  4. Anule o compromisso da test_function função, que é uma função acionada por HTTP.

  5. Substitua a chamada do app.route() método pelo seguinte código:

    @app.route(route="hello", auth_level=func.AuthLevel.ANONYMOUS)
    

    Este código permite que o ponto final da função HTTP seja chamado no Azure sem ter de fornecer chaves de Autorização. A execução local não requer chaves de autorização.

    O código de função deverá ter o seguinte exemplo:

    app = func.FunctionApp()
    @app.function_name(name="HttpTrigger1")
    @app.route(route="hello", auth_level=func.AuthLevel.ANONYMOUS)
    def test_function(req: func.HttpRequest) -> func.HttpResponse:
        logging.info('Python HTTP trigger function processed a request.')
    
        name = req.params.get('name')
        if not name:
            try:
                req_body = req.get_json()
            except ValueError:
                pass
            else:
                name = req_body.get('name')
    
        if name:
            return func.HttpResponse(f"Hello, {name}. This HTTP triggered function executed successfully.")
        else:
            return func.HttpResponse(
                "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.",
                status_code=200
            ) 
    
  6. Abra o ficheiro de projeto local.settings.json e atualize a AzureWebJobsStorage definição como no exemplo seguinte:

    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    

    Isto indica ao anfitrião de Funções locais para utilizar o emulador de armazenamento para a ligação de armazenamento atualmente exigida pelo modelo v2. Quando publicar o seu projeto no Azure, irá utilizar a conta de armazenamento predefinida. Se estiver a utilizar uma conta de Armazenamento do Azure, defina a cadeia de ligação da conta de armazenamento aqui.

Iniciar o emulador

  1. No Visual Studio Code, prima F1 para abrir a paleta de comandos. Na paleta de comandos, procure e selecione Azurite: Start.

  2. Verifique a barra inferior e verifique se os serviços de emulação do Azurite estão em execução. Em caso afirmativo, agora pode executar a sua função localmente.

Executar a função localmente

O Visual Studio Code integra-se nas ferramentas Funções do Azure Core para lhe permitir executar este projeto no seu computador de desenvolvimento local antes de publicar no Azure.

  1. Para iniciar a função localmente, prima F5 ou o ícone Executar e Depurar na Barra de atividade do lado esquerdo. O painel Terminal apresenta a Saída das Ferramentas Principais. A sua aplicação é iniciada no painel Terminal . Pode ver o ponto final do URL da função acionada por HTTP em execução localmente.

    Captura de ecrã a mostrar a saída do VS Code da função local.

    Se tiver problemas em execução no Windows, certifique-se de que o terminal predefinido do Visual Studio Code não está definido como WSL Bash.

  2. Com as Ferramentas Principais ainda em execução no Terminal, selecione o ícone do Azure na barra de atividade. Na área Área de Trabalho, expandaFunçõesde Projeto> Local. Clique com o botão direito do rato (Windows) ou Ctrl - clique (macOS) na nova função e selecione Executar Função Agora....

    Executar a função agora a partir do Visual Studio Code

  3. Em Introduzir corpo do pedido , verá o valor do corpo da mensagem de pedido de { "name": "Azure" }. Prima Enter para enviar esta mensagem de pedido para a sua função.

  4. Quando a função é executada localmente e devolve uma resposta, é emitida uma notificação no Visual Studio Code. As informações sobre a execução da função são apresentadas no painel Terminal .

  5. Com o painel Terminal focado, prima Ctrl + C para parar o Core Tools e desligar o depurador.

Depois de verificar que a função é executada corretamente no seu computador local, está na altura de utilizar o Visual Studio Code para publicar o projeto diretamente no Azure.

Iniciar sessão no Azure

Antes de poder publicar a aplicação, tem de iniciar sessão no Azure.

  1. Se ainda não tiver sessão iniciada, selecione o ícone do Azure na Barra de atividade. Em seguida, na área Recursos , selecione Iniciar sessão no Azure....

    Captura de ecrã a mostrar a janela de início de sessão no Azure no VS Code.

    Se já tiver sessão iniciada e conseguir ver as subscrições existentes, vá para a secção seguinte. Se ainda não tiver uma conta do Azure, selecione Criar e Conta do Azure.... Os estudantes podem escolher Criar e Conta do Azure para Estudantes....

  2. Quando lhe for pedido no browser, escolha a sua conta do Azure e inicie sessão com as credenciais da conta do Azure. Se criar uma nova conta, pode iniciar sessão depois de a sua conta ser criada.

  3. Depois de iniciar sessão com êxito, pode fechar a nova janela do browser. As subscrições que pertencem à sua conta do Azure são apresentadas na barra lateral.

Criar a aplicação de funções no Azure

Nesta secção, vai criar uma aplicação de funções e recursos relacionados na sua subscrição do Azure.

  1. Selecione o ícone do Azure na Barra de atividade. Em seguida, na área Recursos , selecione o + ícone e selecione a opção Criar Aplicação de Funções no Azure .

    Criar um recurso na sua subscrição do Azure

  2. Forneça as seguintes informações nos pedidos:

    Prompt Seleção
    Selecionar subscrição Escolha a subscrição a utilizar. Não verá este pedido quando tiver apenas uma subscrição visível em Recursos.
    Introduza um nome globalmente exclusivo para a aplicação de funções Escreva um nome válido num caminho de URL. O nome que escrever é validado para se certificar de que é exclusivo no Funções do Azure.
    Selecionar uma pilha de runtime Escolha a versão de idioma na qual tem estado a executar localmente.
    Selecionar uma localização para novos recursos Escolha uma região para a sua aplicação de funções.

    Na pré-visualização do modelo de programação v2 atual, escolha uma região a partir de uma das seguintes localizações: França Central, E.U.A. Centro-Oeste, Europa do Norte, Leste da China, E.U.A. Leste ou E.U.A. Centro-Norte.

    A extensão mostra o estado dos recursos individuais à medida que estão a ser criados no Azure no painel Azure: Registo de Atividades .

    Registo da criação de recursos do Azure

  3. Quando a criação estiver concluída, são criados os seguintes recursos do Azure na sua subscrição. Os recursos são nomeados com base no nome da sua aplicação de funções:

    • Um grupo de recursos, que é um contentor lógico para recursos relacionados.
    • Uma conta de Armazenamento do Azure padrão, que mantém o estado e outras informações sobre os seus projetos.
    • Uma aplicação de funções, que fornece o ambiente para executar o código de função. Uma aplicação de funções permite-lhe agrupar funções como uma unidade lógica para facilitar a gestão, implementação e partilha de recursos no mesmo plano de alojamento.
    • Um plano Serviço de Aplicações, que define o anfitrião subjacente para a sua aplicação de funções.
    • Uma instância do Application Insights ligada à aplicação de funções, que controla a utilização das suas funções na aplicação.

    Depois de criar a aplicação de funções, é apresentada uma notificação e o pacote de implementação é aplicado.

    Dica

    Por predefinição, os recursos do Azure exigidos pela sua aplicação de funções são criados com base no nome da aplicação de funções que fornecer. Por predefinição, também são criados no mesmo novo grupo de recursos com a aplicação de funções. Se quiser personalizar os nomes destes recursos ou reutilizar recursos existentes, tem de publicar o projeto com opções avançadas de criação .

Implementar o projeto no Azure

Importante

A implementação numa aplicação de funções existente substitui sempre o conteúdo dessa aplicação no Azure.

  1. Selecione o ícone do Azure na Barra de atividade e, em seguida, na área Área de Trabalho, selecione a pasta do projeto e selecione o botão Implementar...

    Implementar o projeto a partir da área de trabalho do Visual Studio Code

  2. Selecione Implementar na Aplicação de Funções..., escolha a aplicação de funções que acabou de criar e selecione Implementar.

  3. Após a conclusão da implementação, selecione Ver Saída para ver os resultados de criação e implementação, incluindo os recursos do Azure que criou. Se perder a notificação, selecione o ícone de sino no canto inferior direito para vê-lo novamente.

    Captura de ecrã a mostrar a janela Ver Saída.

Atualizar definições da aplicação

Para utilizar o modelo Python v2 na sua aplicação de funções, tem de adicionar uma nova definição de aplicação no Azure com o nome AzureWebJobsFeatureFlags com um valor de EnableWorkerIndexing. Esta definição já se encontra no ficheiro local.settings.json.

  1. No Visual Studio Code, prima F1 para abrir a paleta de comandos. Na paleta de comandos, procure e selecione Azure Functions: Add New Setting....

  2. Selecione a sua nova aplicação de funções, escreva AzureWebJobsFeatureFlags para o novo nome da definição da aplicação e prima Enter.

  3. Para o valor, escreva EnableWorkerIndexing e prima Enter.

A definição adicionada à nova aplicação de funções, que lhe permite executar o modelo v2 no Azure.

Executar a função no Azure

  1. De volta à área Recursos na barra lateral, expanda a sua subscrição, a sua nova aplicação de funções e Funções. Clique com o botão direito do rato (Windows) ou Ctrl - clique (macOS) na HttpExample função e selecione Executar Função Agora....

    Captura de ecrã a mostrar a execução da função no Azure a partir do Visual Studio Code.

  2. Em Introduzir corpo do pedido , verá o valor do corpo da mensagem de pedido de { "name": "Azure" }. Prima Enter para enviar esta mensagem de pedido para a sua função.

  3. Quando a função é executada no Azure e devolve uma resposta, é levantada uma notificação no Visual Studio Code.

Limpar os recursos

Quando continuar para o passo seguinte e adicionar um enlace de fila de Armazenamento do Azure à sua função, terá de manter todos os seus recursos implementados para basear-se no que já fez.

Caso contrário, pode utilizar os seguintes passos para eliminar a aplicação de funções e os respetivos recursos relacionados para evitar incorrer em custos adicionais.

  1. No Visual Studio Code, prima F1 para abrir a paleta de comandos. Na paleta de comandos, procure e selecione Azure: Open in portal.

  2. Selecione a sua aplicação de funções e prima Enter. A página da aplicação de funções é aberta no portal do Azure.

  3. No separador Descrição Geral , selecione a ligação com nome junto a Grupo de recursos.

    Captura de ecrã a mostrar a seleção do grupo de recursos a eliminar da página da aplicação de funções.

  4. Na página Grupo de recursos, reveja a lista de recursos incluídos e verifique se são os que pretende eliminar.

  5. Selecione Eliminar grupo de recursos e siga as instruções.

    A eliminação pode demorar alguns minutos. Quando terminar, é apresentada uma notificação durante alguns segundos. Também pode selecionar o ícone de sino na parte superior da página para ver a notificação.

Para obter mais informações sobre os custos das Funções, veja Estimar os custos do plano de Consumo.

Passos seguintes

Utilizou o Visual Studio Code para criar uma aplicação de funções com uma função simples acionada por HTTP. No próximo artigo, vai expandir essa função ao ligar ao Armazenamento do Azure. Para saber mais sobre como ligar a outros serviços do Azure, veja Adicionar enlaces a uma função existente no Funções do Azure.

Está a ter problemas? Avise-nos.