Criar uma função que se integra aos Aplicativos Lógicos do AzureCreate a function that integrates with Azure Logic Apps

O Azure Functions integra-se aos Aplicativos Lógicos do Azure no Designer de Aplicativos Lógicos.Azure Functions integrates with Azure Logic Apps in the Logic Apps Designer. Essa integração permite usar o poder de computação do Functions em orquestrações com outros serviços de terceiros e do Azure.This integration lets you use the computing power of Functions in orchestrations with other Azure and third-party services.

Este tutorial mostra como usar o Azure Functions com os Aplicativos Lógicos e os Serviços Cognitivos no Azure para executar a análise de sentimento de postagens 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 categoriza tweets com cores verde, amarelo ou vermelho com base na pontuação de sentimento.An HTTP trigger function categorizes tweets as green, yellow, or red based on the sentiment score. Um email é enviado quando um sentimento inadequado é detectado.An email is sent when poor sentiment is detected.

imagem dos dois primeiros passos do aplicativo no Designer de Aplicativos Lógicos

Neste tutorial, você aprenderá como:In this tutorial, you learn how to:

  • Crie um Recurso de API de Serviços Cognitivos.Create a Cognitive Services API Resource.
  • Crie uma função que categorize o sentimento do tweet.Create a function that categorizes tweet sentiment.
  • Crie um aplicativo lógico que se conecte ao Twitter.Create a logic app that connects to Twitter.
  • Adicione a detecção de sentimento ao aplicativo lógico.Add sentiment detection to the logic app.
  • Conecte o aplicativo lógico à função.Connect the logic app to the function.
  • Envie um email com base na resposta da função.Send an email based on the response from the function.

Pré-requisitosPrerequisites

Observação

Se você quiser usar o conector do Gmail, somente as contas comerciais do G Suite poderão usar esse conector sem restrições nos aplicativos lógicos.If you want to use the Gmail connector, only G-Suite business accounts can use this connector without restrictions in logic apps. Se você tiver uma conta de consumidor do Gmail, poderá usar o conector do Gmail somente com serviços e aplicativos específicos do Google aprovados ou poderá criar um aplicativo cliente do Google para usar para autenticação no conector do 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, confira Políticas de privacidade e segurança de dados para os conectores do Google nos Aplicativos Lógicos do Azure.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 de Serviços Cognitivos estão disponíveis no Azure como recursos individuais.The Cognitive Services APIs are available in Azure as individual resources. Use a API de Análise de Texto para detectar o sentimento dos tweets que estão sendo monitorados.Use the Text Analytics API to detect the sentiment of the tweets being monitored.

  1. Entre 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, use as configurações especificadas na tabela para criar o recurso.Then, use the settings as specified in the table to create the resource.

    Criar página Recurso cognitivo

    ConfiguraçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    NomeName MyCognitiveServicesAccntMyCognitiveServicesAccnt Escolha um nome de conta exclusivo.Choose a unique account name.
    LocalidadeLocation Oeste dos EUAWest US Use o local mais próximo de você.Use the location nearest you.
    Tipo de preçosPricing tier F0F0 Comece com o nível mais baixo.Start with the lowest tier. Caso suas chamadas se esgotem, dimensione para uma camada mais elevada.If you run out of calls, scale to a higher tier.
    Grupo de recursosResource group myResourceGroupmyResourceGroup Use 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 seu recurso.Click Create to create your resource.

  5. Clique em Visão geral e copie o valor do Ponto de Extremidade para um editor de texto.Click Overview and copy the value of the Endpoint to a text editor. Esse valor é usado para criar uma conexão com a API dos Serviços Cognitivos.This value is used when creating a connection to the Cognitive Services API.

    Configurações dos Serviços Cognitivos

  6. Na coluna de navegação à esquerda, clique em Chaves, copie o valor da Chave 1 e salve-o em um 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. Você pode usar a chave para conectar o aplicativo lógico à API dos Serviços Cognitivos.You use the key to connect the logic app to your Cognitive Services API.

    Chaves dos Serviços Cognitivos

