チュートリアル:Logic Apps を使用して Azure Digital Twins 空間から通知を受け取るTutorial: Receive notifications from your Azure Digital Twins spaces by using Logic Apps

Azure Digital Twins インスタンスをデプロイし、空間をプロビジョニングして、特定の条件を監視するためのカスタム関数を実装すると、監視対象の条件が発生したときにメールでオフィス管理者に通知できます。After you deploy your Azure Digital Twins instance, provision your spaces, and implement custom functions to monitor specific conditions, you can notify your office admin via email when the monitored conditions occur.

最初のチュートリアルでは、架空の建物の空間グラフを構成しました。In the first tutorial, you configured the spatial graph of an imaginary building. この建物の部屋には、モーション、二酸化炭素、温度のセンサーが備わっています。A room in the building contains sensors for motion, carbon dioxide, and temperature. 2 番目のチュートリアルでは、グラフをプロビジョニングしたほか、これらのセンサーの値を監視し、部屋が空室で温度と二酸化炭素が快適な範囲にあるときに通知をトリガーするユーザー定義関数をプロビジョニングしました。In the second tutorial, you provisioned your graph and a user-defined function to monitor these sensor values and trigger notifications when the room is empty, and the temperature and carbon dioxide are in a comfortable range.

このチュートリアルでは、これらの通知を Azure Logic Apps と統合して、そのような部屋が使用可能なときにメールを送信する方法について説明します。This tutorial shows how you can integrate these notifications with Azure Logic Apps to send emails when such a room is available. オフィス管理者は、この情報を使用して、生産性が最も高まる会議室を従業員が予約するのを支援できます。An office administrator can use this information to help the employees book the most productive meeting room.

このチュートリアルでは、以下の内容を学習します。In this tutorial, you learn how to:

  • Azure Event Grid にイベントを統合する。Integrate events with Azure Event Grid.
  • Logic Apps を使用してイベントを通知する。Notify events with Logic Apps.

前提条件Prerequisites

このチュートリアルでは、お客様が Azure Digital Twins の設定の構成プロビジョニングを完了していることを前提としています。This tutorial assumes that you have configured and provisioned your Azure Digital Twins setup. 次に進む前に、以下が準備されていることを確認します。Before proceeding, make sure that you have:

  • Azure アカウントAn Azure account.
  • Digital Twins のインスタンスが実行中であること。An instance of Digital Twins running.
  • Digital Twins C# のサンプルがダウンロードされ、作業マシン上に展開されていること。The Digital Twins C# samples downloaded and extracted on your work machine.
  • サンプルを実行する開発マシンに .NET Core SDK バージョン 2.1.403 以上がインストールされていること。.NET Core SDK version 2.1.403 or later on your development machine to run the sample. 適切なバージョンがインストールされていることを確認するには、dotnet --version を実行します。Run dotnet --version to verify that the right version is installed.
  • 通知メールを送信するための Office 365 アカウント。An Office 365 account to send notification e-mails.

ヒント

新しいインスタンスをプロビジョニングする場合は、一意の Digital Twins インスタンス名を使用します。Use a unique Digital Twins instance name if you're provisioning a new instance.

Event Grid にイベントを統合するIntegrate events with Event Grid

このセクションでは、Azure Digital Twins インスタンスからイベントを収集してそれを Logic Apps などのイベント ハンドラーにリダイレクトするよう、Event Grid を設定します。In this section, you set up Event Grid to collect events from your Azure Digital Twins instance, and redirect them to an event handler such as Logic Apps.

Event Grid トピックを作成するCreate an event grid topic

