Create your first durable function in JavaScript (Criar a sua primeira função durável em JavaScript)
O Durable Functions é uma extensão do Azure Functions que permite escrever funções com monitoração de estado em um ambiente sem servidor. A extensão gere o estado, os pontos de verificação e os reinícios por si.
Neste artigo, você aprenderá a usar a extensão Visual Studio Code Azure Functions para criar e testar localmente uma função durável "hello world". Esta função irá orquestrar e encadear chamadas para outras funções. Em seguida, publique o código de função no Azure.
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.
Pré-requisitos
Para concluir este tutorial:
- Instalar o Visual Studio Code.
- Instalar a extensão VS Code do Azure Functions
- Instale a versão
1.10.4
da extensão VS Code do Azure Functions ou superior.
- Certifique-se de que tem a versão mais recente das Ferramentas Principais do Azure Functions.
- Certifique-se de que tem a versão das Ferramentas Principais do Azure Functions ou
v4.0.5382
superior.
- As Funções Duráveis exigem uma conta de armazenamento do Azure. Precisa de uma subscrição do Azure.
- Certifique-se de que tem a versão 16.x+ do Node.js instalada.
- Certifique-se de que tem a versão 18.x+ do Node.js instalada.
Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.
Criar o seu projeto local
Nesta seção, você usa o Visual Studio Code para criar um projeto local do Azure Functions.
No Visual Studio Code, pressione F1 (ou Ctrl/Cmd+Shift+P) para abrir a paleta de comandos. Na paleta de comandos, procure e selecione
Azure Functions: Create New Project...
.Escolha um local de pasta vazia para seu projeto e escolha Selecionar.
Seguindo os prompts, forneça as seguintes informações:
Pedido valor Description Selecione um idioma para seu projeto de aplicativo de função JavaScript Crie um projeto local do Node.js Functions. Selecione um modelo de programação JavaScript Modelo V3 Escolha o modelo de programação V3. Selecione uma versão Azure Functions v4 Você só verá essa opção quando as Ferramentas Principais ainda não estiverem instaladas. Nesse caso, as Ferramentas Principais são instaladas na primeira vez que você executa o aplicativo. Selecione um modelo para a primeira função do seu projeto Ignorar por agora Selecione como gostaria de abrir o seu projeto Abrir na janela atual Reabre o VS Code na pasta selecionada.
Seguindo os prompts, forneça as seguintes informações:
Pedido valor Description Selecione um idioma para seu projeto de aplicativo de função JavaScript Crie um projeto local do Node.js Functions. Selecione um modelo de programação JavaScript Modelo V4 Escolha o modelo de programação V4. Selecione uma versão Azure Functions v4 Você só verá essa opção quando as Ferramentas Principais ainda não estiverem instaladas. Nesse caso, as Ferramentas Principais são instaladas na primeira vez que você executa o aplicativo. Selecione um modelo para a primeira função do seu projeto Ignorar por agora Selecione como gostaria de abrir o seu projeto Abrir na janela atual Reabre o VS Code na pasta selecionada.
O Visual Studio Code instala as Ferramentas Principais do Azure Functions, se necessário. 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 package.json
arquivo também é criado na pasta raiz.
Instalar o pacote npm de funções duráveis
Para trabalhar com funções duráveis em um aplicativo de função Node.js, use uma biblioteca chamada durable-functions
.
Para usar o modelo de programação V4, você precisa instalar a versão de visualização v3.x
do durable-functions
.
- Use o menu Exibir ou Ctrl + Shift + ' para abrir um novo terminal no VS Code.
- Instale o
durable-functions
pacote npm executandonpm install durable-functions
no diretório raiz do aplicativo de função.
- Instale a versão de visualização do
durable-functions
pacote npm executandonpm install durable-functions@preview
no diretório raiz do aplicativo de função.
Criando suas funções
O aplicativo Durable Functions mais básico contém três funções:
- Função Orchestrator - descreve um fluxo de trabalho que orquestra outras funções.
- Função de atividade - chamada pela função orquestradora, executa trabalho e, opcionalmente, retorna um valor.
- Função de cliente - uma função normal do Azure que inicia uma função de orquestrador. Este exemplo usa uma função acionada por HTTP.
Função orquestradora
Você usa um modelo para criar o código de função durável em seu projeto.
Na paleta de comandos, procure e selecione
Azure Functions: Create Function...
.Seguindo os prompts, forneça as seguintes informações:
Pedido valor Description Selecione um modelo para a sua função Orquestrador de funções duráveis Criar uma orquestração de funções duráveis Escolha um tipo de armazenamento durável. Armazenamento do Azure (padrão) Selecione o back-end de armazenamento usado para funções duráveis. Fornecer um nome de função OláOrchestrator Nome da sua função durável
Você adicionou um orquestrador para coordenar as funções de atividade. Abra o HelloOrchestrator/index.js para ver a função do orquestrador. Cada chamada para context.df.callActivity
invocar uma função de atividade chamada Hello
.
Em seguida, você adicionará a função de atividade referenciada Hello
.
Função de atividade
Na paleta de comandos, procure e selecione
Azure Functions: Create Function...
.Seguindo os prompts, forneça as seguintes informações:
Pedido valor Description Selecione um modelo para a sua função Atividade de funções duráveis Criar uma função de atividade Fornecer um nome de função Hello (Olá) Nome da sua função de atividade
Você adicionou a Hello
função de atividade que é invocada pelo orquestrador. Abra Olá/index.js para ver que ele está tomando um nome como entrada e retornando uma saudação. Uma função de atividade é onde você executa "o trabalho real" em seu fluxo de trabalho: trabalho como fazer uma chamada de banco de dados ou executar algum cálculo não determinístico.
Finalmente, você adicionará uma função acionada por HTTP que inicia a orquestração.
Função de cliente (HTTP starter)
Na paleta de comandos, procure e selecione
Azure Functions: Create Function...
.Seguindo os prompts, forneça as seguintes informações:
Pedido valor Description Selecione um modelo para a sua função Funções duráveis HTTP starter Criar uma função inicial HTTP Fornecer um nome de função DurableFunctionsHttpStart Nome da sua função de atividade Nível de autorização Anónimo Para fins de demonstração, permita que a função seja chamada sem autenticação
Você adicionou uma função acionada por HTTP que inicia uma orquestração. Abra DurableFunctionsHttpStart/index.js 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 você tem um aplicativo de Funções Duráveis que pode ser executado localmente e implantado 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, procure e selecione
Azure Functions: Create Function...
.Seguindo os prompts, forneça as seguintes informações:
Pedido valor Description Selecione um modelo para a sua função Orquestrador de funções duráveis Crie um arquivo com uma orquestração de funções duráveis, uma função de atividade e uma função inicial de cliente durável. Escolha um tipo de armazenamento durável Armazenamento do Azure (padrão) Selecione o back-end de armazenamento usado para funções duráveis. Fornecer um nome de função hello Nome usado para suas funções duráveis
Abra src/functions/hello.js 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
invocar uma função de atividade chamada hello
.
Você também adicionou a hello
função de atividade que é invocada pelo orquestrador. No mesmo arquivo, você pode ver que ele está tomando um nome como entrada e retornando uma saudação. Uma função de atividade é onde você executa "o trabalho real" em seu fluxo de trabalho: trabalho como fazer uma chamada de banco de dados ou executar algum cálculo não determinístico.
Por fim, você também 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 você tem um aplicativo de Funções Duráveis que pode ser executado localmente e implantado no Azure.
Testar localmente a função
As Ferramentas de Núcleo das Funções do Azure permitem-lhe executar um projeto de funções do Azure no seu computador de programação local. Deve instalar estas ferramentas ao iniciar uma função do Visual Studio Code pela primeira vez.
- Para testar sua função, defina um ponto de interrupção no código da
Hello
função de atividade (Olá/index.js). Pressione F5 ou selecioneDebug: Start Debugging
na paleta de comandos para iniciar o projeto de aplicativo de função. São apresentados os resultados das Ferramentas de Núcleo no painel Terminal.
- Para testar sua função, defina um ponto de interrupção no código da
hello
função de atividade (src/functions/hello.js). Pressione F5 ou selecioneDebug: Start Debugging
na paleta de comandos para iniciar o projeto de aplicativo de função. São apresentados os resultados das Ferramentas de Núcleo no painel Terminal.
Nota
Consulte o Diagnóstico de funções duráveis para obter mais informações sobre depuração.
O Durable Functions requer uma conta de Armazenamento do Azure para ser executada. Quando o VS Code solicitar que você selecione uma conta de armazenamento, escolha Selecionar conta de armazenamento.
Seguindo os prompts, forneça as seguintes informações para criar uma nova conta de armazenamento no Azure.
Pedido valor Description Selecionar subscrição Nome da sua subscrição Selecione a sua subscrição do Azure Selecionar uma conta de armazenamento Criar uma nova conta de armazenamento Insira o nome da nova conta de armazenamento Nome exclusivo Nome da conta de armazenamento a ser criada Selecionar um grupo de recursos Nome exclusivo Nome do grupo de recursos a ser criado Selecionar uma localização região Selecione uma região perto de si No painel Terminal, copie o ponto final do URL da sua função acionada por HTTP.
A resposta é o resultado inicial da função HTTP informando que a orquestração durável foi iniciada com êxito. Ainda não é o resultado final da orquestração. A resposta inclui alguns URLs úteis. Por enquanto, vamos consultar o status da orquestração.
Copie o valor do URL e
statusQueryGetUri
cole-o na barra de endereço do navegador e execute a solicitação. Como alternativa, você também pode continuar a usar o Postman para emitir a solicitação GET.A solicitação consulta a instância de orquestração para obter o status. Você deve obter uma eventual resposta, que nos mostra que a instância foi concluída e inclui as saídas ou resultados da função durável. Tem a seguinte aparência:
{ "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" }
{ "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, pressione Shift + F5 no VS Code.
Depois de verificar que a função é executada corretamente no computador local, deve publicar o projeto no Azure.
Iniciar sessão no Azure
Antes de criar recursos do Azure ou publicar seu aplicativo, você deve entrar no Azure.
Se você ainda não estiver conectado, escolha o ícone do Azure na barra de atividades. Em seguida, na área Recursos, escolha Entrar no Azure....
Se já tiver sessão iniciada e conseguir ver as suas subscrições existentes, vá para a secção seguinte. Se você ainda não tiver uma conta do Azure, escolha Criar uma Conta do Azure.... Os alunos podem escolher Criar uma Conta do Azure para Estudantes....
Quando solicitado no navegador, escolha 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 assinaturas que pertencem à sua conta do Azure são exibidas na barra lateral.
Criar o aplicativo de função no Azure
Nesta seção, você cria um aplicativo de função e recursos relacionados em sua assinatura do Azure.
Escolha o ícone do Azure na barra de atividades. Em seguida, na área Recursos , selecione o + ícone e escolha a opção Criar Aplicativo de Função no Azure .
Forneça as seguintes informações nos pedidos:
Pedido Seleção Selecionar subscrição Escolha a subscrição a utilizar. Você não verá esse prompt quando tiver apenas uma assinatura visível em Recursos. Insira um nome globalmente exclusivo para o aplicativo de função Digite um nome válido em um caminho de URL. O nome digitado é validado para garantir que seja exclusivo no Azure Functions. Selecione uma pilha de tempo de execução Escolha a versão de idioma na qual você está executando localmente. Selecione um local para novos recursos Para um melhor desempenho, escolha uma região perto de si. A extensão mostra o status de recursos individuais à medida que eles estão sendo criados no Azure no painel Azure: Log de Atividades .
Quando a criação estiver concluída, os seguintes recursos do Azure serão criados na sua subscrição. Os recursos são nomeados com base no nome do aplicativo de função:
- Um grupo de recursos, que é um contêiner lógico para recursos relacionados.
- Uma conta de Armazenamento do Azure padrão, 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 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 Aplicativo, que define o host subjacente para seu aplicativo de função.
- Uma instância do Application Insights conectada ao aplicativo de função, que rastreia o uso de suas funções no aplicativo.
Depois de criar a aplicação de funções, é apresentada uma notificação e o pacote de implementação é aplicado.
Gorjeta
Por padrão, os recursos do Azure exigidos pelo seu aplicativo de função são criados com base no nome do aplicativo de função fornecido. Por padrão, eles também são criados no mesmo novo grupo de recursos com o aplicativo de função. Se você quiser personalizar os nomes desses recursos ou reutilizar recursos existentes, você precisa publicar o projeto com opções de criação avançadas .
Implementar o projeto no Azure
Importante
A implantação em um aplicativo de função existente sempre substitui o conteúdo desse aplicativo no Azure.
Na área Recursos da atividade do Azure, localize o recurso de aplicativo de função que você acabou de criar, clique com o botão direito do mouse no recurso e selecione Implantar no aplicativo funcional....
Quando solicitado sobre a substituição de implantações anteriores, selecione Implantar para implantar seu código de função no novo recurso de aplicativo de função.
Após a conclusão da implantação, selecione Exibir saída para exibir os resultados da criação e da implantação, incluindo os recursos do Azure que você criou. Se você perder a notificação, selecione o ícone de sino no canto inferior direito para vê-lo novamente.
Testar a sua função no Azure
Nota
Para usar o modelo de programação do nó V4, verifique se seu aplicativo está sendo executado em pelo menos a versão 4.25 do tempo de execução do Azure Functions.
- Copie o URL do acionador de HTTP no painel Resultados. A URL que chama sua função acionada por HTTP deve estar neste formato:
https://<functionappname>.azurewebsites.net/api/orchestrators/HelloOrchestrator
- Copie o URL do acionador de HTTP no painel Resultados. A URL que chama sua função acionada por HTTP deve estar neste formato:
https://<functionappname>.azurewebsites.net/api/orchestrators/helloOrchestrator
- Cole este novo URL do pedido HTTP na barra de endereço do browser. Você deve obter a mesma resposta de status que antes ao usar o aplicativo publicado.
Próximos passos
Você usou o Visual Studio Code para criar e publicar um aplicativo de função durável JavaScript.