Crie o aplicativo de funçõesCreate the function app

O Azure Functions fornece uma ótima maneira de descarregar tarefas de processamento em um fluxo de trabalho de aplicativos lógicos.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 retornar 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. No menu do portal do Azure ou na Página Inicial, selecione Criar um recurso.From the Azure portal menu or the Home page, select Create a resource.

  2. Na página Novo, selecione Computação > Aplicativo de Funções.In the New page, select Compute > Function App.

  3. Na página Informações Básicas, use as configurações do aplicativo de funções especificadas na tabela a seguir.On the Basics page, use the function app settings as specified in the following table.

    ConfiguraçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    AssinaturaSubscription Sua assinaturaYour subscription A assinatura na qual este novo aplicativo de funções será criado.The subscription under which this new function app is created.
    Grupo de RecursosResource Group myResourceGroupmyResourceGroup Nome do novo grupo de recursos no qual criar o seu aplicativo de funções.Name for the new resource group in which to create your function app.
    Nome do aplicativo de funçõesFunction App name Nome globalmente exclusivoGlobally unique name Nome que identifica seu novo aplicativo de funções.Name that identifies your new function app. Os caracteres válidos são a-z (não diferencia maiúsculas de minúsculas), 0-9 e -.Valid characters are a-z (case insensitive), 0-9, and -.
    PublicarPublish CódigoCode Opção para publicar arquivos de código ou um contêiner do Docker.Option to publish code files or a Docker container.
    Pilha de runtimeRuntime stack Linguagem preferencialPreferred language Escolha um runtime compatível com sua linguagem de programação de funções favorita.Choose a runtime that supports your favorite function programming language. Escolha .NET Core para as funções de C# e F#.Choose .NET Core for C# and F# functions.
    VersãoVersion Número de versãoVersion number Escolha a versão do seu runtime instalado.Choose the version of your installed runtime.
    RegiãoRegion Região preferencialPreferred region Escolha uma região perto de você ou perto de outros serviços que suas funções acessam.Choose a region near you or near other services your functions access.

    Noções básicas

  4. Selecione Avançar: Hospedagem.Select Next : Hosting. Na página Hospedagem, insira as configurações a seguir.On the Hosting page, enter the following settings.

    ConfiguraçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    Conta de armazenamentoStorage account Nome globalmente exclusivoGlobally unique name Crie uma conta de armazenamento usada pelo seu aplicativo 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 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. Use também uma conta existente, que precisará atender aos requisitos da conta de armazenamento.You can also use an existing account, which must meet the storage account requirements.
    Sistema operacionalOperating system Sistema operacional preferencialPreferred operating system Um sistema operacional é pré-selecionado para você com base na seleção da pilha de runtime, mas você pode alterar a configuraçã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.
    PlanoPlan Consumo (Sem servidor)Consumption (Serverless) Plano de hospedagem que define como os recursos são alocados para seu aplicativo de funções.Hosting plan that defines how resources are allocated to your function app. No plano Consumo padrão, os recursos são adicionados dinamicamente conforme exigido por suas funções.In the default Consumption plan, resources are added dynamically as required by your functions. Nesta hospedagem sem servidor, você paga somente pelo tempo durante o qual suas funções são executadas.In this serverless hosting, you pay only for the time your functions run. Quando você executa em um Plano do Serviço de Aplicativo, deve gerenciar o dimensionamento do aplicativo de funções.When you run in an App Service plan, you must manage the scaling of your function app.

    Hosting

  5. Selecione Avançar: Monitoramento.Select Next : Monitoring. Na página Monitoramento, insira as configurações a seguir.On the Monitoring page, enter the following settings.

    ConfiguraçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    Application InsightsApplication Insights PadrãoDefault Cria um recurso do Application Insights do mesmo nome do aplicativo na região com suporte mais próxima.Creates an Application Insights resource of the same App name in the nearest supported region. Ao expandir essa configuração ou selecionar Criar, você pode alterar o nome do Application Insights ou escolher uma região diferente em uma geografia do Azure onde deseja armazenar 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.

    Monitoramento

  6. Selecione Examinar + criar para examinar as seleções de configuração do aplicativo.Select Review + create to review the app configuration selections.

  7. Na página Examinar + criar, examine as configurações e, em seguida, selecione Criar para provisionar e implantar o aplicativo de funções.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 veja se a mensagem Implantação concluída com êxito é exibida.Select the Notifications icon in the upper-right corner of the portal and watch for the Deployment succeeded message.

  9. Selecione Ir para recursos para exibir o novo aplicativo 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 de aplicativo de função no seu painel.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. No menu esquerdo da janela Funções, selecione Funções e depois selecione Adicionar no menu superior.From the left menu of the Functions window, select Functions, then select Add from the top menu.

  2. Na janela Nova Função, selecione Gatilho HTTP.From the New Function window, select HTTP trigger.

    Escolher uma função de gatilho HTTP

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

  4. Em sua nova função de gatilho HTTP, selecione Código + Teste no menu esquerdo, substitua o conteúdo do arquivo run.csx pelo seguinte código e, em seguida, selecione Salvar: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");
    }
    

    Esse código de função retorna uma categoria de cor com base na pontuação de sentimento recebida na solicitação.This function code returns a color category based on the sentiment score received in the request.

  5. Para testar a função, selecione Testar no menu superior.To test the function, select Test from the top menu. Na guia Entrada, insira um valor de 0.2 no Corpo e, em seguida, selecione Executar.On the Input tab, enter a value of 0.2 in the Body, and then select Run. Um valor de VERMELHO é retornado no Conteúdo de resposta HTTP na guia Saída.A value of RED is returned in the HTTP response content on the Output tab.

    Definir as configurações de proxy

