チュートリアル: Azure Logic Apps と統合される関数を作成する

Azure Functions は、Logic Apps デザイナーで Azure Logic Apps と統合できます。 この統合により、他の Azure サービスやサードパーティ製のサービスとのオーケストレーションにおいて Functions の処理能力を使用することができます。

このチュートリアルでは、Twitter アクティビティを分析するワークフローを作成する方法について説明します。 ツイートが評価された後、肯定的なセンチメントが検出されると、ワークフローによって通知が送信されます。

このチュートリアルで学習する内容は次のとおりです。

  • Cognitive Services API リソースを作成します。
  • ツイートの感情を分類する関数を作成します。
  • Twitter に接続するロジック アプリを作成します。
  • 感情の検出をロジック アプリに追加します。
  • ロジック アプリを関数に接続します。
  • 関数からの応答に基づいて電子メールを送信します。

前提条件

  • アクティブな Twitter アカウント。
  • Outlook.com のアカウント (通知の送信用)。

Note

Gmail コネクタの使用を希望する場合、ロジック アプリで制限なしにこのコネクタを使用できるのは、G-Suite ビジネス アカウントだけです。 Gmail コンシューマー アカウントを持っている場合は、Google によって承認された特定のアプリおよびサービスのみで Gmail コネクタを使用できるほか、認証に使用する Google クライアント アプリを Gmail コネクタで作成することができます。

詳細については、「Azure Logic Apps での Google コネクタのデータ セキュリティとプライバシー ポリシー」を参照してください。

Text Analytics リソースを作成する

Cognitive Services API は、個々のリソースとして Azure で使用できます。 Text Analytics API を使用して、投稿されたツイートのセンチメントを検出します。

  1. Azure portal にサインインします。

  2. Azure Portal の左上隅にある [リソースの作成] を選択します。

  3. [カテゴリ][AI + 機械学習] を選択します

  4. [Text Analytics][作成] を選択します。

  5. [Create Text Analytics]\(Text Analytics の作成\) 画面で、次の値を入力します。

    設定 解説
    サブスクリプション お使いの Azure サブスクリプション名
    Resource group tweet-sentiment-tutorial という名前の新しいリソース グループを作成します 後でこのリソース グループを削除すると、このチュートリアルで作成したすべてのリソースが削除されます。
    リージョン 最も近いリージョンを選択します
    名前 TweetSentimentApp
    Pricing tier Free F0 を選択します
  6. [Review + create]\(レビュー + 作成\) を選択します。

  7. [作成] を選択します

  8. デプロイが完了したら、 [リソースに移動] を選択します。

Text Analytics の設定を取得する

Text Analytics リソースを作成したら、いくつかの設定をコピーして、後で使用できるように保存しておきます。

  1. [Keys and Endpoint]\(キーとエンドポイント\) を選択します。

  2. 入力ボックスの端にあるアイコンをクリックして、 [キー 1] をコピーします。

  3. その値をテキスト エディターに貼り付けます。

  4. 入力ボックスの端にあるアイコンをクリックして、 [エンドポイント] をコピーします。

  5. その値をテキスト エディターに貼り付けます。

Function App の作成

  1. 上部の検索ボックスで、「関数アプリ」を検索して選択します。

  2. [作成] を選択します

  3. 次の値を入力します。

    設定 推奨値 解説
    サブスクリプション お使いの Azure サブスクリプション名
    Resource group tweet-sentiment-tutorial このチュートリアル全体で、同じリソース グループ名を使用します。
    関数アプリ名 TweetSentimentAPI + 一意のサフィックス 関数アプリケーション名はグローバルに一意です。 有効な文字は、a-z (大文字と小文字の区別をしない)、0-9、および -です。
    発行 コード
    ランタイム スタック .NET 提供される関数コードは、C# で記述されています。
    Version 最新のバージョン番号を選択します
    リージョン 最も近いリージョンを選択します
  4. [Review + create]\(レビュー + 作成\) を選択します。

  5. [作成] を選択します

  6. デプロイが完了したら、 [リソースに移動] を選択します。

