Criar uma função que se integra no Azure Logic AppsCreate a function that integrates with Azure Logic Apps

As Funções do Azure integram-se com o Azure Logic Apps no Estruturador de Aplicações Lógicas.Azure Functions integrates with Azure Logic Apps in the Logic Apps Designer. Esta integração permite-lhe utilizar o poder de computação das Funções em orquestrações com outros serviços do Azure e de terceiros.This integration lets you use the computing power of Functions in orchestrations with other Azure and third-party services.

Este tutorial mostra-lhe como utilizar as Funções com o Logic Apps e os Serviços Cognitivos no Azure para executar sentimentos de análise de publicações do Twitter.This tutorial shows you how to use Functions with Logic Apps and Cognitive Services on Azure to run sentiment analysis from Twitter posts. Uma função acionada por HTTP categoria os tweets como verdes, amarelos ou vermelhos, com base na classificação do sentimento.An HTTP triggered function categorizes tweets as green, yellow, or red based on the sentiment score. É enviado um e-mail quando é detetado um sentimento negativo.An email is sent when poor sentiment is detected.

imagem dos dois primeiros passos da aplicação no Estruturador de Aplicações Lógicas

Neste tutorial, ficará a saber como:In this tutorial, you learn how to:

  • Criar um Recurso de API dos Serviços Cognitivos.Create a Cognitive Services API Resource.
  • Criar uma função que categoriza sentimentos de tweet.Create a function that categorizes tweet sentiment.
  • Criar uma aplicação lógica que se liga ao Twitter.Create a logic app that connects to Twitter.
  • Adicionar a deteção de sentimento à aplicação lógica.Add sentiment detection to the logic app.
  • Ligar a aplicação lógica à função.Connect the logic app to the function.
  • Enviar um e-mail com base na resposta da função.Send an email based on the response from the function.

Pré-requisitosPrerequisites

Criar um recurso dos Serviços CognitivosCreate a Cognitive Services resource

As APIs dos Serviços Cognitivos estão disponíveis no Azure como recursos individuais.The Cognitive Services APIs are available in Azure as individual resources. Utilize a API de Análise de Texto para detetar o sentimento dos tweets que estão a ser monitorizados.Use the Text Analytics API to detect the sentiment of the tweets being monitored.

  1. Inicie sessão no portal do Azure.Sign in to the Azure portal.

  2. Clique em Criar um recurso, no canto superior esquerdo do portal do Azure.Click Create a resource in the upper left-hand corner of the Azure portal.

  3. Clique em IA + Machine Learning > Análise de Texto.Click AI + Machine Learning > Text Analytics. Em seguida, utilize as definições conforme especificado na tabela para criar o recurso.Then, use the settings as specified in the table to create the resource.

    Página Criar recurso dos Serviços Cognitivos

    DefiniçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    NomeName MyCognitiveServicesAccntMyCognitiveServicesAccnt Escolha um nome de conta exclusivo.Choose a unique account name.
    LocationLocation EUA OesteWest US Utilize a localização mais próxima de si.Use the location nearest you.
    Escalão de preçoPricing tier F0F0 Comece com o escalão mais baixo.Start with the lowest tier. Se ficar sem chamadas, aumente para um escalão superior.If you run out of calls, scale to a higher tier.
    Grupo de recursosResource group myResourceGroupmyResourceGroup Utilize o mesmo grupo de recursos para todos os serviços neste tutorial.Use the same resource group for all services in this tutorial.
  4. Clique em Criar para criar o recurso.Click Create to create your resource.

  5. Clique em Descrição geral e copie o valor de Ponto final para um editor de texto.Click on Overview and copy the value of the Endpoint to a text editor. Este valor serve para criar uma ligação para a API dos Serviços Cognitivos.This value is used when creating a connection to the Cognitive Services API.

    Definições dos Serviços Cognitivos

  6. Na coluna de navegação esquerda, clique em Chaves e, em seguida, copie o valor da Chave 1 e defina-o à parte num editor de texto.In the left navigation column, click Keys, and then copy the value of Key 1 and set it aside in a text editor. A chave serve para ligar a aplicação lógica à API dos Serviços Cognitivos.You use the key to connect the logic app to your Cognitive Services API.

    Chaves de Serviços Cognitivos

Criar a aplicação de funçõesCreate the function app