Agora você tem uma função que categoriza as pontuações de sentimento.Now you have a function that categorizes sentiment scores. Em seguida, você pode criar um aplicativo lógico que integra sua função ao Twitter e à API dos Serviços Cognitivos.Next, you create a logic app that integrates your function with your Twitter and Cognitive Services API.

Criar um aplicativo lógicoCreate a logic app

  1. No portal do Azure, clique no botão Criar um recurso localizado no canto superior esquerdo do portal do Azure.In the Azure portal, click the Create a resource button found on the upper left-hand corner of the Azure portal.

  2. Clique em Web > Aplicativo Lógico.Click Web > Logic App.

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

    Criar o aplicativo lógico no portal do Azure

    ConfiguraçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    NomeName TweetSentimentTweetSentiment Escolha um nome apropriado para seu aplicativo.Choose an appropriate name for your app.
    Grupo de recursosResource group myResourceGroupmyResourceGroup Escolha o mesmo grupo de recursos existente.Choose the same existing resource group as before.
    LocalidadeLocation Leste dos EUAEast US Escolha um local perto de você.Choose a location close to you.
  4. Depois de inserir os valores de configurações corretos, clique em Criar para criar o aplicativo lógico.Once you have entered the proper settings values, click Create to create your logic app.

  5. Depois que o aplicativo for criado, clique em seu novo aplicativo lógico fixado no painel.After the app is created, click your new logic app pinned to the dashboard. Em seguida, no Designer de Aplicativos Lógicos, role para baixo e clique no modelo Aplicativo Lógico em Branco.Then in the Logic Apps Designer, scroll down and click the Blank Logic App template.

    Modelo Aplicativo Lógico em Branco

Agora você pode usar o Designer de Aplicativos Lógicos para adicionar serviços e gatilhos ao aplicativo.You can now use the Logic Apps Designer to add services and triggers to your app.

Conectar-se ao TwitterConnect to Twitter

