Criar funções duráveis usando o portal do Azure

A extensão Durable Functions para Azure Functions é fornecida no pacote NuGet Microsoft.Azure.WebJobs.Extensions.DurableTask. Essa extensão deve ser instalada em seu aplicativo de função. Este artigo mostra como instalar este pacote para que você possa desenvolver funções duráveis no portal do Azure.

Nota

  • Se você estiver desenvolvendo funções duráveis em C#, considere o desenvolvimento do Visual Studio 2019.
  • Se você estiver desenvolvendo funções duráveis em JavaScript, você deve considerar o desenvolvimento de código do Visual Studio.

Criar uma aplicação de funções

Você deve ter um aplicativo de função para hospedar a execução de qualquer função. Um aplicativo de função permite agrupar suas funções como uma unidade lógica para facilitar o gerenciamento, a implantação, o dimensionamento e o compartilhamento de recursos. Você pode criar um aplicativo .NET ou JavaScript.

  1. A partir do menu do portal do Azure ou a partir da Home page, selecione Criar um recurso.

  2. Na página Novo, selecione Aplicativo de função de computação>.

  3. Em Selecione uma opção de hospedagem, selecione Consumo>Selecione para criar seu aplicativo no plano de consumo padrão. Nesta opção de hospedagem sem servidor, você paga apenas pelo tempo em que suas funções são executadas. O plano Premium também oferece escalonamento dinâmico. Quando executa num plano do Serviço de Aplicações, tem de gerir o dimensionamento da sua aplicação de funções.

  4. Na página Noções básicas, use as configurações do aplicativo de função conforme especificado na tabela a seguir:

    Definição Valor sugerido Description
    Subscrição a sua subscrição A subscrição ao abrigo da qual cria a sua nova aplicação funcional.
    Grupo de Recursos myResourceGroup Nome para o novo grupo de recursos no qual você cria seu aplicativo de função. Você deve criar um novo grupo de recursos porque há limitações conhecidas ao criar novos aplicativos de função em um grupo de recursos existente.
    Nome da Aplicação de Funções Nome globalmente exclusivo Nome que identifica a sua aplicação Function App nova. Os carateres válidos são a-z (não sensível a maiúsculas e minúsculas), 0-9 e -.
    Pilha de runtime Idioma Preferencial Escolha um tempo de execução que suporte a sua linguagem de programação de funções favorita. A edição no portal só está disponível para JavaScript, PowerShell, Python, TypeScript e script C#.
    Para criar um aplicativo de script C# que ofereça suporte à edição no portal, você deve escolher uma versão de tempo de execução que ofereça suporte ao modelo em processo.
    A biblioteca de classes C# e as funções Java devem ser desenvolvidas localmente.
    Versão Número de versão Escolha a versão do seu tempo de execução instalado.
    Região Região preferida Selecione uma região perto de você ou perto de outros serviços que suas funções possam acessar.
    Sistema Operativo Windows Um sistema operacional é pré-selecionado para você com base na seleção da pilha de tempo de execução, mas você pode alterar a configuração, se necessário. A edição no portal só é suportada no Windows.
  5. Aceite as opções padrão nas guias restantes, incluindo o comportamento padrão de criar uma nova conta de armazenamento na guia Armazenamento e uma nova instância do Application Insight na guia Monitoramento . Você também pode optar por usar uma conta de armazenamento existente ou uma instância do Application Insights.

  6. Selecione Rever + criar para rever a configuração da aplicação que escolheu e, em seguida, selecione Criar para provisionar e implementar a aplicação funcional.

  7. Selecione o ícone Notificações no canto superior direito do portal e observe a mensagem Implantação bem-sucedida .

  8. Selecione Ir para o recurso para ver a sua nova aplicação de funções. Você também pode selecionar Fixar no painel. A fixação facilita o retorno a esse recurso de aplicativo funcional a partir do seu painel.

    Captura de tela da notificação de implantação.

Por padrão, o aplicativo de função criado usa a versão 2.x do tempo de execução do Azure Functions. A extensão Durable Functions funciona nas versões 1.x e 2.x do tempo de execução do Azure Functions em C# e na versão 2.x em JavaScript. No entanto, os modelos só estão disponíveis ao direcionar a versão 2.x do tempo de execução, independentemente do idioma escolhido.