As Funções proporcionam uma excelente forma de descarregar tarefas de processamento num fluxo de trabalho de aplicação lógica.Functions provides a great way to offload processing tasks in a logic apps workflow. Este tutorial utiliza uma função acionada por HTTP para processar as classificações de sentimentos de tweets dos Serviço Cognitivos e devolver um valor de categoria.This tutorial uses an HTTP triggered function to process tweet sentiment scores from Cognitive Services and return a category value.

  1. Selecione o botão criar um recurso encontrado no canto superior esquerdo da portal do Azure e, em seguida, selecione computação > aplicativo de funções.Select the Create a resource button found on the upper left-hand corner of the Azure portal, then select Compute > Function App.

    Criar uma aplicação de função no portal do Azure

  2. Utilize as definições da aplicação Function App, conforme especificado na tabela abaixo da imagem.Use the function app settings as specified in the table below the image.

    Definir novas definições da aplicação de funções

    DefiniçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    Nome da aplicaçãoApp name Nome globalmente exclusivoGlobally unique name Nome que identifica a sua aplicação Function App nova.Name that identifies your new function app. Os carateres válidos são a-z, 0-9 e -.Valid characters are a-z, 0-9, and -.
    SubscriçãoSubscription A sua subscriçãoYour subscription A subscrição sob a qual esta nova aplicação de função é criada.The subscription under which this new function app is created.
    Grupo de RecursosResource Group myResourceGroupmyResourceGroup Nome do grupo de recursos novo no qual a aplicação Function App vai ser criada.Name for the new resource group in which to create your function app.
    OSOS WindowsWindows As opções de idioma disponíveis dependem do sistema operacional do aplicativo de funções.The language options available depend on the OS of the function app. Por exemplo, o Python requer o Linux.For example, Python requires Linux.
    Plano de alojamentoHosting plan Plano de consumoConsumption plan O plano de alojamento que define a forma como os recursos são alocados à sua aplicação Function App.Hosting plan that defines how resources are allocated to your function app. No Plano de Consumo predefinido, os recursos são adicionados dinamicamente, conforme necessário por parte das suas funções.In the default Consumption Plan, resources are added dynamically as required by your functions. Neste alojamento sem servidor, só paga pelo tempo de execução das suas funções.In this serverless hosting, you only pay for the time your functions run. Quando executa num plano do Serviço de Aplicações, tem de gerir o dimensionamento da sua aplicação de funções.When you run in an App Service plan, you must manage the scaling of your function app.
    LocationLocation Europa OcidentalWest Europe Escolha uma região perto de si ou de outros serviços aos quais as suas funções acedem.Choose a region near you or near other services your functions access.
    Pilha de tempo de execuçãoRuntime stack Linguagem preferencialPreferred language Escolha um tempo de execução que suporte a sua linguagem de programação de funções favorita.Choose a runtime that supports your favorite function programming language. Selecione .NET para funções C# e F#.Choose .NET for C# and F# functions.
    ArmazenamentoStorage Nome globalmente exclusivoGlobally unique name Crie uma conta de armazenamento para ser utilizada pela sua aplicação de funções.Create a storage account used by your function app. Os nomes das contas do Storage devem ter entre 3 e 24 carateres de comprimento e apenas podem conter números e letras minúsculas.Storage account names must be between 3 and 24 characters in length and may contain numbers and lowercase letters only. Também pode utilizar uma conta existente, a qual tem de cumprir os requisitos de contas de armazenamento.You can also use an existing account, which must meets the storage account requirements.
    Application InsightsApplication Insights PredefiniçãoDefault Cria um recurso Application Insights do mesmo nome de aplicativo na região com suporte mais próximo.Creates an Application Insights resource of the same App name in the nearest supported region. Ao expandir essa configuração, você pode alterar o nome do novo recurso ou escolher um local diferente em uma Geografia do Azure onde você deseja armazenar seus dados.By expanding this setting, you can change the New resource name or choose a different Location in an Azure geography where you want to store your data.
  3. Selecione Criar para aprovisionar e implementar a aplicação de função.Select Create to provision and deploy the function app.

  4. Selecione o ícone de Notificação no canto superior direito do portal e procure a mensagem Implementação concluída com êxito.Select the Notification icon in the upper-right corner of the portal and watch for the Deployment succeeded message.

    Definir novas definições da aplicação de funções

  5. Selecione Ir para o recurso para ver a sua nova aplicação de funções.Select Go to resource to view your new function app. Você também pode selecionar fixar no painel.You can also select Pin to dashboard. A fixação torna mais fácil retornar a esse recurso do aplicativo de funções do seu painel.Pinning makes it easier to return to this function app resource from your dashboard.

