教學課程:建立與 Azure Logic Apps 整合的函式

Azure Functions 與 Logic Apps 設計工具中的 Azure Logic Apps 進行整合。 此整合可讓您搭配其他 Azure 和協力廠商服務,在協調流程中使用 Functions 的計算能力。

此教學課程說明如何建立工作流程來分析 Twitter 活動。 評估推文時,工作流程會在偵測到正面情感時傳送通知。

在本教學課程中,您將了解:

  • 建立 Azure AI 服務 API 資源。
  • 建立可將推文情感進行分類的函式。
  • 建立連線至 Twitter 的邏輯應用程式。
  • 將情感偵測新增至邏輯應用程式。
  • 將邏輯應用程式連線至函式。
  • 以函式的回應作為基礎來傳送電子郵件。

必要條件

注意

如果您想要使用 Gmail 連接器,只有 G-Suite 的商務帳戶可以在邏輯應用程式中使用此連接器,而不受限制。 如果您有 Gmail 取用者帳戶,您只能使用 Gmail 連接器搭配特定的 Google 核准應用程式及服務,或者您可以建立 Google 用戶端應用程式,以用來在 Gmail 連接器中進行驗證

如需詳細資訊,請參閱 Azure Logic Apps 中 Google 連接器的資料安全性和隱私權原則

建立文字分析資源

Azure AI 服務 API 以個別資源的形式在 Azure 中提供。 使用文字分析 API 來偵測張貼推文的情感。

  1. 登入 Azure 入口網站

  2. 選取 Azure 入口網站左上角的 [建立資源] 。

  3. 在 [類別] 下方,選取 [AI + 機器學習服務]

  4. 在 [文字分析] 底下,選取 [建立]

  5. 在 [建立文字分析] 畫面中,輸入下列值。

    設定 備註
    訂用帳戶 您的 Azure 訂用帳戶名稱
    資源群組 建立名為 tweet-sentiment-tutorial 的新資源群組 稍後,您會刪除此資源群組,以移除此教學課程期間建立的所有資源。
    區域 選取距離您最近的區域
    名稱 TweetSentimentApp
    定價層 選取 [免費 F0]
  6. 選取 [檢閱 + 建立]。

  7. 選取 建立

  8. 部署完成後,請選取 [前往資源]

取得文字分析設定

建立文字分析資源之後,您將複製一些設定,並暫存這些設定以供稍後使用。

  1. 選取 [金鑰和端點]

  2. 按一下輸入方塊結尾的圖示,以複製 [金鑰 1]

  3. 將值貼到文字編輯器。

  4. 按一下輸入方塊結尾的圖示,以複製 [端點]

  5. 將值貼到文字編輯器。

建立函數應用程式

  1. 從頂端搜尋方塊,搜尋並選取 [函數應用程式]

  2. 選取 建立

  3. 輸入下列值。

    設定 建議的值 備註
    訂用帳戶 您的 Azure 訂用帳戶名稱
    資源群組 tweet-sentiment-tutorial 在此教學課程中全程使用相同的資源群組名稱。
    函數應用程式名稱 TweetSentimentAPI + 唯一尾碼 函數應用程式名稱是全域唯一的。 有效的字元是 a-z (不區分大小寫)、0-9-
    發佈 程式碼
    執行階段堆疊 .NET 提供給您的函式程式碼是以 C# 撰寫。
    版本 選取最新版本號碼
    區域 選取距離您最近的區域
  4. 選取 [檢閱 + 建立]。

  5. 選取 建立

  6. 部署完成後,請選取 [前往資源]