Primeiro, crie uma conexão para sua conta do Twitter.First, create a connection to your Twitter account. O aplicativo lógico sonda tweets, o que dispara a execução do aplicativo.The logic app polls for tweets, which trigger the app to run.

  1. No designer, clique no serviço Twitter e clique no gatilho Quando um novo tweet é publicado.In the designer, click the Twitter service, and click the When a new tweet is posted trigger. Entre na sua conta do Twitter e autorize os Aplicativos Lógicos a usar sua conta.Sign in to your Twitter account and authorize Logic Apps to use your account.

  2. Use as configurações de gatilho do Twitter conforme especificado na tabela.Use the Twitter trigger settings as specified in the table.

    Configurações do conector do Twitter

    ConfiguraçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    Texto da pesquisaSearch text #Azure#Azure Use uma hashtag que seja popular o suficiente para gerar novos tweets no intervalo escolhido.Use a hashtag that is popular enough to generate new tweets in the chosen interval. Quando você usa a camada gratuita e a hashtag é muito popular, é possível consumir rapidamente a cota de transação na 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 as solicitações do Twitter, em unidades de frequência.The time elapsed between Twitter requests, in frequency units.
    FrequênciaFrequency MinutoMinute A unidade de frequência usada para sondar o Twitter.The frequency unit used for polling Twitter.
  3. Clique em Salvar para se conectar à sua conta do Twitter.Click Save to connect to your Twitter account.

Agora, seu aplicativo está conectado ao Twitter.Now your app is connected to Twitter. Em seguida, conecte-se à análise de texto para detectar o sentimento dos tweets coletados.Next, you connect to text analytics to detect the sentiment of collected tweets.

Adicionar detecção de sentimentoAdd sentiment detection

  1. Clique em Nova Etapa e em Adicionar uma ação.Click New Step, and then Add an action.

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

    Nova Etapa e, então, Adicionar uma ação

  3. Digite um nome de conexão, como MyCognitiveServicesConnection, cole a chave da API dos Serviços Cognitivos e o ponto de extremidade de Serviços Cognitivos que você anotou em um 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.

    Nova Etapa e, então, Adicionar uma ação

  4. Em seguida, insira o Texto do tweet na caixa de texto e clique em Nova Etapa.Next, enter Tweet text in the text box and then click New Step.

    Defina texto a ser analisado

Agora que a detecção de sentimento está configurada, você pode adicionar uma conexão à função que consome a saída da pontuação de sentimento.Now that sentiment detection is configured, you can add a connection to your function that consumes the sentiment score output.

Conecte a saída de sentimento à funçãoConnect sentiment output to your function

  1. No Designer de Aplicativos Lógicos, clique em Nova Etapa > Adicionar uma ação, filtre pelo Azure Functions 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.

    Detectar Sentimento

  2. Selecione o aplicativo de funções que você criou anteriormente.Select the function app you created earlier.

    Selecionar função

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

    Selecionar função

  4. Em Corpo da Solicitação, clique em Pontuação e em Salvar.In Request Body, click Score and then Save.

    Pontuação

Agora, sua função é disparada quando uma pontuação de sentimento é enviada do aplicativo lógico.Now, your function is triggered when a sentiment score is sent from the logic app. Uma categoria com codificação de cores é retornada para o aplicativo lógico pela função.A color-coded category is returned to the logic app by the function. Em seguida, adicione uma notificação por email que é enviada quando um valor de sentimento RED é retornado pela função.Next, you add an email notification that is sent when a sentiment value of RED is returned from the function.

Adicionar notificações por emailAdd email notifications

A última parte do fluxo de trabalho é disparar um email quando o sentimento foi classificado como RED.The last part of the workflow is to trigger an email when the sentiment is scored as RED. Este artigo usa um conector do Outlook.com.This article uses an Outlook.com connector. Você pode executar etapas semelhantes para usar um conector Gmail ou Outlook do Office 365.You can perform similar steps to use a Gmail or Office 365 Outlook connector.

  1. No Designer de Aplicativos Lógicos, clique em Nova etapa > Adicionar uma condição.In the Logic Apps Designer, click New step > Add a condition.

    Adicionar uma condição ao aplicativo lógico.

  2. Clique em Escolha um valor e clique em Corpo.Click Choose a value, then click Body. Selecione é igual a, clique em Escolha um valor, digite REDe clique em Salvar.Select is equal to, click Choose a value and type RED, and click Save.

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

  3. Em SE VERDADEIRO, clique em Adicionar uma ação, procure outlook.com, clique em Enviar um emaile entre 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 email para enviar uma ação de email.

    Observação

    Se você não tiver uma conta do Outlook.com, poderá escolher outro conector, como 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 Enviar um email, use as configurações de email conforme especificadas na tabela.In the Send an email action, use the email settings as specified in the table.

    Configure o email para enviar uma ação de email.

