Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Use Durable Functions, uma funcionalidade do Azure Functions, para escrever funções com estado num ambiente serverless. Instala-se Durable Functions ao instalar a extensão Azure Functions no Visual Studio Code. A extensão gerencia o estado, os pontos de verificação e as reinicializações em seu aplicativo.
Neste Quickstart, utilizas a extensão Durable Functions no Visual Studio Code para criar e testar localmente uma aplicação Durable Functions "hello world" no Azure Functions. A aplicação Durable Functions coordena e liga em cadeia chamadas a outras funções. Depois, publicas o código da função no Azure. As ferramentas que utiliza estão disponíveis através da extensão Visual Studio Code.
Nota
Este quickstart utiliza o modelo de programação v2 baseado em decoradores para Python. Esse modelo oferece uma estrutura de arquivos mais simples e é mais centrado em código em comparação com a v1.
Pré-requisitos
Para concluir este guia de início rápido, necessita de:
Visual Studio Code instalado.
A extensão Azure Functions do Visual Studio Code foi instalada.
A versão mais recente do Azure Functions Core Tools instalada.
Uma ferramenta de teste HTTP que mantém seus dados seguros. Para obter mais informações, consulte Ferramentas de teste HTTP.
Uma subscrição do Azure para implementar uma aplicação no Azure.
Python versões 3.7, 3.8, 3.9 ou 3.10 instaladas.
Se não tiver uma conta Azure, crie uma conta free antes de começar.
Criar o seu projeto local
Nesta secção, utiliza o Visual Studio Code para criar um projeto local do Azure Functions.
No Visual Studio Code, selecione F1 (ou selecione Ctrl/Cmd+Shift+P) para abrir a paleta de comandos. No prompt (
>), entre e depois selecione Azure Functions: Criar Novo Projeto.
Selecione Procurar. Na caixa de diálogo Selecionar pasta, vá para uma pasta a ser usada para seu projeto e escolha Selecionar.
Nos prompts, forneça as seguintes informações:
Pedido Ação Descrição Selecione um idioma para seu projeto de aplicativo de função Selecione Python. Cria um projeto local de Funções Python. Selecione uma versão Selecione Azure Functions v4. Você verá essa opção somente quando o Core Tools ainda não estiver instalado. Nesse caso, o Core Tools é instalado na primeira vez que você executa o aplicativo. Python versão Selecione Python 3,7, Python 3,8, Python 3,9, ou Python 3,10. O Visual Studio Code cria um ambiente virtual usando a versão que seleciona. Selecione um modelo para a primeira função do seu projeto Selecione Ignorar por enquanto. Selecione como gostaria de abrir o seu projeto Selecione Abrir na janela atual. Abre o Visual Studio Code na pasta que selecionaste.
O Visual Studio Code instala o Azure Functions Core Tools se for necessário para criar um projeto. Ele também cria um projeto de aplicativo de função em uma pasta. Este projeto contém os arquivos de configuração host.json e local.settings.json .
Um arquivo requirements.txt também é criado na pasta raiz. Especifica os pacotes Python necessários para executar a tua aplicação de funções.
Instale azure-functions-durable a partir do repositório PyPI
Quando crias o projeto, a extensão Azure Functions Visual Studio Code cria automaticamente um ambiente virtual com a versão Python selecionada. Depois tens de ativar o ambiente virtual num terminal e instalar algumas dependências exigidas pelo Azure Functions e Durable Functions.
Abra o requirements.txt no editor e altere seu conteúdo para o seguinte código:
azure-functions azure-functions-durableNa pasta atual, abra o terminal integrado do editor (Ctrl+Shift+').
No terminal integrado, ative o ambiente virtual na pasta atual, dependendo do seu sistema operacional.
Em seguida, no terminal integrado onde o ambiente virtual é ativado, use pip para instalar os pacotes que você definiu.
python -m pip install -r requirements.txt
Nota
Você deve instalar azure-functions-durable v1.2.4 ou superior.
Crie as suas funções
A aplicação Durable Functions mais básica tem três funções:
- Função Orquestrador: um fluxo de trabalho que orquestra outras funções.
- Função de atividade: uma função que é chamada pela função orquestradora, executa trabalho e, opcionalmente, retorna um valor.
- Função Client: Uma função regular na Azure que inicia uma função de orquestração. Este exemplo usa uma função acionada por HTTP.
Código de exemplo
Para criar uma aplicação Durable Functions básica usando estes três tipos de funções, substitua o conteúdo de function_app.py pelo seguinte código Python:
import azure.functions as func
import azure.durable_functions as df
myApp = df.DFApp(http_auth_level=func.AuthLevel.ANONYMOUS)
# An HTTP-triggered function with a Durable Functions client binding
@myApp.route(route="orchestrators/{functionName}")
@myApp.durable_client_input(client_name="client")
async def http_start(req: func.HttpRequest, client):
function_name = req.route_params.get('functionName')
instance_id = await client.start_new(function_name)
response = client.create_check_status_response(req, instance_id)
return response
# Orchestrator
@myApp.orchestration_trigger(context_name="context")
def hello_orchestrator(context):
result1 = yield context.call_activity("hello", "Seattle")
result2 = yield context.call_activity("hello", "Tokyo")
result3 = yield context.call_activity("hello", "London")
return [result1, result2, result3]
# Activity
@myApp.activity_trigger(input_name="city")
def hello(city: str):
return f"Hello {city}"
Analise a tabela a seguir para obter uma explicação de cada função e sua finalidade no exemplo:
| Método | Descrição |
|---|---|
hello_orchestrator |
A função orquestrador, que descreve o fluxo de trabalho. Nesse caso, a orquestração é iniciada, invoca três funções em uma sequência e, em seguida, retorna os resultados ordenados de todas as três funções em uma lista. |
hello |
A função de atividade, que executa o trabalho orquestrado. A função retorna uma saudação simples à cidade passada como argumento. |
http_start |
Uma função acionada por HTTP que inicia uma instância da orquestração e retorna uma check status resposta. |
Nota
Durable Functions também suporta Python modelo de programação v2 blueprints. Para utilizar projetos, regista as funções do projeto usando a azure-functions-durableBlueprintclasse. Você pode registrar o plano resultante como de costume. Pode usar o nosso exemplo como exemplo.
Configurar emulador de armazenamento
Podes usar o Azurite, um emulador para Azure Storage, para testar a função localmente. Em local.settings.json, defina o valor para AzureWebJobsStorageUseDevelopmentStorage=true como neste exemplo:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "python"
}
}
Para instalar e começar a executar a extensão Azurite em Visual Studio Code, na paleta de comandos, introduza Azurite: Start e selecione Enter.
Pode usar outras opções de armazenamento para a sua aplicação Durable Functions. Para mais informações sobre opções e benefícios de armazenamento, consulte Durable Functions fornecedores de armazenamento.
Testar localmente a função
O Azure Functions Core Tools dá-lhe a capacidade de executar um projeto Azure Functions no seu computador local de desenvolvimento. Se não estiver instalado, é solicitado que instale estas ferramentas na primeira vez que inicia uma função no Visual Studio Code.
Para testar sua função, defina um ponto de interrupção no código da
hellofunção de atividade. Selecione F5 ou selecione Depurar: Iniciar depuração na paleta de comandos para iniciar o projeto de aplicativo de função. A saída das Ferramentas Principais aparece no painel do terminal.Nota
Para obter informações sobre depuração, consulte diagnósticos de Durable Functions.
No painel do terminal, copie o URL de endpoint da sua função acionada por HTTP.
Use seu navegador ou uma ferramenta de teste HTTP para enviar uma solicitação HTTP POST para o ponto de extremidade URL.
Substitua o último segmento pelo nome da função orquestradora (
hello_orchestrator). O URL deve ser semelhante ahttp://localhost:7071/api/orchestrators/hello_orchestrator.A resposta é o resultado inicial da função HTTP. Ele permite que você saiba que a orquestração durável foi iniciada com sucesso. Ainda não exibe o resultado final da orquestração. A resposta inclui alguns URLs úteis. Por enquanto, verifique o estado da orquestração.
Copie o valor do URL para
statusQueryGetUri, cole-o na barra de endereço do navegador e execute a solicitação. Você também pode continuar a usar sua ferramenta de teste HTTP para emitir a solicitação GET.A solicitação consulta o estado da instância de orquestração. Você deve ver que a instância terminou e que inclui as saídas ou resultados da função durável. É semelhante a este exemplo:
{ "name": "hello_orchestrator", "instanceId": "9a528a9e926f4b46b7d3deaa134b7e8a", "runtimeStatus": "Completed", "input": null, "customStatus": null, "output": [ "Hello Tokyo!", "Hello Seattle!", "Hello London!" ], "createdTime": "2020-03-18T21:54:49Z", "lastUpdatedTime": "2020-03-18T21:54:54Z" }Para interromper a depuração, no Visual Studio Code, selecione Shift+F5.
Depois de verificar se a função corre corretamente no seu computador local, é altura de publicar o projeto no Azure.
Iniciar sessão no Azure
Antes de poderes criar recursos do Azure ou publicar a tua aplicação, tens de iniciar sessão no Azure.
Se ainda não tiver iniciado sessão, selecione o ícone Azure na Barra de Atividades. Depois, em Resources, selecione Iniciar sessão em Azure.
Se já tiver sessão iniciada e visualizar as suas subscrições existentes, vá para a seção seguinte. Se ainda não tem uma conta Azure, selecione Criar uma Conta Azure. Os alunos podem selecionar Criar um Azure para a Conta dos Alunos.
Quando for solicitado no navegador, selecione a sua conta Azure e inicie sessão usando as credenciais da sua conta Azure. Se criar uma nova conta, pode iniciar sessão depois de a sua conta ser criada.
Depois de iniciar sessão com êxito, pode fechar a nova janela do browser. As subscrições que pertencem à sua conta Azure são exibidas na barra lateral.
Criar a aplicação de funções no Azure
Nesta secção, cria uma aplicação de funções no plano Flex Consumption juntamente com recursos relacionados na sua subscrição do Azure. Muitas das decisões de criação de recursos são tomadas para você com base em comportamentos padrão. Para obter mais controle sobre os recursos criados, você deve, em vez disso , criar seu aplicativo de função com opções avançadas.
No Visual Studio Code, selecione F1 para abrir a paleta de comandos. No prompt (
>), introduza e depois selecione Azure Functions: Criar Aplicação de Função em Azure.Nos prompts, forneça as seguintes informações:
Pedido Ação Selecionar subscrição Selecione a subscrição do Azure para usar. O prompt não aparece quando você tem apenas uma assinatura visível em Recursos. Insira um novo nome de aplicativo de função Insira um nome globalmente exclusivo que seja válido em um caminho de URL. O nome que inserires é validado para garantir que é único no Azure Functions. Selecione um local para novos recursos Selecione uma região do Azure. Para um melhor desempenho, selecione uma região perto de si. Apenas as regiões suportadas pelos planos Flex Consumption são apresentadas. Selecione uma pilha de tempo de execução Selecione a versão de idioma que você executa localmente no momento. Selecionar tipo de autenticação de recurso Selecione Identidade gerenciada, que é a opção mais segura para se conectar à conta de armazenamento de host padrão. No painel Azure: Activity Log, a extensão Azure mostra o estado dos recursos individuais à medida que são criados em Azure.
Quando a aplicação de funções é criada, os seguintes recursos relacionados são criados na sua subscrição do Azure. Os recursos são nomeados com base no nome que você inseriu para seu aplicativo de função.
- Um grupo de recursos, que é um contêiner lógico para recursos relacionados.
- Um aplicativo de função, que fornece o ambiente para executar seu código de função. Um aplicativo de função permite agrupar funções como uma unidade lógica para facilitar o gerenciamento, a implantação e o compartilhamento de recursos dentro do mesmo plano de hospedagem.
- Um plano do Azure App Service, que define o host subjacente para a sua aplicação de funções.
- Uma conta padrão Azure Storage, que é usada pelo anfitrião de Funções para manter o estado e outras informações sobre a sua aplicação de funções.
- Uma instância do Application Insights conectada ao aplicativo de função e que rastreia o uso de suas funções no aplicativo.
- Uma identidade gerenciada atribuída pelo usuário que é adicionada à função de Colaborador de Dados de Blob de Armazenamento na nova conta de armazenamento de host padrão.
Depois de criar a aplicação de funções, é apresentada uma notificação e o pacote de implementação é aplicado.
Gorjeta
Por defeito, os recursos do Azure exigidos pela tua aplicação de funções são criados com base no nome que inseres para a tua aplicação de funções. Por padrão, os recursos são criados com o aplicativo de função no mesmo novo grupo de recursos. Se você quiser personalizar os nomes dos recursos associados ou reutilizar recursos existentes, publique o projeto com opções avançadas de criação.
Implementar o projeto no Azure
Importante
Implementar para uma aplicação de funções existente sobrescreve sempre o conteúdo dessa aplicação no Azure.
Na paleta de comandos, enter e depois selecione Azure Functions: Deploy to Function App.
Selecione o aplicativo de função que você acabou de criar. Quando for solicitado para substituir implantações anteriores, selecione Implantar para transferir o seu código de função para o novo recurso da aplicação de funções.
Quando a implementação estiver concluída, selecione Ver Saída para visualizar os resultados da criação e implementação, incluindo os recursos Azure que criou. Se você perder a notificação, selecione o ícone de sino no canto inferior direito para vê-lo novamente.
Teste a sua função no Azure
Copie a URL do gatilho HTTP do painel de saída. A URL que chama sua função acionada por HTTP deve estar neste formato:
https://<functionappname>.azurewebsites.net/api/orchestrators/hello_orchestratorCole o novo URL para a solicitação HTTP na barra de endereço do navegador. Ao usar o aplicativo publicado, você pode esperar obter a mesma resposta de status que recebeu quando testou localmente.
A Python Durable Functions aplicação que criou e publicou usando Visual Studio Code está pronta a usar.
Limpar recursos
Se já não precisares dos recursos que criaste para completar o quickstart, para evitar custos relacionados na tua subscrição Azure, elimina o grupo de recursos e todos os recursos relacionados.
Conteúdos relacionados
- Aprenda sobre padrões comuns de aplicações de Durable Functions.
- Saiba mais sobre testes unitários