Azure Logic Apps と Azure Functions を使用して Customer Insights ストリーミング ダッシュボードを作成する
適用対象: Azure Logic Apps (従量課金)
Azure には、インフラストラクチャを気にすることなく、クラウドですばやくアプリをビルドしてホストするのに役立つ、サーバーレス ツールが用意されています。 このチュートリアルでは、カスタマーからのフィードバックによってトリガーされ、機械学習を使用してフィードバックを分析し、Power BI や Azure Data Lake などのソースに洞察を発行するダッシュボードを作成することができます。
このソリューションに向けて、サーバーレス アプリ用の主要な Azure コンポーネントであるAzure Functions と Azure Logic Apps を使用します。 Azure Logic Apps では、サーバーレス コンポーネント間でオーケストレーションを作成したり、200 を超えるサービスや API に接続したりできるように、クラウド内のサーバーレス ワークフロー エンジンが提供されます。 Azure Functions は、クラウド内でサーバーレス コンピューティングを実現します。 このソリューションでは、定義済みのキーワードに基づいてカスタマーのツイートにフラグを設定するために、Azure Functions を使用します。
このシナリオでは、カスタマーからのフィードバックを検出するとトリガーされるロジック アプリを作成します。 カスタマー フィードバックへの応答に役立つコネクタには、Outlook.com、Office 365、Survey Monkey、X、Web フォームからの HTTP 要求などがあります。 作成するワークフローは、X のハッシュタグを監視します。
カスタマー データによるトリガー
Azure portal で、空のロジック アプリ ワークフローを作成します。
ワークフロー デザイナーで、[新しいツイートが投稿されたら] アクションを含む X トリガーを検索して追加します。
キーワードまたはハッシュタグに基づいてツイートをリッスンするようにトリガーを設定します。
X トリガーなどのポーリングベースのトリガーでは、反復プロパティによって、ロジック アプリが新しいアイテムを確認する頻度が決定されます。
すべての新しいツイートに対してロジック アプリがトリガーされるようになりました。 次に、表現されるセンチメントをより良く把握するために、ツイート データを取得して分析することができます。
ツイート テキストの分析
テキストの背後にあるセンチメントを検出するために、Azure AI サービス を使用できます。
ワークフロー デザイナーのトリガーの下で、[新しいステップ] を選択します。
テキスト分析コネクタを検索します。
[Detect Sentiment (センチメントの検出)] アクションを選択します。
プロンプトが表示される場合は、Text Analytics サービス用の有効な Azure AI サービス キーを指定します。
[要求本文] の下で、 [ツイート テキスト] フィールドを選択します。これにより、ツイート テキストが分析用の入力として提供されます。
ツイート データとそのツイートに関する洞察を取得したら、その他のいくつかの関連するコネクタと、そのアクションを使用できますようになります。
- Power BI - ストリーミング データセットへの行の追加:Power BI ダッシュボードで受信ツイートを表示します。
- Azure Data Lake - ファイルの追加:カスタマーのデータを Azure Data Lake データセットに追加して Analytics ジョブに含めます。
- SQL - 行の追加:後で取得できるようにデータベースにデータを格納します。
- Slack - メッセージの送信:アクションを必要とする可能性がある否定的なフィードバックについて Slack チャンネルに通知します。
また、データに対してカスタム処理を実行するために、Azure 関数を作成することもできます。
Azure Functions でのデータ処理
関数を作成する前に、Azure サブスクリプションで関数アプリを作成します。 また、ロジック アプリで関数を直接呼び出すには、関数が HTTP トリガー バインディングを持つ必要があります。たとえば、HttpTrigger テンプレートを使用します。 詳しくは、Azure Portal で最初の関数アプリと関数を作成する方法に関するページを参照してください。
このシナリオでは、Azure 関数の要求本文としてツイート テキストを使用します。
関数コードで、ツイート テキストがキーワードまたはフレーズを含むかどうかを判定するロジックを定義します。
シナリオに応じて、単純または複雑な関数を作成します。
関数の最後で、データと共にロジック アプリへの応答を返します。データには、たとえば containsKeyword
のような単純なブール値や複合オブジェクトを使用します。
ヒント
ロジック アプリ内で関数からの複雑な応答にアクセスするには、Parse JSON アクションを使用します。
完了したら、関数を保存し、構築しているロジック アプリに、アクションとして関数を追加します。
ロジック アプリへの Azure 関数の追加
ワークフロー デザイナーの [センチメントの検出] アクションで、[新しいステップ] を選択します。
Azure Functions コネクタを検索し、作成した関数を選択します。
[要求本文] の下で [ツイート テキスト] を選択します。
ロジック アプリの実行と監視
現在または過去のロジック アプリの実行を確認するには、Azure Logic Apps によって提供されるデバッグと監視の豊富な機能を使用できます。これらの機能は、Azure portal や Visual Studio Code で、または Azure REST API および SDK を通じて提供されます。
ロジック アプリを簡単にテストするには、ロジック アプリ デザイナーで [トリガーの実行] を選択します。 トリガーは、条件を満たすツイートが見つかるまで、指定したスケジュールに基づいてツイートをポーリングします。 実行が進行する間、デザイナーで実行の進行状況がリアルタイムに表示されます。
自動デプロイ テンプレートを作成する
ロジック アプリのソリューションを作成したら、アプリをキャプチャし、Azure Resource Manager テンプレートとして世界中の Azure リージョンにデプロイすることができます。 この機能を使用すると、パラメーターを変更して、異なるバージョンのアプリを作成したり、Azure Pipelines にソリューションを統合したりできます。 Azure Functions をデプロイ テンプレートに含めることもできるので、すべての依存関係を含むソリューション全体を 1 つのテンプレートとして管理できます。 ロジック アプリ デプロイを自動化する方法について学習してください。
Azure 関数を使用したデプロイ テンプレートの例については、Azure クイックスタート テンプレート レポジトリを参照してください。