Criar uma função acionada por HTTPCreate an HTTP triggered function

  1. Expanda a aplicação de funções e clique no botão + , junto a Funções.Expand your function app and click the + button next to Functions. Se esta for a primeira função na sua aplicação de funções, selecione No portal.If this is the first function in your function app, select In-portal.

    Página de início rápido das funções no portal do Azure

  2. Em seguida, selecione Webhook + API e clique em Criar.Next, select Webhook + API and click Create.

    Escolher o acionador HTTP

  3. Substitua o conteúdo do ficheiro run.csx pelo código seguinte e clique em Guardar:Replace the contents of the run.csx file with the following code, then click Save:

    #r "Newtonsoft.Json"
    
    using System;
    using System.Net;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Extensions.Logging;
    using Microsoft.Extensions.Primitives;
    using Newtonsoft.Json;
    
    public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
    {
        string category = "GREEN";
    
        string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
        log.LogInformation(string.Format("The sentiment score received is '{0}'.", requestBody));
    
        double score = Convert.ToDouble(requestBody);
    
        if(score < .3)
        {
            category = "RED";
        }
        else if (score < .6) 
        {
            category = "YELLOW";
        }
    
        return requestBody != null
            ? (ActionResult)new OkObjectResult(category)
            : new BadRequestObjectResult("Please pass a value on the query string or in the request body");
    }
    

    Este código de função devolve uma categoria de cor com base na classificação de sentimento recebida no pedido.This function code returns a color category based on the sentiment score received in the request.

  4. Para testar a função, clique em Testar, na extremidade direita, para expandir o separador Teste. Escreva o valor 0.2 no Corpo do pedido e clique em Executar.To test the function, click Test at the far right to expand the Test tab. Type a value of 0.2 for the Request body, and then click Run. É devolvido o valor RED no corpo da resposta.A value of RED is returned in the body of the response.

    Testar a função no portal do Azure

Agora, tem uma função que categoriza classificações de sentimentos.Now you have a function that categorizes sentiment scores. Em seguida, vai criar uma aplicação lógica que integra a sua função com o Twitter e a API dos Serviços Cognitivos.Next, you create a logic app that integrates your function with your Twitter and Cognitive Services API.

Criar uma aplicação lógicaCreate a logic app

  1. No portal do Azure, clique no botão Novo, localizado no canto superior esquerdo.In the Azure portal, click the New button found on the upper left-hand corner of the Azure portal.

  2. Clique em Web > Aplicação Lógica.Click Web > Logic App.

  3. Em seguida, escreva um valor para Nome, como TweetSentiment, e utilize as definições conforme especificado na tabela.Then, type a value for Name like TweetSentiment, and use the settings as specified in the table.

    Criar aplicação lógica no portal do Azure

    DefiniçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    NomeName TweetSentimentTweetSentiment Escolha um nome adequado para a sua aplicação.Choose an appropriate name for your app.
    Grupo de recursosResource group myResourceGroupmyResourceGroup Escolha o mesmo grupo de recursos que utilizou anteriormente.Choose the same existing resource group as before.
    LocationLocation EUA LesteEast US Escolha uma localização perto de si.Choose a location close to you.
  4. Depois de introduzir os valores de definições apropriadas, clique em Criar para criar a sua aplicação lógica.Once you have entered the proper settings values, click Create to create your logic app.

  5. Depois de a aplicação ter sido criada, clique na aplicação lógica nova que está afixada ao dashboard.After the app is created, click your new logic app pinned to the dashboard. Em seguida, no Designer de Aplicações Lógicas, desloque-se para baixo e clique no modelo Aplicação Lógica em Branco.Then in the Logic Apps Designer, scroll down and click the Blank Logic App template.

    Modelo Aplicação Lógica em Branco

Agora, pode utilizar o Estruturador de Aplicações Lógicas para adicionar serviços e acionadores à aplicação.You can now use the Logic Apps Designer to add services and triggers to your app.

Ligar ao TwitterConnect to Twitter

Em primeiro lugar, crie uma ligação para a sua conta do Twitter.First, create a connection to your Twitter account. A aplicação lógica consulta tweets, que acionam a execução da aplicação.The logic app polls for tweets, which trigger the app to run.

  1. No estruturador, clique no serviço Twitter e clique no acionador When a new tweet is posted (Quando é publicado um tweet novo).In the designer, click the Twitter service, and click the When a new tweet is posted trigger. Inicie sessão na sua conta do Twitter e autorize a Aplicação Lógica a utilizá-la.Sign in to your Twitter account and authorize Logic Apps to use your account.

  2. Utilize as definições de acionador do Twitter, conforme especificado na tabela.Use the Twitter trigger settings as specified in the table.

    Definições do conector do Twitter

    DefiniçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    Texto da pesquisaSearch text #Azure#Azure Utilize um hashtag que seja suficientemente popular para gerar novos tweets no intervalo escolhido.Use a hashtag that is popular enough to generate new tweets in the chosen interval. Se estiver a utilizar o escalão Gratuito e a hashtag for demasiado popular, pode esgotar rapidamente a totalidade da quota de transações da sua API dos Serviços Cognitivos.When using the Free tier and your hashtag is too popular, you can quickly use up the transaction quota in your Cognitive Services API.
    IntervaloInterval 1515 O tempo decorrido entre pedidos do Twitter, em unidades de frequência.The time elapsed between Twitter requests, in frequency units.
    FrequênciaFrequency MinutoMinute A unidade de frequência utilizada para consultar o Twitter.The frequency unit used for polling Twitter.
  3. Clique em Guardar para ligar à sua conta do Twitter.Click Save to connect to your Twitter account.