ConfiguraçãoSetting Valor sugeridoSuggested value DescriçãoDescription
ParaTo Digitar endereço de emailType your email address O endereço de email que recebe a notificação.The email address that receives the notification.
AssuntoSubject Sentimento de tweet negativo detectadoNegative tweet sentiment detected A linha de assunto do email de notificação.The subject line of the email notification.
CorpoBody Texto do Tweet, localTweet text, Location Clique nos parâmetros Texto do tweet e Local.Click the Tweet text and Location parameters.
  1. Clique em Save (Salvar).Click Save.

Agora que o fluxo de trabalho foi concluído, você poderá habilitar o aplicativo lógico e consultar a função em operação.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 Designer de Aplicativos Lógicos, clique em Executar para iniciar o aplicativo.In the Logic App Designer, click Run to start the app.

  2. Na coluna à esquerda, clique em Visão Geral para ver o status do aplicativo lógico.In the left column, click Overview to see the status of the logic app.

    Status de execução do aplicativo lógico

  3. (Opcional) Clique em uma das execuções para ver os detalhes da execução.(Optional) Click one of the runs to see details of the execution.

  4. Vá para sua função, exiba os logs e verifique se os valores de sentimento foram recebidos e processados.Go to your function, view the logs, and verify that sentiment values were received and processed.

    Exibir os logs da função

  5. Quando um sentimento potencialmente negativo é detectado, você recebe um email.When a potentially negative sentiment is detected, you receive an email. Se você ainda não recebeu um email, poderá alterar o código de função para retornar RED sempre que: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 verificar as notificações por email, altere 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, você deverá desabilitar o aplicativo lógico.After you have completed this tutorial, you should disable the logic app. Ao desabilitar o aplicativo, você evita ser cobrado pelas execuções e não consome as transações em 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 você viu como é fácil integrar o Functions a um fluxo de trabalho dos Aplicativos Lógicos.Now you've seen how easy it is to integrate Functions into a Logic Apps workflow.

Desabilitar o aplicativo lógicoDisable the logic app

Para desabilitar o aplicativo lógico, clique em Visão Geral e clique em Desabilitar na parte superior da tela.To disable the logic app, click Overview and then click Disable at the top of the screen. A desabilitação do aplicativo impede que ele seja executado e incorra em encargos sem precisar ser excluído.Disabling the app stops it from running and incurring charges without deleting the app.

Logs da função

Próximas etapasNext steps

Neste tutorial, você aprendeu a:In this tutorial, you learned how to:

  • Crie um Recurso de API de Serviços Cognitivos.Create a Cognitive Services API Resource.
  • Crie uma função que categorize o sentimento do tweet.Create a function that categorizes tweet sentiment.
  • Crie um aplicativo lógico que se conecte ao Twitter.Create a logic app that connects to Twitter.
  • Adicione a detecção de sentimento ao aplicativo lógico.Add sentiment detection to the logic app.
  • Conecte o aplicativo lógico à função.Connect the logic app to the function.
  • Envie um email com base na resposta da função.Send an email based on the response from the function.

Vá para o próximo tutorial para aprender a criar uma API sem servidor para sua função.Advance to the next tutorial to learn how to create a serverless API for your function.

Para saber mais sobre os Aplicativos Lógicos, consulte Aplicativos Lógicos do Azure.To learn more about Logic Apps, see Azure Logic Apps.