Event Grid トピックは、ユーザー定義関数によって生成されたイベントをルーティングするためのインターフェイスを提供します。An event grid topic provides an interface to route the events generated by the user-defined function.

  1. Azure Portal にサインインします。Sign in to the Azure portal.

  2. 左側のウィンドウで、 [リソースの作成] を選びます。In the left pane, select Create a resource.

  3. [Event Grid トピック] を見つけて選択します。Search for and select Event Grid Topic. 作成 を選択します。Select Create.

  4. Event Grid トピックの名前を入力し、サブスクリプションを選択します。Enter a Name for your event grid topic, and choose the Subscription. Digital Twins インスタンスに対して使用または作成したリソース グループ場所を選択します。Select the Resource group that you used or created for your Digital Twins instance, and the Location. 作成 を選択します。Select Create.

    Event Grid トピックを作成するCreate an event grid topic

  5. リソース グループから Event Grid トピックに移動します。 [概要] を選択し、 [トピック エンドポイント] の値を一時ファイルにコピーします。Browse to the event grid topic from your resource group, select Overview, and copy the value for Topic Endpoint to a temporary file. この URL は次のセクションで必要になります。You'll need this URL in the next section.

  6. [アクセス キー] を選択し、YOUR_KEY_1YOUR_KEY_2 を一時ファイルにコピーします。Select Access keys, and copy YOUR_KEY_1 and YOUR_KEY_2 to a temporary file. これらの値は、次のセクションでエンドポイントを作成するために必要になります。You'll need these values to create the endpoint in the next section.

    Event Grid キーEvent Grid keys

Event Grid トピックのエンドポイントを作成するCreate an endpoint for the event grid topic

  1. コマンド ウィンドウで、Digital Twins サンプルの occupancy-quickstart\src フォルダーに移動していることを確認します。In the command window, make sure you're in the occupancy-quickstart\src folder of the Digital Twins sample.

  2. Visual Studio Code エディターで actions\createEndpoints.yaml ファイルを開きます。Open the file actions\createEndpoints.yaml in your Visual Studio Code editor. 次の内容が含まれていることを確認します。Make sure it has the following contents:

    - 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>
    
  3. プレースホルダー <Primary connection string for your Event Grid>YOUR_KEY_1 の値に置き換えます。Replace the placeholder <Primary connection string for your Event Grid> with the value of YOUR_KEY_1.

  4. プレースホルダー <Secondary connection string for your Event Grid>YOUR_KEY_2 の値に置き換えます。Replace the placeholder <Secondary connection string for your Event Grid> with the value of YOUR_KEY_2.

  5. path のプレースホルダーを Event Grid トピックのパスに置き換えます。Replace the placeholder for path with the path of the event grid topic. このパスは、 [トピック エンドポイント] URL から https:// と末尾のリソース パスを削除することで取得できます。Get this path by removing https:// and the trailing resource paths from the Topic Endpoint URL. これは yourEventGridName.yourLocation.eventgrid.azure.net のような形式になります。It should look similar to this format: yourEventGridName.yourLocation.eventgrid.azure.net.

    重要

    引用符なしですべての値を入力します。Enter all values without any quotes. YAML ファイル内のコロンの後に少なくとも 1 つの空白文字があることを確認してください。Make sure there's at least one space character after the colons in the YAML file. YAML ファイルの内容は、このツールのようなオンライン YAML 検証ツールを使用して検証することもできます。You can also validate your YAML file contents by using any online YAML validator such as this tool.

  6. ファイルを保存して閉じます。Save and close the file. コマンド ウィンドウで次のコマンドを実行し、メッセージが表示されたらサインインします。In the command window, run the following command, and sign in when prompted.

    dotnet run CreateEndpoints
    

    このコマンドを実行すると、Event Grid のエンドポイントが作成されます。This command creates the endpoint for Event Grid.

    Event Grid のエンドポイントEndpoints for Event Grid

Logic Apps を使用してイベントを通知するNotify events with Logic Apps

