Crie sua primeira função durável no PowerShell

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.

Executando a função durável no Azure

Pré-requisitos

Para concluir este tutorial:

  • Instalar o Visual Studio Code.

  • Instalar a extensão VS Code do Azure Functions

  • Certifique-se de que tem a versão mais recente das Ferramentas Principais do Azure Functions.

  • As Funções Duráveis exigem uma conta de armazenamento do Azure. Precisa de uma subscrição do Azure.

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.

  1. 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....

    Criar função

  2. Escolha um local de pasta vazia para seu projeto e escolha Selecionar.

  3. Seguindo os prompts, forneça as seguintes informações:

    Pedido valor Description
    Selecione um idioma para seu projeto de aplicativo de função PowerShell Crie um projeto local do PowerShell Functions.
    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 arquivo package.json também é criado na pasta raiz.

Configurar o aplicativo de função para usar o PowerShell 7

Abra o arquivo local.settings.json e confirme se uma configuração nomeada FUNCTIONS_WORKER_RUNTIME_VERSION está definida como ~7. Se estiver faltando ou definido para outro valor, atualize o conteúdo do arquivo.

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "powershell",
    "FUNCTIONS_WORKER_RUNTIME_VERSION" : "~7"
  }
}

Crie as 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.

  1. Na paleta de comandos, procure e selecione Azure Functions: Create Function....

  2. 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
    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 HelloOrchestrator/run.ps1 para ver a função orchestrator. Cada chamada para o Invoke-ActivityFunction cmdlet invoca uma função de atividade chamada Hello.

Em seguida, você adicionará a função de atividade referenciada Hello .

Função de atividade

  1. Na paleta de comandos, procure e selecione Azure Functions: Create Function....

  2. 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 Hello/run.ps1 para ver que ele está tomando um nome como entrada e retornando uma saudação. Uma função de atividade é onde você executará ações como fazer uma chamada de banco de dados ou executar um cálculo.

Finalmente, você adicionará uma função acionada por HTTP que inicia a orquestração.

Função de cliente (HTTP starter)

  1. Na paleta de comandos, procure e selecione Azure Functions: Create Function....

  2. 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 HttpStart 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 HttpStart/run.ps1 para ver se ele usa o Start-NewOrchestration cmdlet para iniciar uma nova orquestração. Em seguida, ele usa o New-OrchestrationCheckStatusResponse cmdlet 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.

Nota

A próxima versão do DF PowerShell está agora em pré-visualização e pode ser transferida a partir da Galeria do PowerShell. Saiba mais sobre ele e como testá-lo no guia do SDK do PowerShell autônomo. Você pode seguir a seção de instalação do guia para obter instruções compatíveis com este início rápido sobre como ativá-lo.

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. Você será solicitado a instalar essas ferramentas na primeira vez que iniciar um aplicativo de função a partir do Visual Studio Code.

  1. Para testar sua função, defina um ponto de interrupção no código da Hello função de atividade (Hello/run.ps1). Pressione F5 ou selecione Debug: 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.

  2. 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.

    Criar conta de armazenamento

  3. 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
  4. No painel Terminal, copie o ponto final do URL da sua função acionada por HTTP.

    Resultado local do Azure

  5. Usando seu navegador ou uma ferramenta como Postman ou cURL, envie uma solicitação HTTP POST para o ponto de extremidade URL. Substitua o último segmento pelo nome da função orquestradora (HelloOrchestrator). O URL deve ser semelhante a http://localhost:7071/api/orchestrators/HelloOrchestrator.

    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.

  6. 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 consultará 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"
    }
    
  7. 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.

  1. 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....

    Captura de ecrã do início de sessão na janela do Azure no VS Code.

    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....

  2. 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.

  3. 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.

  1. 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 .

    Criar um recurso na sua subscrição do Azure

  2. 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 .

    Log de criação de recursos do Azure

  3. 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.

  1. 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....

  2. 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.

  3. 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.

    Captura de ecrã da janela Ver Saída.

Testar a sua função no Azure

  1. 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

  2. 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 do PowerShell.