A sua aplicação está agora ligada ao Twitter.Now your app is connected to Twitter. Em seguida, vai ligar à análise de texto para detetar o sentimento dos tweets recolhidos.Next, you connect to text analytics to detect the sentiment of collected tweets.

Adicionar a deteção de sentimentosAdd sentiment detection

  1. Clique em New step (Novo passo) e então, Add an action (Adicionar uma ação).Click New Step, and then Add an action.

  2. Em Escolher uma ação, escreva Análise de Texto e clique na ação Detetar sentimento.In Choose an action, type Text Analytics, and then click the Detect sentiment action.

    Novo passo e Adicionar uma ação

  3. Escreva um nome de ligação, como MyCognitiveServicesConnection, cole a chave da API dos Serviços Cognitivos e o ponto final dos Serviços Cognitivos que definir à parte num editor de texto, e clique em Criar.Type a connection name such as MyCognitiveServicesConnection, paste the key for your Cognitive Services API and the Cognitive Services endpoint you set aside in a text editor, and click Create.

    Novo passo e Adicionar uma ação

  4. Em seguida, introduza o Texto do Tweet na caixa de texto e clique em Novo Passo.Next, enter Tweet Text in the text box and then click on New Step.

    Defina o texto a analisar

Agora que a deteção de sentimentos está configurada, pode adicionar uma ligação à função que consome a saída da classificação do sentimento.Now that sentiment detection is configured, you can add a connection to your function that consumes the sentiment score output.

Ligar a saída do sentimento à funçãoConnect sentiment output to your function

  1. No Estruturador do Logic Apps, clique em Novo passo > Adicionar uma ação, filtre por Funções do Azure e clique em Escolher uma função do Azure.In the Logic Apps Designer, click New step > Add an action, filter on Azure Functions and click Choose an Azure function.

    Detetar Sentimento

  2. Selecione a aplicação de funções que criou anteriormente.Select the function app you created earlier.

    Selecionar função

  3. Selecione a função que criou para este tutorial.Select the function you created for this tutorial.

    Selecionar função

  4. No corpo do Pedido, clique em Classificação e em Guardar.In Request Body, click Score and then Save.

    Classificação

Agora, a função é acionada quando é enviada uma classificação de sentimento a partir da aplicação lógica.Now, your function is triggered when a sentiment score is sent from the logic app. A função devolve uma categoria codificada com cores à aplicação lógica.A color-coded category is returned to the logic app by the function. Em seguida, adicione uma notificação de e-mail que é enviada quando a função devolver o valor de sentimento RED (vermelho).Next, you add an email notification that is sent when a sentiment value of RED is returned from the function.

Adicionar notificações por e-mailAdd email notifications

A última parte do fluxo de trabalho é acionar um e-mail quando o sentimento é classificado como RED.The last part of the workflow is to trigger an email when the sentiment is scored as RED. Este tópico utiliza um conector do Outlook.com.This topic uses an Outlook.com connector. Pode seguir passos semelhantes para utilizar um conector do Gmail ou do Outlook do Office 365.You can perform similar steps to use a Gmail or Office 365 Outlook connector.

  1. No Estruturador de Aplicações Lógicas, clique em Novo passo > Adicionar uma condição.In the Logic Apps Designer, click New step > Add a condition.

    Adicione uma condição à aplicação lógica.

  2. Clique em Escolher um valor e clique em Corpo.Click Choose a value, then click Body. Selecione é igual ao, clique em Escolher um valor, escreva RED e clique em Guardar.Select is equal to, click Choose a value and type RED, and click Save.

    Escolha uma ação para a condição.

  3. Em IF TRUE, clique em Adicionar uma ação, procure por outlook.com, clique em Send an email (Enviar e-mail) e inicie sessão na sua conta do Outlook.com.In IF TRUE, click Add an action, search for outlook.com, click Send an email, and sign in to your Outlook.com account.

    Configure o e-mail para a ação “send an email”.

    Nota

    Se não tiver uma conta do Outlook.com, pode escolher outro conector, como o Gmail ou Outlook do Office 365If you don't have an Outlook.com account, you can choose another connector, such as Gmail or Office 365 Outlook

  4. Na ação Send an email, utilize as definições de e-mail, conforme especificado na tabela.In the Send an email action, use the email settings as specified in the table.

    Configure o e-mail para a ação “send an email”.