Instalar o pacote npm de funções duráveis (somente JavaScript)

Se você estiver criando JavaScript Durable Functions, precisará instalar o durable-functions pacote npm:

  1. Na página do seu aplicativo de função, selecione Ferramentas avançadas em Ferramentas de desenvolvimento no painel esquerdo.

    Funções recursos da plataforma escolher Kudu

  2. Na página Ferramentas Avançadas, selecione Ir.

  3. Dentro do console Kudu, selecione Depurar console e, em seguida , CMD.

    Console de depuração Kudu

  4. A estrutura de diretórios de arquivos do seu aplicativo de função deve ser exibida. Navegue para a pasta site/wwwroot. A partir daí, você pode carregar um package.json arquivo arrastando e soltando-o na janela do diretório de arquivos. Um exemplo package.json está abaixo:

    {
      "dependencies": {
        "durable-functions": "^1.3.1"
      }
    }
    

    Kudu carregar package.json

  5. Uma vez que o seu package.json é carregado, execute o npm install comando a partir do Kudu Remote Execution Console.

    Kudu executar npm instalar

Criar uma função de orquestrador

  1. Na sua aplicação de funções, selecione Funções no painel esquerdo e, em seguida, selecione Adicionar no menu superior.

  2. No campo de pesquisa da página Nova Função , digite durablee escolha o modelo inicial HTTP Funções Duráveis.

    Selecionar Funções Duráveis HTTP starter

  3. Para o nome da nova função , digite HttpStarte, em seguida, selecione Criar função.

    A função criada é usada para iniciar a orquestração.

  4. Crie outra função no aplicativo de funções, desta vez usando o modelo Durable Functions orchestrator . Nomeie sua nova função HelloSequencede orquestração .

  5. Crie uma terceira função nomeada Hello usando o modelo de atividade Funções duráveis.

Teste a orquestração de funções duráveis

  1. Volte para a função HttpStart , escolha Obter URL da função e selecione o ícone Copiar para a área de transferência para copiar a URL. Use essa URL para iniciar a função HelloSequence .

  2. Use uma ferramenta de teste HTTP segura para enviar uma solicitação HTTP POST para o ponto de extremidade URL. Este exemplo é um comando cURL que envia uma solicitação POST para a função durável:

    curl -X POST https://{your-function-app-name}.azurewebsites.net/api/orchestrators/{functionName} --header "Content-Length: 0"
    

    Neste exemplo, {your-function-app-name} é o domínio que é o nome do seu aplicativo de função e {functionName} é a função orquestrador HelloSequence. A mensagem de resposta contém um conjunto de pontos finais URI que pode utilizar para monitorizar e gerir a execução, e que pode ser semelhante ao seguinte exemplo:

    {  
       "id":"10585834a930427195479de25e0b952d",
       "statusQueryGetUri":"https://...",
       "sendEventPostUri":"https://...",
       "terminatePostUri":"https://...",
       "rewindPostUri":"https://..."
    }
    

    Certifique-se de escolher uma ferramenta de teste HTTP que mantenha seus dados seguros. Para obter mais informações, consulte Ferramentas de teste HTTP.

  3. Chame o URI do statusQueryGetUri ponto de extremidade e você verá o status atual da função durável, que pode se parecer com este exemplo:

        {
            "runtimeStatus": "Running",
            "input": null,
            "output": null,
            "createdTime": "2017-12-01T05:37:33Z",
            "lastUpdatedTime": "2017-12-01T05:37:36Z"
        }
    
  4. Continue chamando o statusQueryGetUri ponto de extremidade até que o status mude para Concluído e você verá uma resposta como o exemplo a seguir:

    {
            "runtimeStatus": "Completed",
            "input": null,
            "output": [
                "Hello Tokyo!",
                "Hello Seattle!",
                "Hello London!"
            ],
            "createdTime": "2017-12-01T05:38:22Z",
            "lastUpdatedTime": "2017-12-01T05:38:28Z"
        }
    

Sua primeira função durável agora está em execução no Azure.

Próximos passos