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 usar funções Azure com aplicações lógicas e serviços cognitivos em Azure para executar análise de sentimento a partir de posts do Twitter.This tutorial shows you how to use Azure Functions with Logic Apps and Cognitive Services on Azure to run sentiment analysis from Twitter posts. Uma função de gatilho HTTP classifica os tweets como verdes, amarelos ou vermelhos com base na pontuação de sentimento.An HTTP trigger 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

Nota

Se quiser utilizar o conector do Gmail, apenas as contas de negócios da G-Suite podem utilizar este conector sem restrições em aplicações lógicas.If you want to use the Gmail connector, only G-Suite business accounts can use this connector without restrictions in logic apps. Se tiver uma conta de consumo do Gmail, pode utilizar o conector do Gmail apenas com aplicações e serviços específicos aprovados pela Google, ou pode criar uma aplicação de cliente da Google para utilizar para autenticação no seu conector Gmail.If you have a Gmail consumer account, you can use the Gmail connector with only specific Google-approved apps and services, or you can create a Google client app to use for authentication in your Gmail connector. Para obter mais informações, consulte as políticas de segurança de dados e privacidade para conectores google em Azure Logic Apps.For more information, see Data security and privacy policies for Google connectors in Azure Logic Apps.

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 Azure.Click Create a resource in the upper left-hand corner of the Azure portal.

  3. Clique em AI + Machine LearningText > Analytics.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.
    LocalizaçãoLocation E.U.A. 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 visão geral e copie o valor do Ponto Final para um editor de texto.Click 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

O Azure Functions fornece uma ótima maneira de descarregar tarefas de processamento num fluxo de trabalho de aplicações lógicas.Azure Functions provides a great way to offload processing tasks in a logic apps workflow. Este tutorial usa uma função de gatilho HTTP para processar pontuações de sentimento de tweet dos Serviços Cognitivos e devolver um valor de categoria.This tutorial uses an HTTP trigger function to process tweet sentiment scores from Cognitive Services and return a category value.

  1. A partir do menu do portal do Azure ou a partir da Home page, selecione Criar um recurso.From the Azure portal menu or the Home page, select Create a resource.

  2. Na nova página, selecione App de Função computacional > Function App.In the New page, select Compute > Function App.

  3. Na página Basics, utilize as definições da aplicação de função conforme especificado na tabela seguinte.On the Basics page, use the function app settings as specified in the following table.

    DefiniçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    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.
    Nome da app de funçãoFunction App name Nome globalmente exclusivoGlobally unique name Nome que identifica a sua aplicação Function App nova.Name that identifies your new function app. Caracteres válidos são a-z (caso insensível), 0-9 e - .Valid characters are a-z (case insensitive), 0-9, and -.
    PublicarPublish CódigoCode Opção para publicar ficheiros de código ou um contentor de Docker.Option to publish code files or a Docker container.
    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. Escolha .NET Core para funções C# e F#.Choose .NET Core for C# and F# functions.
    VersãoVersion Número da versãoVersion number Escolha a versão do seu tempo de execução instalado.Choose the version of your installed runtime.
    RegiãoRegion Região preferidaPreferred region 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.

    Noções básicas

  4. Selecione Seguinte : Hospedagem.Select Next : Hosting. Na página 'Hospedagem', insira as seguintes definições.On the Hosting page, enter the following settings.

    DefiniçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    Conta de armazenamentoStorage account 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 da conta de armazenamento devem ter entre 3 e 24 caracteres de comprimento e podem conter apenas números e letras minúsculas.Storage account names must be between 3 and 24 characters in length and can contain numbers and lowercase letters only. Também pode utilizar uma conta existente, que deve satisfazer os requisitos da conta de armazenamento.You can also use an existing account, which must meet the storage account requirements.
    Sistema operativoOperating system Sistema operativo preferidoPreferred operating system Um sistema operativo é pré-selecionado para si com base na seleção da sua pilha de tempo de execução, mas pode alterar a definição se necessário.An operating system is pre-selected for you based on your runtime stack selection, but you can change the setting if necessary.
    PlanearPlan Consumo (Sem Servidor)Consumption (Serverless) 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 exigido pelas suas funções.In the default Consumption plan, resources are added dynamically as required by your functions. Neste hospedagem sem servidor, paga-se apenas pelo tempo que as suas funções são executadas.In this serverless hosting, you pay only 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.

    Hosting

  5. Selecione Seguinte : Monitorização.Select Next : Monitoring. Na página 'Monitor' insira as seguintes definições.On the Monitoring page, enter the following settings.

    DefiniçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    Application InsightsApplication Insights PredefiniçãoDefault Cria um recurso Application Insights com o mesmo nome app na região suportada mais próxima.Creates an Application Insights resource of the same App name in the nearest supported region. Ao expandir esta definição ou selecionar Criar novos, pode alterar o nome De Insights de Aplicação ou escolher uma região diferente numa geografia Azure onde pretende armazenar os seus dados.By expanding this setting or selecting Create new, you can change the Application Insights name or choose a different region in an Azure geography where you want to store your data.

    Monitorização

  6. Selecione Review + crie para rever as seleções de configuração da aplicação.Select Review + create to review the app configuration selections.

  7. Na página 'Rever + criar', rever as definições e, em seguida, selecionar Criar para provisão e implementar a aplicação de função.On the Review + create page, review your settings, and then select Create to provision and deploy the function app.

  8. Selecione o ícone notificações no canto superior direito do portal e observe a mensagem de implementação conseguida.Select the Notifications icon in the upper-right corner of the portal and watch for the Deployment succeeded message.

  9. 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. Também pode selecionar Pin para painel de instrumentos.You can also select Pin to dashboard. A fixação facilita o regresso a esta função de recurso de aplicação a partir do seu dashboard.Pinning makes it easier to return to this function app resource from your dashboard.

    Notificação de implantação