建立 HTTP 觸發函式

  1. 從 [函式] 視窗的左側功能表中,選取 [函式]

  2. 從頂端功能表中選取 [新增],然後輸入下列值。

    設定 備註
    開發環境 在入口網站中開發
    範本 HTTP 觸發程序
    新增函式 TweetSentimentFunction 這是函式的名稱。
    授權等級 Function
  3. 選取新增按鈕。

  4. 選取 [編碼 + 測試] 按鈕。

  5. 在程式碼編輯器視窗中貼上下列程式碼。

    #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 requestBody = String.Empty;
        using (StreamReader streamReader =  new  StreamReader(req.Body))
        {
            requestBody = await streamReader.ReadToEndAsync();
        }
    
        dynamic score = JsonConvert.DeserializeObject(requestBody);
        string value = "Positive";
    
        if(score < .3)
        {
            value = "Negative";
        }
        else if (score < .6) 
        {
            value = "Neutral";
        }
    
        return requestBody != null
            ? (ActionResult)new OkObjectResult(value)
           : new BadRequestObjectResult("Pass a sentiment score in the request body.");
    }
    

    情感分數會傳遞至函式,而其會傳回值的類別名稱。

  6. 選取工具列上的 [儲存] 按鈕以儲存變更。

    注意

    若要測試函式,請從頂端功能表中選取 [測試/執行]。 在 [輸入] 索引標籤的 [本文] 輸入方塊中,輸入 0.9 的值,然後選取 [執行]。 在 [輸出] 區段中,驗證 [HTTP 回應內容] 方塊中已傳回 Positive 的值。

接下來,建立一個與 Azure Functions、Twitter 和 Azure AI 服務 API 整合的邏輯應用程式。

建立邏輯應用程式

  1. 從頂端搜尋方塊中,搜尋並選取 [Logic Apps]

  2. 選取 [新增]。

  3. 選取 [耗用量],並輸入下列值。

    設定 建議的值
    訂用帳戶 您的 Azure 訂用帳戶名稱
    資源群組 tweet-sentiment-tutorial
    邏輯應用程式名稱 TweetSentimentApp
    區域 選取最接近您的區域,最好是您在先前步驟中選取的相同區域。

    對於所有其他設定,請接受預設值。

  4. 選取 [檢閱 + 建立]。

  5. 選取 建立

  6. 部署完成後,請選取 [前往資源]

  7. 選取 [空白邏輯應用程式] 按鈕。

    Blank Logic App button

  8. 選取工具列上的 [儲存] 按鈕以儲存進度。

您現在可以使用 Logic Apps 設計工具,將服務和觸發程序新增至應用程式。

連線至 Twitter

建立與 Twitter 的連線,讓您的應用程式可以輪詢新的推文。

  1. 在頂端搜尋方塊中,搜尋 Twitter

  2. 選取 [Twitter] 圖示。

  3. 選取 [有新貼文張貼時] 觸發程序。

  4. 輸入下列值來設定連線。

    設定
    連線名稱 MyTwitterConnection
    驗證類型 使用預設的共用應用程式
  5. 選取 [登入]

  6. 遵循快顯視窗中的提示來完成登入 Twitter。

  7. 接著,在 [有新推文張貼時] 方塊中輸入下列值。

    設定
    搜尋文字 #my-twitter-tutorial
    您想要多久檢查項目一次? 在文字方塊中輸入 1,以及
    在下拉式清單中選取 [小時]。 您可以輸入不同的值,但務必檢閱 Twitter 連接器目前的限制
  8. 選取工具列上的 [儲存] 按鈕以儲存進度。

接著,連線至文字分析,以偵測所收集推文的情感。

新增文字分析情感偵測

  1. 選取新步驟

  2. 在搜尋方塊中,搜尋文字分析

  3. 選取 [文字分析] 圖示。

  4. 選取 [偵測情感],然後輸入下列值。

    設定
    連線名稱 TextAnalyticsConnection
    帳戶金鑰 貼上您稍早暫存的文字分析帳戶金鑰。
    網站 URL 貼上您稍早暫存的文字分析端點。
  5. 選取 建立

  6. 按一下 [新增參數] 方塊內部,然後勾選在快顯視窗中出現之文件旁的方塊。

  7. 按一下 [文件識別碼 - 1] 文字方塊內部,以開啟動態內容快顯視窗。

  8. 在 [動態內容] 搜尋方塊中,搜尋識別碼,然後按一下 [推文識別碼]

  9. 按一下 [文件文字 - 1] 文字方塊內部,以開啟動態內容快顯視窗。

  10. 在 [動態內容] 搜尋方塊中,搜尋文字,然後按一下 [推文文字]

  11. 在 [選擇動作] 中,輸入 [文字分析],然後按一下 [偵測情感] 動作。

  12. 選取工具列上的 [儲存] 按鈕以儲存進度。

