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 Funções do Azure, para escrever funções com estado num ambiente serverless. O Durable Functions gere automaticamente o estado, os checkpoints e os reinícios na sua aplicação.
Neste quickstart, utiliza a extensão Funções do Azure para o Visual Studio Code para criar e testar localmente uma aplicação Durable Functions e, em seguida, publicá-la no Azure. A aplicação orquestra e encadeia chamadas para funções de atividade que devolvem saudações para um conjunto de nomes de cidades.
Importante
O conteúdo deste artigo muda com base na sua escolha do modelo de programação Node.js no seletor na parte superior da página. O modelo v4 está geralmente disponível e foi projetado para ter uma experiência mais flexível e intuitiva para desenvolvedores JavaScript e TypeScript. Saiba mais sobre as diferenças entre v3 e v4 no guia de migração.
Sugestão
O modelo de programação v4 é o padrão atual para Node.js Funções do Azure e é recomendado para novos projetos. O modelo v3 está disponível para aplicações existentes que ainda não foram migradas.
Pré-requisitos
Para concluir este arranque rápido, necessita de:
- Visual Studio Code instalado.
- A extensão Funções do Azure do Visual Studio Code foi instalada.
- A extensão Funções do Azure do Visual Studio Code, versão 1.10.4 ou posterior, está instalada.
- A versão mais recente do Funções do Azure Core Tools instalada.
- Funções do Azure Core Tools versão 4.0.5382 ou posterior instalada.
Uma ferramenta de teste HTTP que mantém seus dados seguros. Para obter mais informações, consulte Ferramentas de teste HTTP.
Uma assinatura do Azure. Para usar o Durable Functions, deve ter uma conta no Armazenamento do Azure.
- TypeScript versão 4.x+ instalado.
Se não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
Criar o seu projeto local
Nesta secção, utiliza o Visual Studio Code para criar um projeto local do Funções do Azure.
No Visual Studio Code, selecione F1 (ou selecione Ctrl/Cmd+Shift+P) para abrir a paleta de comandos. No prompt (
>), entre e depois selecione Funções do Azure: 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:
Prompt Action Descrição Selecione um idioma para seu projeto de aplicativo de função Selecione TypeScript. Cria um projeto local Node.js Functions usando TypeScript. Selecione um modelo de programação JavaScript Selecione Modelo V3. Define o modelo de programação v3. Selecione uma versão Selecione Funções do Azure 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. 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.
Nos prompts, forneça as seguintes informações:
Prompt Action Descrição Selecione um idioma para seu projeto de aplicativo de função Selecione TypeScript. Cria um projeto local Node.js Functions usando TypeScript. Selecione um modelo de programação JavaScript Selecione Modelo V4. Define o modelo de programação v4. Selecione uma versão Selecione Funções do Azure 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. 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 Funções do Azure 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 package.json e um arquivo tsconfig.json também são criados na pasta raiz.
Instale o pacote npm de funções duráveis
Para trabalhar com Durable Functions numa aplicação de função Node.js, utiliza o pacote durable-functions npm.
Use o menu View ou selecione Ctrl+Shift+' para abrir um novo terminal em Visual Studio Code.
Instala o pacote executando
npm install durable-functionsno diretório raiz da aplicação de funções.
Observação
Isto instala a durable-functions versão do pacote 3.x, que é a versão que suporta o modelo de programação v4. A versão principal do pacote npm não corresponde à versão do modelo de programação Node.js.
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 Cliente: Uma função regular na Azure que inicia uma função de orquestrador. Este exemplo usa uma função acionada por HTTP.
Função orquestradora
Usa um modelo para criar o código Durable Functions no seu projeto.
Na paleta de comandos, enter e depois selecione Funções do Azure: Criar Função.
Nos prompts, forneça as seguintes informações:
Prompt Action Descrição Selecione um modelo para a sua função Selecione Durable Functions orchestrator. Cria uma orquestração Durable Functions. Escolha um tipo de armazenamento durável Selecione Armazenamento do Azure (Padrão). Configura o back-end de armazenamento a utilizar na sua aplicação Durable Functions. Fornecer um nome de função Insira HelloOrchestrator. O nome da sua função.
Você adicionou um orquestrador para coordenar as funções de atividade. Abra o HelloOrchestrator/index.ts para ver a função do orquestrador. Cada chamada a context.df.callActivity invoca uma função de atividade chamada Hello.
Em seguida, você adiciona a função de atividade referenciada Hello .
Função de atividade
Na paleta de comandos, enter e depois selecione Funções do Azure: Criar Função.
Nos prompts, forneça as seguintes informações:
Prompt Action Descrição Selecione um modelo para a sua função Selecione atividade de Durable Functions. Cria uma função de atividade. Fornecer um nome de função Digite Olá. Um nome para a sua função de atividade.
Você adicionou a função de atividade Hello que é invocada pelo orquestrador. Abre Hello/index.ts para veres que recebe um nome como entrada e responde com uma saudação. Uma função de atividade é onde você executa "o trabalho real" em seu fluxo de trabalho, como fazer uma chamada de banco de dados ou executar algum cálculo não determinístico.
Finalmente, você adiciona uma função acionada por HTTP que inicia a orquestração.
Função de cliente (HTTP starter)
Na paleta de comandos, enter e depois selecione
Funções do Azure: Create Function.Nos prompts, forneça as seguintes informações:
Prompt Action Descrição Selecione um modelo para a sua função Selecione Durable Functions HTTP starter. Cria uma função inicial HTTP. Fornecer um nome de função Selecione DurableFunctionsHttpStart. O nome da sua função de atividade. Nível de autorização Selecione Anônimo. Para fins de demonstração, esse valor permite que a função seja chamada sem usar autenticação.
Você adicionou uma função acionada por HTTP que inicia uma orquestração. Abra DurableFunctionsHttpStart/index.ts para ver que ele usa client.startNew para iniciar uma nova orquestração. Em seguida, ele usa client.createCheckStatusResponse para retornar uma resposta HTTP contendo URLs que podem ser usadas para monitorar e gerenciar a nova orquestração.
Agora tens uma aplicação Durable Functions que podes executar localmente e implementar no Azure.
Um dos benefícios do modelo de programação v4 é a flexibilidade de onde você escreve suas funções. No modelo v4, você pode usar um único modelo para criar todas as três funções em um arquivo em seu projeto.
Na paleta de comandos, enter e depois selecione Funções do Azure: Criar Função.
Nos prompts, forneça as seguintes informações:
Prompt Action Descrição Selecione um modelo para a sua função Selecione Durable Functions orchestrator. Cria um ficheiro que tem uma orquestração da aplicação Durable Functions, uma função de atividade e uma função de início de cliente duradoura. Escolha um tipo de armazenamento durável Selecione Armazenamento do Azure (Padrão). Define o back-end de armazenamento a ser usado para sua função durável. Fornecer um nome de função Digite Olá. Um nome para a sua função durável.
Abra src/functions/hello.ts para visualizar as funções que criou.
Você criou um orquestrador chamado helloOrchestrator para coordenar funções de atividade. Cada chamada para context.df.callActivity invoca uma função de atividade chamada hello.
Você também adicionou a hello função de atividade que é invocada pelo orquestrador. No mesmo ficheiro, pode ver que recebe um nome como entrada e devolve uma saudação. Uma função de atividade é onde você executa "o trabalho real" em seu fluxo de trabalho, como fazer uma chamada de banco de dados ou executar algum cálculo não determinístico.
Finalmente, você adicionou uma função acionada por HTTP que inicia uma orquestração. No mesmo arquivo, você pode ver que ele usa client.startNew para iniciar uma nova orquestração. Em seguida, ele usa client.createCheckStatusResponse para retornar uma resposta HTTP contendo URLs que podem ser usadas para monitorar e gerenciar a nova orquestração.
Agora tens uma aplicação Durable Functions que podes executar localmente e implementar no Azure.
Testar localmente a função
O Funções do Azure Core Tools dá-lhe a capacidade de executar um projeto Funções do Azure no seu computador local de desenvolvimento. É solicitado que instale estas ferramentas na primeira vez que inicia uma função no Visual Studio Code.
Observação
Na primeira vez que executa a aplicação localmente, o Visual Studio Code pede-lhe para selecionar ou criar uma conta no Armazenamento do Azure. Durable Functions requer uma conta de armazenamento para persistir o estado de orquestração.
Para testar sua função, defina um ponto de interrupção no código da
Hellofunção de atividade (em Olá/index.ts). 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.Observação
Para mais informações sobre depuração, consulte diagnósticos do Durable Functions.
Para testar sua função, defina um ponto de interrupção no código da
hellofunção de atividade (em src/functions/hello.ts). 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.Observação
Para mais informações sobre depuração, consulte diagnósticos do Durable Functions.
O Durable Functions requer uma conta no Armazenamento do Azure para ser executado. Quando Visual Studio Code pedir para selecionar uma conta de armazenamento, selecione Selecionar conta de armazenamento.
Nos prompts, forneça a seguinte informação para criar uma nova conta de armazenamento no Azure.
Prompt Action Descrição Selecionar subscrição Selecione o nome da sua subscrição. A tua subscrição do Azure. Selecione uma conta de armazenamento Selecione Criar uma nova conta de armazenamento. Insira o nome da nova conta de armazenamento Insira um nome exclusivo. O nome da conta de armazenamento a ser criada. Selecione um grupo de recursos Insira um nome exclusivo. O nome do grupo de recursos a ser criado. Selecione um local Selecione uma região do Azure. Selecione uma região próxima a você. No painel do terminal, copie o URL de endpoint da sua função acionada por HTTP.
Use o seu navegador ou uma ferramenta de teste HTTP para enviar um pedido HTTP POST ao endpoint URL.
Substitua o último segmento pelo nome da função orquestradora (
HelloOrchestrator). O URL deve ser semelhante ahttp://localhost:7071/api/orchestrators/HelloOrchestrator.A resposta é o resultado inicial da função HTTP. Ele permite que você saiba que a orquestração durável começou 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.
Use o seu navegador ou uma ferramenta de teste HTTP para enviar um pedido HTTP POST ao endpoint URL.
Substitua o último segmento pelo nome da função orquestradora (
helloOrchestrator). O URL deve ser semelhante ahttp://localhost:7071/api/orchestrators/helloOrchestrator.A resposta é o resultado inicial da função HTTP. Ele permite que você saiba que a orquestração durável começou 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": "HelloOrchestrator", "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" }
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. Verifique que a instância está concluída e que inclui os resultados da aplicação Durable Functions. É semelhante a este exemplo:
{ "name": "helloOrchestrator", "instanceId": "6ba3f77933b1461ea1a3828c013c9d56", "runtimeStatus": "Completed", "input": "", "customStatus": null, "output": [ "Hello, Tokyo", "Hello, Seattle", "Hello, Cairo" ], "createdTime": "2023-02-13T23:02:21Z", "lastUpdatedTime": "2023-02-13T23:02:25Z" }
- Para parar a depuração no Visual Studio Code, pressione 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.
Caso ainda não tenha iniciado sessão, na Barra de Atividades, selecione o ícone do Azure. Em seguida, em Recursos, selecione Entrar no 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 uma Conta do Azure para Estudantes.
Quando você for solicitado no navegador, selecione sua conta do Azure e entre usando suas credenciais de conta do 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 seção, você cria um aplicativo de função no plano Flex Consumption junto com recursos relacionados em sua assinatura 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 aviso de comando (
>), introduza e selecione Funções do Azure: Criar Aplicação de Funções no Azure.Nos prompts, forneça as seguintes informações:
Prompt Action Selecionar subscrição Selecione a assinatura do Azure a ser usada. 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 Funções do Azure. 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 Serviço de Aplicações do Azure, que define o host subjacente para a sua aplicação de funções.
- Uma conta de Armazenamento do Azure padrão, que é usada pelo host do Functions para manter o estado e outras informações sobre seu aplicativo de função.
- 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.
Sugestão
Por padrão, os recursos do Azure exigidos pelo seu aplicativo de função são criados com base no nome que você insere para seu aplicativo de função. 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
A implementação numa aplicação de funções existente sempre sobrescreve o conteúdo dessa aplicação no Azure.
Na paleta de comandos, insira e selecione Funções do Azure: 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
Importante
Para usar o modelo de programação Node.js v4, certifique-se de que a sua aplicação de funções está a correr pelo menos na versão 4.25 do tempo de execução Funções do Azure. Pode verificar a versão no portal Azure em Configuração>Definições de execução de função, ou verificando as definições FUNCTIONS_EXTENSION_VERSION da aplicação.
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/HelloOrchestrator
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/helloOrchestrator
- Cole 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 aplicação TypeScript Durable Functions que criou e publicou usando o Visual Studio Code está pronta a usar.
Limpeza de 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údo relacionado
- Aprenda sobre padrões comuns de aplicações de Durable Functions.
- Aprenda a monitorizar e diagnosticar Durable Functions.
- Analise versionamento de Durable Functions para gerir alterações de código.