Azure Logic Apps サービスを使用すると、他のサービスから受信したイベントに対する自動化されたタスクを作成できます。You can use the Azure Logic Apps service to create automated tasks for events received from other services. このセクションでは、Event Grid トピックを利用して、空間センサーからルーティングされたイベントに関するメール通知を作成するよう Logic Apps を設定します。In this section, you set up Logic Apps to create email notifications for events routed from your spatial sensors, with the help of an event grid topic.

  1. Azure portal の左側のウィンドウで、 [リソースの作成] を選択します。In the left pane of the Azure portal, select Create a resource.

  2. 新しいロジック アプリ リソースを見つけて選択します。Search and select a new Logic App resource. 作成 を選択します。Select Create.

  3. ロジック アプリ リソースの名前を入力し、サブスクリプションリソース グループ場所を選択します。Enter a Name for your Logic App resource, and then select your Subscription, Resource group, and Location. 作成 を選択します。Select Create.

    Logic Apps リソースを作成するCreate a Logic Apps resource

  4. Logic Apps リソースがデプロイされたらこれを開き、 [ロジック アプリ デザイナー] ウィンドウを開きます。Open your Logic Apps resource when it's deployed, and then open the Logic App Designer pane.

  5. [Event Grid のリソース イベントが発生するとき] トリガーを選択します。Select the When an Event Grid resource event occurs trigger. メッセージが表示されたら、Azure アカウントを使用して目的のテナントにサインインします。Sign in to your tenant with your Azure account when prompted. メッセージが表示されたら、目的の Event Grid リソースへの [アクセスを許可] を選択します。Select Allow access for your Event Grid resource if prompted. [続行] をクリックします。Select Continue.

  6. [When a resource event occurs (Preview)](リソース イベントが発生したとき (プレビュー)) ウィンドウで、次の操作を行います。In the When a resource event occurs (Preview) window:

    a.a. Event Grid トピックを作成するときに使用したサブスクリプションを選択します。Select the Subscription that you used to create the event grid topic.

    b.b. [リソース タイプ][Microsoft.EventGrid.Topics] を選択します。Select Microsoft.EventGrid.Topics for Resource Type.

    c.c. [リソース名] のドロップダウン ボックスで目的の Event Grid リソースを選択します。Select your Event Grid resource from the drop-down box for Resource Name.

    ロジック アプリ デザイナー ウィンドウLogic App Designer pane

  7. [新しいステップ] を選択します。Select the New step button.

  8. [アクションの選択] ウィンドウで、次の操作を行います。In the Choose an action window:

    a.a. JSON の解析」という語句を検索し、 [JSON の解析] アクションを選択します。Search the phrase parse json, and select the Parse JSON action.

    b.b. [Content](コンテンツ) フィールドで、 [動的なコンテンツ] の一覧から [Body](本文) を選択します。In the Content field, select Body from the Dynamic content list.

    c.c. [サンプルのペイロードを使用してスキーマを生成する] を選びます。Select Use sample payload to generate schema. 次の JSON ペイロードを貼り付け、 [完了] を選択します。Paste the following JSON payload, and then select Done.

    {
    "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"
    }
    

    このペイロードには架空の値が含まれています。This payload has fictitious values. Logic Apps によってこのサンプル ペイロードが使用され、"スキーマ" が生成されます。Logic Apps uses this sample payload to generate a schema.

    Event Grid に対する Logic Apps の [JSON の解析] ウィンドウLogic Apps Parse JSON window for Event Grid

  9. [新しいステップ] を選択します。Select the New step button.

  10. [アクションの選択] ウィンドウで、次の操作を行います。In the Choose an action window:

    a.a. [アクション] の一覧から [Control](コントロール) > [条件] を選択するか、 [条件] を検索します。Select Control > Condition or search Condition from the Actions list.

    b.b. 最初の [値の選択] テキスト ボックスで、 [JSON の解析] ウィンドウの [動的なコンテンツ] の一覧で [eventType] を選択します。In the first Choose a value text box, select eventType from the Dynamic content list for the Parse JSON window.

    c.c. 2 番目の [値の選択] ボックスに「UdfCustom」と入力します。In the second Choose a value text box, enter UdfCustom.

    選択された条件Selected conditions

  11. [true の場合] ウィンドウで、次の操作を行います。In the If true window:

    a.a. [アクションの追加] を選択し、 [Office 365 Outlook] を選択します。Select Add an action, and select Office 365 Outlook.

    b.b. [アクション] の一覧で、 [メールの送信] を選択します。From the Actions list, select Send an email. [サインイン] をクリックし、自分のメール アカウントの資格情報を使用します。Select Sign in and use your email account credentials. メッセージが表示されたら、 [アクセスを許可] を選択します。Select Allow access if prompted.

    c.c. [To](送信先) ボックスに、通知を受け取るためのメール ID を入力します。In the To box, enter your email ID to receive notifications. [件名] にテキスト「空間における空気の質の悪化に関する Digital Twins 通知」を入力し、In Subject, enter the text Digital Twins notification for poor air quality in space. [JSON の解析][動的なコンテンツ] の一覧で [TopologyObjectId] を選択します。Then select TopologyObjectId from the Dynamic content list for Parse JSON.

    d.d. 同じウィンドウの [Body](本文) に、「室内で空気の質の悪化が検出されました。温度を調整する必要があります」のようなテキストを入力します。Under Body in the same window, enter text similar to this: Poor air quality detected in a room, and temperature needs to be adjusted. [動的なコンテンツ] の一覧の要素を自由に使用して詳しい説明を追加してください。Feel free to elaborate by using elements from the Dynamic content list.

    Logic Apps での [電子メールの送信] の選択Logic Apps "Send an email" selections

  12. [ロジック アプリ デザイナー] ウィンドウの最上部にある [保存] ボタンを選択します。Select the Save button at the top of the Logic App Designer pane.

  13. コマンド ウィンドウで Digital Twins サンプルの device-connectivity フォルダーに移動し、dotnet run を実行して、センサー データをシミュレートします。Make sure to simulate sensor data by browsing to the device-connectivity folder of the Digital Twins sample in a command window, and running dotnet run.