[偵測情感] 方塊看起來應該像下列螢幕擷取畫面。

Detect Sentiment settings

將情感輸出連接至函式端點

  1. 選取新步驟

  2. 在搜尋方塊中,搜尋 Azure Functions

  3. 選取 [Azure Functions] 圖示。

  4. 在搜尋方塊中搜尋您的函式名稱。 如果您遵循上述指引,您的函式名稱就會以 TweetSentimentAPI 開頭。

  5. 選取函式圖示。

  6. 選取 [TweetSentimentFunction] 項目。

  7. 按一下 [要求本文] 方塊內部,然後從快顯視窗中選取 [偵測情感] 的 [分數] 項目。

  8. 選取工具列上的 [儲存] 按鈕以儲存進度。

新增有條件的步驟

  1. 選取 [新增動作] 按鈕。

  2. 按一下 [控制項] 方塊內部,然後在快顯視窗中搜尋並選取 [控制項]

  3. 選取 [條件]

  4. 按一下 [選擇值] 方塊內部,然後從快顯視窗中選取 [TweetSentimentFunction] 的 [本文] 項目。

  5. 在 [選擇值] 方塊中,輸入 Positive

  6. 選取工具列上的 [儲存] 按鈕以儲存進度。

新增電子郵件通知

  1. 在 [True] 方塊底下,選取 [新增動作] 按鈕。

  2. 在文字方塊中,搜尋並選取 [Office 365 Outlook]

  3. 在文字方塊中,搜尋傳送,然後選取 [傳送電子郵件]

  4. 選取 [登入] 按鈕。

  5. 遵循快顯視窗中的提示來完成登入 Office 365 Outlook。

  6. 在 [收件者] 方塊中,輸入您的電子郵件地址。

  7. 按一下 [主旨] 方塊內部,然後按一下 [TweetSentimentFunction] 底下的 [本文] 項目。 如果清單中未顯示 [本文] 項目,請按一下 [查看更多] 連結以展開選項清單。

  8. 在 [主旨] 中的 [本文] 項目之後,輸入文字「推文來源:」

  9. 在「推文來源:」文字之後,再次按一下方塊,然後從 [有新推文張貼時] 選項清單中選取 [使用者名稱]

  10. 按一下 [本文] 方塊內部,然後在 [有新推文張貼時] 選項清單底下,選取 [推文文字]。 如果清單中未顯示 [推文文字] 項目,請按一下 [查看更多] 連結以展開選項清單。

  11. 選取工具列上的 [儲存] 按鈕以儲存進度。

電子郵件方塊現在看起來應該像這個螢幕擷取畫面。

Email notification

執行工作流程

  1. 從您的 Twitter 帳戶,以下列文字發佈推文:I'm enjoying #my-twitter-tutorial

  2. 返回 Logic Apps 設計工具,然後選取 [執行] 按鈕。

  3. 檢查您的電子郵件是否有來自該工作流程的郵件。

清除資源

若要清除此教學課程期間建立的所有 Azure 服務和帳戶,請刪除資源群組。

  1. 在頂端搜尋方塊中,搜尋資源群組

  2. 選取 [tweet-sentiment-tutorial]

  3. 選取 [刪除資源群組]

  4. 在文字方塊中,輸入 tweet-sentiment-tutorial

  5. 選取刪除按鈕。

(選擇性) 建議您返回 Twitter 帳戶,並從摘要中刪除任何測試推文。

下一步