DefiniçãoSetting Valor sugeridoSuggested value DescriçãoDescription
ParaTo Escreva o seu endereço de e-mailType your email address O endereço de e-mail que recebe a notificação.The email address that receives the notification.
AssuntoSubject Sentimento negativo de tweet detetadoNegative tweet sentiment detected A linha de assunto da notificação de e-mail.The subject line of the email notification.
CorpoBody Texto do tweet, LocalizaçãoTweet text, Location Clique nos parâmetros Tweet text (Texto do tweet) e Location (Localização).Click the Tweet text and Location parameters.
  1. Clique em Guardar.Click Save.

Agora que o fluxo de trabalho está concluído, pode ativar a aplicação lógica e ver a função em funcionamento.Now that the workflow is complete, you can enable the logic app and see the function at work.

Testar o fluxo de trabalhoTest the workflow

  1. No Estruturador de Aplicações Lógicas, clique em Executar para iniciar a aplicação.In the Logic App Designer, click Run to start the app.

  2. Na coluna esquerda, clique em Descrição Geral para ver o estado da aplicação lógica.In the left column, click Overview to see the status of the logic app.

    Estado de execução da aplicação lógica

  3. (Opcional) Clique numa das execuções para ver detalhes da mesma.(Optional) Click one of the runs to see details of the execution.

  4. Aceda à sua função, veja os registos e confirme que os valores de sentimentos foram recebidos e processados.Go to your function, view the logs, and verify that sentiment values were received and processed.

    Ver registos de funções

  5. Se for detetado um sentimento potencialmente negativo, receberá um e-mail.When a potentially negative sentiment is detected, you receive an email. Se não tiver recebido uma mensagem de e-mail, pode alterar o código da função para devolver sempre RED:If you haven't received an email, you can change the function code to return RED every time:

    return (ActionResult)new OkObjectResult("RED");
    

    Depois de ter verificado as notificações por e-mail, reverta para o código original:After you have verified email notifications, change back to the original code:

    return requestBody != null
        ? (ActionResult)new OkObjectResult(category)
        : new BadRequestObjectResult("Please pass a value on the query string or in the request body");
    

    Importante

    Depois de concluir este tutorial, deve desativar a aplicação lógica.After you have completed this tutorial, you should disable the logic app. Ao desativar a aplicação, evita ser cobrado por execuções e esgotar as transações na sua API dos Serviços Cognitivos.By disabling the app, you avoid being charged for executions and using up the transactions in your Cognitive Services API.

Acabou de ver como é fácil integrar Funções num fluxo de trabalho das Aplicações Lógicas.Now you have seen how easy it is to integrate Functions into a Logic Apps workflow.

Desativar a aplicação lógicaDisable the logic app

Para desativar a aplicação lógica, clique em Descrição Geral e clique em Desativar, na parte superior do ecrã.To disable the logic app, click Overview and then click Disable at the top of the screen. Desativar a aplicação impede que esta seja executada e incorra em custos, sem ser eliminada.Disabling the app stops it from running and incurring charges without deleting the app.

Registo de funções

Passos SeguintesNext steps

Neste tutorial, ficou a saber como:In this tutorial, you learned how to:

  • Criar um Recurso de API dos Serviços Cognitivos.Create a Cognitive Services API Resource.
  • Criar uma função que categoriza sentimentos de tweet.Create a function that categorizes tweet sentiment.
  • Criar uma aplicação lógica que se liga ao Twitter.Create a logic app that connects to Twitter.
  • Adicionar a deteção de sentimento à aplicação lógica.Add sentiment detection to the logic app.
  • Ligar a aplicação lógica à função.Connect the logic app to the function.
  • Enviar um e-mail com base na resposta da função.Send an email based on the response from the function.

Avance para o tutorial seguinte para aprender a criar uma API sem servidor para a função.Advance to the next tutorial to learn how to create a serverless API for your function.

Para saber mais sobre as aplicações lógicas, veja Azure Logic Apps.To learn more about Logic Apps, see Azure Logic Apps.