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 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 Functions with Logic Apps and Cognitive Services on Azure to run sentiment analysis from Twitter posts. Uma função HTTP disparada categoriza tweets com cores verde, amarelo ou vermelho com base na pontuação de sentimento.An HTTP triggered 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

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 on 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 Functions fornece uma ótima maneira de descarregar tarefas de processamento em um fluxo de trabalho de aplicativos lógicos.Functions provides a great way to offload processing tasks in a logic apps workflow. Este tutorial usa uma função HTTP disparada para processar pontuações de sentimento de tweet dos Serviços Cognitivos e retornar 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 no canto superior esquerdo do portal do Azure e 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 um aplicativo de funções no portal do Azure

  2. Use as configurações do aplicativo de funções especificadas na tabela abaixo da imagem.Use the function app settings as specified in the table below the image.

    Definir novas configurações do aplicativo de funções

    ConfiguraçãoSetting Valor sugeridoSuggested value DESCRIÇÃODescription
    Nome do aplicativoApp 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, 0-9 e -.Valid characters are a-z, 0-9, and -.
    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.
    SOOS WindowsWindows As opções de linguagem 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 hospedagemHosting plan Plano de consumoConsumption plan 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 de 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ê só paga pelo tempo durante o qual suas funções são executadas.In this serverless hosting, you only pay 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.
    LocalidadeLocation Europa OcidentalWest Europe 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.
    Pilha de tempo de execuçãoRuntime stack Linguagem preferencialPreferred language Escolha um tempo de execução compatível com sua linguagem de programação de funções favorita.Choose a runtime that supports your favorite function programming language. Escolha .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 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 may contain numbers and lowercase letters only. Você também pode usar uma conta existente, mas ela precisa atender aos requisitos da conta de armazenamento.You can also use an existing account, which must meets the storage account requirements.
    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, você pode alterar o Novo nome do recurso ou escolher um Local diferente em uma geografia do Azure onde 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 provisionar e implantar o aplicativo de funções.Select Create to provision and deploy the function app.

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

    Definir novas configurações do aplicativo de funções

  5. 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.

Crie uma função disparada por HTTPCreate an HTTP triggered function

  1. Expanda seu aplicativo de funções e clique no botão + ao lado de Functions.Expand your function app and click the + button next to Functions. Se essa for a primeira função em seu aplicativo 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 de funções no portal do Azure

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

    Escolha o gatilho HTTP

  3. Substitua o conteúdo do arquivo run.csx pelo código abaixo e clique em Salvar: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");
    }
    

    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.

  4. Para testar a função, clique em Testar na extremidade direita para expandir a guia Teste. Digite um valor de 0.2 para o corpo da solicitaçãoe 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. Um valor RED é retornado 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 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. Clique no botão Novo no canto superior esquerdo do portal do Azure.In the Azure portal, click the New 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 Texto do Tweet na caixa de texto e clique em Nova Etapa.Next, enter Tweet Text in the text box and then click on 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 tópico usa um conector do Outlook.com.This topic 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 have 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 como: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.