Criar Durable Functions com o portal do Azure

A extensão Durable Functions para Funções do Azure é fornecida no pacote NuGet Microsoft. Azure.WebJobs.Extensions.DurableTask. Esta extensão tem de ser instalada na sua aplicação de funções. Este artigo mostra como instalar este pacote para que possa desenvolver funções duráveis no portal do Azure.

Nota

Criar uma aplicação de funções

Tem de ter uma aplicação de funções para alojar a execução de qualquer função. Uma aplicação de funções permite-lhe agrupar as suas funções como uma unidade lógica para facilitar a gestão, implementação, dimensionamento e partilha de recursos. Pode criar uma aplicação .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 >Aplicação de Funções de Computação.

  3. Na página Noções básicas , utilize as definições da aplicação de funções conforme especificado na tabela seguinte:

    Definição Valor sugerido Descrição
    Subscrição A sua subscrição A subscrição na qual irá criar a sua nova aplicação de funções.
    Grupo de Recursos myResourceGroup Nome do novo grupo de recursos no qual irá criar a sua aplicação de funções.
    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 -.
    Publicar Código Opção para publicar ficheiros de código ou um contentor de Docker.
    Pilha de runtime Linguagem 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 o script JavaScript, PowerShell, TypeScript e C#. As funções C# class library, Java e Python têm de ser desenvolvidas localmente.
    Versão Número da versão Escolha a versão do runtime instalado.
    Região Região preferencial Selecione uma região perto de si ou perto de outros serviços aos quais as suas funções podem aceder.
  4. Selecione Seguinte: Alojamento. Na página Alojamento , introduza as seguintes definições:

    Definição Valor sugerido Descrição
    Conta de armazenamento Nome globalmente exclusivo Crie uma conta de armazenamento para ser utilizada pela sua aplicação de funções. Os nomes das contas de armazenamento têm de ter entre 3 e 24 carateres de comprimento e só podem conter números e letras minúsculas. Também pode utilizar uma conta existente, que tem de cumprir os requisitos da conta de armazenamento.
    Sistema operativo Windows Um sistema operativo está pré-selecionado para si com base na seleção da pilha de runtime, mas pode alterar a definição, se necessário. A edição no portal só é suportada no Windows.
    Planear Consumo (Sem servidor) O plano de alojamento que define a forma como os recursos são alocados à sua aplicação Function App. No Plano de Consumo predefinido, os recursos são adicionados dinamicamente, conforme necessário por parte das suas funções. Neste alojamento sem servidor , paga apenas pelo tempo em que as suas funções são executadas. Quando executa num plano do Serviço de Aplicações, tem de gerir o dimensionamento da sua aplicação de funções.
  5. Selecione Seguinte: Monitorização. Na página Monitorização , introduza as seguintes definições:

    Definição Valor sugerido Descrição
    Application Insights Predefinição Cria um recurso do Application Insights com o mesmo Nome da aplicação na região suportada mais próxima. Ao expandir esta definição ou selecionar Criar novo, pode alterar o nome do Application Insights ou selecionar uma região diferente numa geografia do Azure onde pretende armazenar os seus dados.
  6. Selecione Rever + criar para rever as seleções de configuração da aplicação.

  7. Na página Rever + criar , reveja as suas definições e, em seguida, selecione Criar para aprovisionar e implementar a aplicação de funções.

  8. Selecione o ícone Notificações no canto superior direito do portal e veja a mensagem Implementação com êxito .

  9. Selecione Ir para o recurso para ver a sua nova aplicação de funções. Também pode selecionar Afixar ao dashboard. A afixação facilita o regresso a este recurso da aplicação de funções a partir do dashboard.

    Captura de ecrã a mostrar a notificação de implementação.

Por predefinição, a aplicação de funções criada utiliza a versão 2.x do Funções do Azure runtime. A extensão Durable Functions funciona em ambas as versões 1.x e 2.x do Funções do Azure runtime em C#e na versão 2.x no JavaScript. No entanto, os modelos só estão disponíveis quando segmentam a versão 2.x do runtime, independentemente do idioma escolhido.

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

Se estiver a criar o JavaScript Durable Functions, terá de instalar o durable-functions pacote npm:

  1. Na página da aplicação de funções, selecione Ferramentas Avançadas em Ferramentas de Desenvolvimento no painel esquerdo.

    Funcionalidades da plataforma de funções selecionam Kudu

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

  3. Dentro da consola kudu, selecione Depurar consola e, em seguida , CMD.

    Consola de depuração kudu

  4. A estrutura do diretório de ficheiros da sua aplicação de funções deve ser apresentada. Navegue para a pasta site/wwwroot. A partir daí, pode carregar um package.json ficheiro arrastando-o e largando-o na janela do diretório de ficheiros. Segue-se um exemplo package.json :

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

    Kudu upload package.json

  5. package.json Depois de carregar, execute o comando a npm install partir da Consola de Execução Remota do Kudu.

    Instalação do npm de execução do Kudu

Criar uma função de orquestrador

  1. Na 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, introduza durablee, em seguida, selecione o modelo de arranque HTTP Durable Functions.

    Selecione Durable Functions iniciador HTTP

  3. Para o Nome da Nova Função , introduza HttpStarte, em seguida, selecione Criar Função.

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

  4. Crie outra função na aplicação de funções, desta vez com o modelo de orquestrador Durable Functions. Atribua um nome à sua nova função HelloSequencede orquestração .

  5. Crie uma terceira função com o nome Hello com o modelo de atividade Durable Functions.

Testar a orquestração da função durável

  1. Voltar para a função HttpStart, selecione Obter URL da função e selecione o ícone Copiar para área de transferência para copiar o URL. Utilize este URL para iniciar a função HelloSequence .

  2. Utilize uma ferramenta HTTP, como o Postman ou o cURL, para enviar um pedido POST para o URL que copiou. O exemplo seguinte é um comando cURL que envia um pedido POST para a função durable:

    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 da sua aplicação de funções 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://..."
    }
    
  3. Chame o URI do statusQueryGetUri ponto final e verá o estado atual da função durable, que poderá ter este exemplo:

        {
            "runtimeStatus": "Running",
            "input": null,
            "output": null,
            "createdTime": "2017-12-01T05:37:33Z",
            "lastUpdatedTime": "2017-12-01T05:37:36Z"
        }
    
  4. Continue a chamar o statusQueryGetUri ponto final até o estado mudar para Concluído e verá uma resposta como o seguinte exemplo:

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

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

Passos seguintes