HTTP によってトリガーされる関数を作成する

  1. [関数] ウィンドウの左側のメニューで、 [関数] を選択します。

  2. 上部のメニューで [追加] を選択し、次の値を入力します。

    設定 解説
    開発環境 ポータルでの開発
    Template HTTP トリガー
    新しい関数 TweetSentimentFunction これが関数の名前です。
    承認レベル Function
  3. [追加] ボタンを選びます。

  4. [Code + Test]\(コード + テスト\) ボタンを選択します。

  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. ツール バーの [保存] ボタンを選択して、変更を保存します。

    Note

    この関数をテストするには、上部のメニューの [テストと実行] を選択します。 [入力] タブで、 [Body]\(本文\) 入力ボックスに値「0.9」を入力し、 [実行] を選択します。 [出力] セクションの [HTTP 応答のコンテンツ] ボックスに、 [肯定的] という値が返されていることを確認します。

次に、Azure Functions、Twitter、および Cognitive Services API と統合されるロジック アプリを作成します。

ロジック アプリを作成する

  1. 上部の検索ボックスで、「ロジック アプリ」を検索して選択します。

  2. [追加] を選択します。

  3. [従量課金プラン] を選択し、次の値を入力します。

    設定 推奨値
    サブスクリプション お使いの Azure サブスクリプション名
    Resource group tweet-sentiment-tutorial
    ロジック アプリ名 TweetSentimentApp
    リージョン 最も近いリージョンを選択します。可能であれば、前の手順で選択したリージョンと同じリージョンを選択します。

    その他の設定はすべて、既定値のままにしておきます。

  4. [Review + create]\(レビュー + 作成\) を選択します。

  5. [作成] を選択します

  6. デプロイが完了したら、 [リソースに移動] を選択します。

  7. [空のロジック アプリ] ボタンを選択します。

    [空のロジック アプリ] ボタン

  8. ツール バーの [保存] ボタンを選択して、ここまでの作業を保存します。

これで、Logic Apps デザイナーを使用してサービスとトリガーをアプリケーションに追加できるようになりました。

Twitter への接続

アプリが新しいツイートをポーリングできるように、Twitter への接続を作成します。

  1. 上部の検索ボックスで、「Twitter」を検索します。

  2. [Twitter] アイコンを選択します。

  3. [新しいツイートが投稿されたら] トリガーを選択します。

  4. 接続を設定するには、次の値を入力します。

    設定
    [接続名] MyTwitterConnection
    認証の種類 既定の共有アプリケーションを使用する
  5. [サインイン] を選択します。

  6. ポップアップ ウィンドウの指示に従って、Twitter へのサインインを完了します。

  7. 次に、 [新しいツイートが投稿されたら] ボックスで、次の値を入力します。

    設定
    検索テキスト #my-twitter-tutorial
    [項目を確認する頻度]: ボックスに「1」と入力し、
    ドロップダウンで [Hour]\(時間\) を選択します 異なる値を入力することもできますが、Twitter コネクタの現在の制限事項を確認してください。
  8. ツール バーの [保存] ボタンを選択して、ここまでの作業を保存します。

次に、テキスト分析に接続し、収集されたツイートのセンチメントを検出します。

Text Analytics のセンチメント検出を追加する

  1. [新しいステップ] を選択します。

  2. 検索ボックスで、「Text Analytics」を検索します。

  3. [Text Analytics] アイコンを選択します。

  4. [感情の検出] を選択し、次の値を入力します。

    設定
    [接続名] TextAnalyticsConnection
    アカウント キー 前に保存しておいた Text Analytics アカウント キーを貼り付けます。
    サイトの URL 前に保存しておいた Text Analytics エンドポイントを貼り付けます。
  5. [作成] を選択します

  6. [新しいパラメーターの追加] ボックス内をクリックし、ポップアップに表示されるドキュメントの横にあるチェック ボックスをオンにします。

  7. [documents Id - 1]\(ドキュメント ID - 1\) ボックス内をクリックして、動的なコンテンツのポップアップを開きます。

  8. [動的なコンテンツ] の検索ボックスで、「ID」を検索し、 [ツイート ID] をクリックします。

  9. [documents Text - 1]\(ドキュメント テキスト - 1\) ボックス内をクリックして、動的なコンテンツのポップアップを開きます。

  10. [動的なコンテンツ] の検索ボックスで、「テキスト」を検索し、 [ツイート テキスト] をクリックします。

  11. [アクションを選択してください] で「テキスト分析」と入力し、 [感情の検出] アクションをクリックします。

  12. ツール バーの [保存] ボタンを選択して、ここまでの作業を保存します。

[感情の検出] ボックスは、次のスクリーンショットのようになります。

[感情の検出] の設定

センチメントの出力を関数エンドポイントに接続する

  1. [新しいステップ] を選択します。

  2. 検索ボックスで「Azure Functions」を検索します。

  3. [Azure Functions] アイコンを選択します。

  4. 検索ボックスで自分の関数の名前を検索します。 上記のガイダンスに従った場合、関数名は TweetSentimentAPI で始まります。

  5. 関数アイコンを選択します。

  6. [TweetSentimentFunction] 項目を選択します。

  7. [要求本文] ボックス内をクリックし、ポップアップ ウィンドウで [感情の検出][スコア] 項目を選択します。

  8. ツール バーの [保存] ボタンを選択して、ここまでの作業を保存します。

条件付きステップを追加する

  1. [アクションの追加] ボタンを選択します。

  2. [制御] ボックス内をクリックし、ポップアップ ウィンドウで「制御」を検索して選択します。

  3. [条件] を選択します。

  4. [値の選択] ボックス内をクリックし、ポップアップ ウィンドウで [TweetSentimentFunction][本文] 項目を選択します。

  5. [値の選択] ボックスに「肯定的」と入力します。

  6. ツール バーの [保存] ボタンを選択して、ここまでの作業を保存します。

電子メール通知を追加する

  1. [True] ボックスで、 [アクションの追加] ボタンを選択します。

  2. テキスト ボックスで、「Office 365 Outlook」を検索して選択します。

  3. テキスト ボックスで、「送信」を検索し、 [電子メールの送信] を選択します。

  4. [サインイン] ボタンを選択します。

  5. ポップアップ ウィンドウの指示に従って、Office 365 Outlook へのサインインを完了します。

  6. [宛先] ボックスにメール アドレスを入力します。

  7. [件名] ボックス内をクリックし、 [TweetSentimentFunction] の下の [本文] 項目をクリックします。 [本文] 項目が一覧に表示されない場合は、 [さらに表示] リンクをクリックして、オプションの一覧を展開してください。

  8. [件名][本文] 項目の後に、「ツイート投稿者: 」というテキストを入力します。

  9. ツイート投稿者: 」というテキストの後に、ボックスをもう一度クリックし、 [新しいツイートが投稿されたら] というオプションの一覧で [ユーザー名] を選択します。

  10. [本文] ボックス内をクリックし、 [新しいツイートが投稿されたら] というオプションの一覧で [ツイート テキスト] を選択します。 [ツイート テキスト] 項目が一覧に表示されない場合は、 [もっと見る] リンクをクリックして、オプションの一覧を展開してください。

  11. ツール バーの [保存] ボタンを選択して、ここまでの作業を保存します。

これで、メール ボックスは、このスクリーンショットのようになります。

電子メール通知

ワークフローを実行する

  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 アカウントに戻り、フィードからすべてのテスト ツイートを削除することもできます。

次のステップ