チュートリアル: Logic Apps を使用して Azure Digital Twins 空間から通知を受け取る
重要
Azure Digital Twins サービスの新しいバージョンがリリースされました。 新しいサービスの拡張された機能に照らして、元の Azure Digital Twins サービス (このドキュメント セットで説明) は廃止されました。
新しいサービスのドキュメントを表示するには、アクティブな Azure Digital Twins のドキュメントを参照してください。
Azure Digital Twins インスタンスをデプロイし、空間をプロビジョニングして、特定の条件を監視するためのカスタム関数を実装すると、監視対象の条件が発生したときにメールでオフィス管理者に通知できます。
最初のチュートリアルでは、架空の建物の空間グラフを構成しました。 この建物の部屋には、モーション、二酸化炭素、温度のセンサーが備わっています。 2 番目のチュートリアルでは、グラフをプロビジョニングしたほか、これらのセンサーの値を監視し、部屋が空室で温度と二酸化炭素が快適な範囲にあるときに通知をトリガーするユーザー定義関数をプロビジョニングしました。
このチュートリアルでは、これらの通知を Azure Logic Apps と統合して、そのような部屋が使用可能なときにメールを送信する方法について説明します。 オフィス管理者は、この情報を使用して、生産性が最も高まる会議室を従業員が予約するのを支援できます。
このチュートリアルでは、以下の内容を学習します。
- Azure Event Grid にイベントを統合する。
- Logic Apps を使用してイベントを通知する。
前提条件
このチュートリアルでは、お客様が Azure Digital Twins の設定の構成とプロビジョニングを完了していることを前提としています。 次に進む前に、以下が準備されていることを確認します。
- Azure アカウント。
- Digital Twins のインスタンスが実行中であること。
- Digital Twins C# のサンプルがダウンロードされ、作業マシン上に展開されていること。
- サンプルを実行する開発マシンに .NET Core SDK バージョン 2.1.403 以上がインストールされていること。 適切なバージョンがインストールされていることを確認するには、
dotnet --version
を実行します。 - 通知電子メールを送信するOffice 365 アカウント。
ヒント
新しいインスタンスをプロビジョニングする場合は、一意の Digital Twins インスタンス名を使用します。
Event Grid にイベントを統合する
このセクションでは、Azure Digital Twins インスタンスからイベントを収集してそれを Logic Apps などのイベント ハンドラーにリダイレクトするよう、Event Grid を設定します。
Event Grid トピックを作成する
Event Grid トピックは、ユーザー定義関数によって生成されたイベントをルーティングするためのインターフェイスを提供します。
Azure portal にサインインします。
左側のウィンドウで、[リソースの作成] を選びます。
[Event Grid トピック] を見つけて選択します。 [作成] を選択します
Event Grid トピックの名前を入力し、サブスクリプションを選択します。 Digital Twins インスタンスに対して使用または作成したリソース グループと場所を選択します。 [作成] を選択します
リソース グループから Event Grid トピックに移動します。[概要] を選択し、[トピック エンドポイント] の値を一時ファイルにコピーします。 この URL は次のセクションで必要になります。
[アクセス キー] を選択し、キー 1 とキー 2 を一時ファイルにコピーします。 これらの値は、次のセクションでエンドポイントを作成するために必要になります。
Event Grid トピックのエンドポイントを作成する
コマンド ウィンドウで、Digital Twins サンプルの occupancy-quickstart\src フォルダーに移動していることを確認します。
Visual Studio Code エディターで actions\createEndpoints.yaml ファイルを開きます。 次の内容が含まれていることを確認します。
- type: EventGrid eventTypes: - SensorChange - SpaceChange - TopologyOperation - UdfCustom connectionString: <Primary connection string for your Event Grid> secondaryConnectionString: <Secondary connection string for your Event Grid> path: <Event Grid Topic Name without https:// and /api/events, e.g. eventgridname.region.eventgrid.azure.net>
プレースホルダー
<Primary connection string for your Event Grid>
を [キー 1] の値に置き換えます。プレースホルダー
<Secondary connection string for your Event Grid>
を [キー 2] の値に置き換えます。path のプレースホルダーを Event Grid トピックのパスに置き換えます。 このパスは、[トピック エンドポイント] URL から https:// と末尾のリソース パスを削除することで取得できます。 これは yourEventGridName.yourLocation.eventgrid.azure.net のような形式になります。
重要
引用符なしですべての値を入力します。 YAML ファイル内のコロンの後に少なくとも 1 つの空白文字があることを確認してください。 このツールなどのオンライン YAML 検証ツールを使用して、YAML ファイルの内容を検証することもできます。
ファイルを保存して閉じます。 コマンド ウィンドウで次のコマンドを実行し、メッセージが表示されたらサインインします。
dotnet run CreateEndpoints
このコマンドを実行すると、Event Grid のエンドポイントが作成されます。
Logic Apps を使用してイベントを通知する
Azure Logic Apps サービスを使用すると、他のサービスから受信したイベントに対する自動化されたタスクを作成できます。 このセクションでは、Event Grid トピックを利用して、空間センサーからルーティングされたイベントに関するメール通知を作成するよう Logic Apps を設定します。
Azure portal の左側のウィンドウで、[リソースの作成] を選択します。
新しいロジック アプリ リソースを見つけて選択します。 [作成] を選択します
ロジック アプリ リソースの名前を入力し、サブスクリプション、リソース グループ、場所を選択します。 [作成] を選択します
Logic Apps リソースがデプロイされたら開き、 ロジック アプリ デザイナー ウィンドウを開きます。
[Event Grid のリソース イベントが発生するとき] トリガーを選択します。 [Azure Event Grid] オプションを展開し、メッセージが表示されたら、Azure アカウントを使用して目的のテナントにサインインします。 メッセージが表示されたら、目的の Event Grid リソースへの [アクセスを許可] を選択します。 [続行] をクリックします。
[リソース イベントが発生したとき] ウィンドウで、次の操作を行います。
a. Event Grid トピックを作成するときに使用したサブスクリプションを選択します。
b. [リソース タイプ] で [Microsoft.EventGrid.Topics] を選択します。
c. [リソース名] のドロップダウン ボックスで目的の Event Grid リソースを選択します。
[ 新しいステップ ] ボタンを選択します。
[アクションの選択] ウィンドウで、次の操作を行います。
a. 「JSON の解析」という語句を検索し、[JSON の解析] アクションを選択します。
b. [Content]\(コンテンツ\) フィールドで、[動的なコンテンツ] の一覧から [Body]\(本文\) を選択します。
c. [サンプルのペイロードを使用してスキーマを生成する] を選びます。 次の JSON ペイロードを貼り付け、[完了] を選択します。
{ "id": "32162f00-a8f1-4d37-aee2-9312aabba0fd", "subject": "UdfCustom", "data": { "TopologyObjectId": "20efd3a8-34cb-4d96-a502-e02bffdabb14", "ResourceType": "Space", "Payload": "\"Air quality is poor.\"", "CorrelationId": "32162f00-a8f1-4d37-aee2-9312aabba0fd" }, "eventType": "UdfCustom", "eventTime": "0001-01-01T00:00:00Z", "dataVersion": "1.0", "metadataVersion": "1", "topic": "/subscriptions/a382ee71-b48e-4382-b6be-eec7540cf271/resourceGroups/HOL/providers/Microsoft.EventGrid/topics/DigitalTwinEventGrid" }
このペイロードには架空の値が含まれています。 Logic Apps によってこのサンプル ペイロードが使用され、"スキーマ" が生成されます。
[ 新しいステップ ] ボタンを選択します。
[アクションの選択] ウィンドウで、次の操作を行います。
a. [アクション] ボックスの一覧から [制御>条件] または [検索条件] を選択します。
b. 最初の [値の選択] テキスト ボックスで、[JSON の解析] ウィンドウの [動的なコンテンツ] の一覧で [eventType] を選択します。
c. 2 番目の [値の選択] ボックスに「
UdfCustom
」と入力します。[true の場合] ウィンドウで、次の操作を行います。
a. [アクションの追加] を選択し、[Office 365 Outlook] を選択します。
b. [アクション] の一覧で、[メールの送信 (V2)] を選択します。 [サインイン] をクリックし、自分のメール アカウントの資格情報を使用します。 メッセージが表示されたら、[アクセスを許可] を選択します。
c. [To]\(送信先\) ボックスに、通知を受け取るためのメール ID を入力します。 [件名] にテキスト「空間における空気の質の悪化に関する Digital Twins 通知」を入力し、 [JSON の解析] の [動的なコンテンツ] の一覧で [TopologyObjectId] を選択します。
d. 同じウィンドウの [ 本文 ] に、次のようなテキストを入力します。 部屋で検出された空気の質が悪く、温度を調整する必要があります。 [動的なコンテンツ] の一覧の要素を自由に使用して詳しい説明を追加してください。
ロジック アプリ デザイナー ウィンドウの上部にある [保存] ボタンを選択します。
コマンド ウィンドウで Digital Twins サンプルの device-connectivity フォルダーに移動し、
dotnet run
を実行して、センサー データをシミュレートします。
数分後には、この Logic Apps リソースからメール通知を受信するようになります。
これらのメールの受信を停止するには、ポータルで目的の Logic Apps リソースに移動し、[概要] ウィンドウを選択します。 [無効にする] を選択します。
リソースをクリーンアップする
この時点で Azure Digital Twins の探索を中止する場合は、このチュートリアルで作成されたリソースを削除してかまいません。
Azure portal の左側のメニューにある [すべてのリソース] をクリックし、目的の Digital Twins リソース グループを選択して [削除] を選択します。
ヒント
ご自分の Digital Twins インスタンスの削除で問題が発生していた場合は、サービス更新が修正と共にロールアウトされています。 ご自分のインスタンスの削除を再試行してください。
必要に応じて、作業マシン上のサンプル アプリケーションを削除します。
次のステップ
センサー データの視覚化、傾向の分析、異常の特定を行う方法について学習するために、次のチュートリアルに進んでください。
また、Azure Digital Twins の空間インテリジェンス グラフとオブジェクト モデルについて詳しく学習することもできます。