Criar uma função de gatilho HTTPCreate an HTTP trigger function

  1. A partir do menu esquerdo da janela Funções, selecione Funçõese selecione Adicione no menu superior.From the left menu of the Functions window, select Functions, then select Add from the top menu.

  2. A partir da janela Nova Função, selecione HTTP trigger.From the New Function window, select HTTP trigger.

    Escolha a função de gatilho HTTP

  3. A partir da página Nova Função, selecione Criar Função.From the New Function page, select Create Function.

  4. Na sua nova função de gatilho HTTP, selecione Código + Teste a partir do menu esquerdo, substitua o conteúdo do ficheiro pelo seguinte código run.csx e, em seguida, selecione Guardar:In your new HTTP trigger function, select Code + Test from the left menu, replace the contents of the run.csx file with the following code, and then select 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.

  5. Para testar a função, selecione Teste a partir do menu superior.To test the function, select Test from the top menu. No separador Entrada, introduza um valor 0.2 de corpoe, em seguida, selecione Executar.On the Input tab, enter a value of 0.2 in the Body, and then select Run. Um valor de RED é devolvido no conteúdo de resposta HTTP no separador Saída.A value of RED is returned in the HTTP response content on the Output tab.

    Definir as definições de procuração

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 Azure, clique no botão Criar um botão de recurso encontrado no canto superior esquerdo do portal Azure.In the Azure portal, click the Create a resource button found on the upper left-hand corner of the Azure portal.

  2. Clique na WebLogic > App.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.
    LocalizaçãoLocation E.U.A. 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, insira o texto do Tweet na caixa de texto e, em seguida, clique em Novo Passo.Next, enter Tweet text in the text box and then click 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 Design de Aplicações Lógicas, clique em Novo passo > Adicione uma ação, filtre nas funções Azure e clique em Escolher uma função 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 artigo utiliza um conector Outlook.com.This article 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 Designer de Aplicações Lógicas, clique em Novo passo > Adicione 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.

Agora já viu como é fácil integrar funções num fluxo de trabalho de Apps Lógicas.Now you've 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.