数分後には、この Logic Apps リソースからメール通知を受信するようになります。In a few minutes, you should start getting email notifications from this Logic Apps resource.

電子メール通知Email notification

これらのメールの受信を停止するには、ポータルで目的の Logic Apps リソースに移動し、 [概要] ウィンドウを選択します。To stop receiving these emails, go to your Logic Apps resource in the portal, and select the Overview pane. [無効] を選択します。Select Disable.

リソースのクリーンアップClean up resources

この時点で Azure Digital Twins の探索を中止する場合は、このチュートリアルで作成されたリソースを削除してかまいません。If you want to stop exploring Azure Digital Twins at this point, feel free to delete resources created in this tutorial:

  1. Azure portal の左側のメニューにある [すべてのリソース] をクリックし、目的の Digital Twins リソース グループを選択して [削除] を選択します。From the left menu in the Azure portal, select All resources, select your Digital Twins resource group, and select Delete.

    ヒント

    ご自分の Digital Twins インスタンスの削除で問題が発生していた場合は、サービス更新が修正と共にロールアウトされています。If you experienced trouble deleting your Digital Twins instance, a service update has been rolled out with the fix. ご自分のインスタンスの削除を再試行してください。Please retry deleting your instance.

  2. 必要に応じて、作業マシン上のサンプル アプリケーションを削除します。If necessary, delete the sample applications on your work machine.

次の手順Next steps

センサー データの視覚化、傾向の分析、異常の特定を行う方法について学習するために、次のチュートリアルに進んでください。To learn how to visualize your sensor data, analyze trends, and spot anomalies, go to the next tutorial:

また、Azure Digital Twins の空間インテリジェンス グラフとオブジェクト モデルについて詳しく学習することもできます。You can also learn more about the spatial intelligence graphs and object models in Azure Digital Twins: