次の方法で共有


Azure Digital Twins でのエグレスとエンドポイント

重要

Azure Digital Twins サービスの新しいバージョンがリリースされました。 新しいサービスの拡張された機能に照らして、元の Azure Digital Twins サービス (このドキュメント セットで説明) は廃止されました。

新しいサービスのドキュメントを表示するには、アクティブな Azure Digital Twins のドキュメントを参照してください

Azure Digital Twins のエンドポイントは、ユーザーの Azure サブスクリプション内のメッセージ ブローカーまたはイベント ブローカーを表します。 イベントとメッセージは、Azure Event Hubs、Azure Event Grid、および Azure Service Bus のトピックに送信できます。

イベントは、ルーティングの定義済み優先設定に従ってエンドポイントにルーティングされます。 ユーザーは、各エンドポイントが受け取る可能性があるイベントの種類を指定します。

イベント、ルーティング、イベント タイプについて詳しくは、「Azure Digital Twins でのルーティング イベントおよびメッセージ」をご覧ください。

イベント

イベントは、Azure のメッセージ ブローカーおよびイベント ブローカーで処理するために IoT オブジェクト (デバイス、センサーなど) によって送信されます。 イベントは、次の Azure Event Grid イベント スキーマ リファレンスによって定義されます。

{
  "id": "00000000-0000-0000-0000-000000000000",
  "subject": "ExtendedPropertyKey",
  "data": {
    "SpacesToNotify": [
      "3a16d146-ca39-49ee-b803-17a18a12ba36"
    ],
    "Id": "00000000-0000-0000-0000-000000000000",
      "Type": "ExtendedPropertyKey",
    "AccessType": "Create"
  },
  "eventType": "TopologyOperation",
  "eventTime": "2018-04-17T17:41:54.9400177Z",
  "dataVersion": "1",
  "metadataVersion": "1",
  "topic": "/subscriptions/YOUR_TOPIC_NAME"
}
属性 Type 説明
id string イベントの一意識別子。
subject string 発行元が定義したイベントの対象のパス。
data object リソース プロバイダーに固有のイベント データ。
eventType string このイベント ソース用に登録されたイベントの種類のいずれか。
eventTime string プロバイダーの UTC 時刻に基づくイベントの生成時刻。
dataVersion string データ オブジェクトのスキーマ バージョン。 スキーマ バージョンは発行元によって定義されます。
metadataVersion string イベント メタデータのスキーマ バージョン。 最上位プロパティのスキーマは Event Grid によって定義されます。 この値は Event Grid によって指定されます。
topic string イベント ソースの完全なリソース パス。 このフィールドは書き込み可能ではありません。 この値は Event Grid によって指定されます。

Event Grid イベント スキーマの詳細については、

イベントの種類

イベントの種類はイベントの性質を分類し、 eventType フィールドに設定されます。 使用可能なイベントの種類の一覧を、次に示します。

  • TopologyOperation
  • UdfCustom
  • SensorChange
  • SpaceChange
  • DeviceMessage

それぞれのイベントの種類のイベント形式については、以下のサブセクションで詳しく説明します。

TopologyOperation

TopologyOperation は、グラフの変更に適用されます。 subject プロパティは、影響を受けるオブジェクトの種類を指定します。 次のオブジェクトの種類によって、このイベントがトリガーされる可能性があります。

  • Device
  • DeviceBlobMetadata
  • DeviceExtendedProperty
  • ExtendedPropertyKey
  • ExtendedType
  • KeyStore
  • レポート
  • RoleDefinition
  • Sensor
  • SensorBlobMetadata
  • SensorExtendedProperty
  • Space
  • SpaceBlobMetadata
  • SpaceExtendedProperty
  • SpaceResource
  • SpaceRoleAssignment
  • システム
  • User
  • UserBlobMetadata
  • UserExtendedProperty

{
  "id": "00000000-0000-0000-0000-000000000000",
  "subject": "ExtendedPropertyKey",
  "data": {
    "SpacesToNotify": [
      "3a16d146-ca39-49ee-b803-17a18a12ba36"
    ],
    "Id": "00000000-0000-0000-0000-000000000000",
      "Type": "ExtendedPropertyKey",
    "AccessType": "Create"
  },
  "eventType": "TopologyOperation",
  "eventTime": "2018-04-17T17:41:54.9400177Z",
  "dataVersion": "1",
  "metadataVersion": "1",
  "topic": "/subscriptions/YOUR_TOPIC_NAME"
}
置換後の文字列
YOUR_TOPIC_NAME カスタマイズしたトピックの名前

UdfCustom

UdfCustom は、ユーザー定義関数 (UDF) によって送信されるイベントです。

重要

このイベントは、UDF 自体から明示的に送信する必要があります。

{
  "id": "568fd394-380b-46fa-925a-ebb96f658cce",
  "subject": "UdfCustom",
  "data": {
    "TopologyObjectId": "7c799bfc-1bff-4b9e-b15a-669933969d20",
    "ResourceType": "Space",
    "Payload": "\"Room is not available or air quality is poor\"",
    "CorrelationId": "568fd394-380b-46fa-925a-ebb96f658cce"
  },
  "eventType": "UdfCustom",
  "eventTime": "2018-10-02T06:50:15.198Z",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "topic": "/subscriptions/YOUR_TOPIC_NAME"
}
置換後の文字列
YOUR_TOPIC_NAME カスタマイズしたトピックの名前

SensorChange

SensorChange は、テレメトリの変化に基づく、センサーの状態に対する更新です。

{
  "id": "60bf5336-2929-45b4-bb4c-b45699dfe95f",
  "subject": "SensorChange",
  "data": {
    "Type": "Classic",
    "DataType": "Motion",
    "Id": "60bf5336-2929-45b4-bb4c-b45699dfe95f",
    "Value": "False",
    "PreviousValue": "True",
    "EventTimestamp": "2018-04-17T17:46:15.4964262Z",
    "MessageType": "sensor",
    "Properties": {
      "ms-client-request-id": "c9e576b7-5eea-4f61-8617-92a57add5179",
      "ms-activity-id": "ct22YwXEGJ5u.605.0"
    }
  },
  "eventType": "SensorChange",
  "eventTime": "2018-04-17T17:46:18.5452993Z",
  "dataVersion": "1",
  "metadataVersion": "1",
  "topic": "/subscriptions/YOUR_TOPIC_NAME"
}
置換後の文字列
YOUR_TOPIC_NAME カスタマイズしたトピックの名前

SpaceChange

SpaceChange は、テレメトリの変化に基づく、スペースの状態に対する更新です。

{
  "id": "42522e10-b1aa-42ff-a5e7-7181788ffc4b",
  "subject": "SpaceChange",
  "data": {
    "Type": null,
    "DataType": "AvailableAndFresh",
    "Id": "7c799bfc-1bff-4b9e-b15a-669933969d20",
    "Value": "Room is not available or air quality is poor",
    "PreviousValue": null,
    "RawData": null,
    "transactionId": null,
    "EventTimestamp": null,
    "MessageType": null,
    "Properties": null,
    "CorrelationId": "42522e10-b1aa-42ff-a5e7-7181788ffc4b"
  },
  "eventType": "SpaceChange",
  "eventTime": "2018-10-02T06:50:20.128Z",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "topic": "/subscriptions/YOUR_TOPIC_NAME"
}
置換後の文字列
YOUR_TOPIC_NAME カスタマイズしたトピックの名前

DeviceMessage

DeviceMessage を使用すると、Azure Digital Twins からも生テレメトリ イベントをルーティングできる EventHub 接続を指定できます。

注意

  • DeviceMessage は、EventHub とのみ組み合わせることができます。 DeviceMessage はその他のいずれのイベントの種類とも組み合わせることができません。
  • 種類 EventHub または DeviceMessage の組み合わせのエンドポイントは、1 つだけ指定できます。

エンドポイントを構成する

エンドポイントの管理は、Endpoints API を使用して行います。

次の例では、YOUR_MANAGEMENT_API_URL は Digital Twins API の URI を参照しています。

https://YOUR_INSTANCE_NAME.YOUR_LOCATION.azuresmartspaces.net/management/api/v1.0
名前 置換後の文字列
YOUR_INSTANCE_NAME Azure Digital Twins インスタンスの名前
YOUR_LOCATION インスタンスをホストするリージョン

次の例は、サポートされているエンドポイントの構成方法を示しています。

重要

eventTypes 属性に注意してください。 これはエンドポイントによって処理されるイベントの種類を定義するため、ルーティングを決定します。

認証済みの HTTP POST 要求:

YOUR_MANAGEMENT_API_URL/endpoints
  • Service Bus イベントの種類へのルート SensorChangeSpaceChangeTopologyOperation:

    {
      "type": "ServiceBus",
      "eventTypes": [
        "SensorChange",
        "SpaceChange",
        "TopologyOperation"
      ],
      "connectionString": "Endpoint=sb://YOUR_NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=YOUR_PRIMARY_KEY",
      "secondaryConnectionString": "Endpoint=sb://YOUR_NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=YOUR_SECONDARY_KEY",
      "path": "YOUR_TOPIC_NAME"
    }
    
    置換後の文字列
    YOUR_NAMESPACE エンドポイントの名前空間
    YOUR_PRIMARY_KEY 認証に使用されるプライマリ接続文字列
    YOUR_SECONDARY_KEY 認証に使用されるセカンダリ接続文字列
    YOUR_TOPIC_NAME カスタマイズしたトピックの名前
  • Event Grid イベントの種類へのルート SensorChangeSpaceChangeTopologyOperation:

    {
      "type": "EventGrid",
      "eventTypes": [
        "SensorChange",
        "SpaceChange",
        "TopologyOperation"
      ],
      "connectionString": "YOUR_PRIMARY_KEY",
      "secondaryConnectionString": "YOUR_SECONDARY_KEY",
      "path": "YOUR_TOPIC_NAME.westus-1.eventgrid.azure.net"
    }
    
    置換後の文字列
    YOUR_PRIMARY_KEY 認証に使用されるプライマリ接続文字列
    YOUR_SECONDARY_KEY 認証に使用されるセカンダリ接続文字列
    YOUR_TOPIC_NAME カスタマイズしたトピックの名前
  • Event Hubs イベントの種類へのルート SensorChangeSpaceChangeTopologyOperation:

    {
      "type": "EventHub",
      "eventTypes": [
        "SensorChange",
        "SpaceChange",
        "TopologyOperation"
      ],
      "connectionString": "Endpoint=sb://YOUR_NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=YOUR_PRIMARY_KEY",
      "secondaryConnectionString": "Endpoint=sb://YOUR_NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=YOUR_SECONDARY_KEY",
      "path": "YOUR_EVENT_HUB_NAME"
    }
    
    置換後の文字列
    YOUR_NAMESPACE エンドポイントの名前空間
    YOUR_PRIMARY_KEY 認証に使用されるプライマリ接続文字列
    YOUR_SECONDARY_KEY 認証に使用されるセカンダリ接続文字列
    YOUR_EVENT_HUB_NAME イベント ハブの名前
  • Event Hubs イベントの種類へのルート DeviceMessageconnectionString に含めるEntityPathのは必須です。

    {
      "type": "EventHub",
      "eventTypes": [
        "DeviceMessage"
      ],
      "connectionString": "Endpoint=sb://YOUR_NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=YOUR_PRIMARY_KEY;EntityPath=YOUR_EVENT_HUB_NAME",
      "secondaryConnectionString": "Endpoint=sb://YOUR_NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=YOUR_SECONDARY_KEY;EntityPath=YOUR_EVENT_HUB_NAME",
      "path": "YOUR_EVENT_HUB_NAME"
    }
    
    置換後の文字列
    YOUR_NAMESPACE エンドポイントの名前空間
    YOUR_PRIMARY_KEY 認証に使用されるプライマリ接続文字列
    YOUR_SECONDARY_KEY 認証に使用されるセカンダリ接続文字列
    YOUR_EVENT_HUB_NAME イベント ハブの名前

注意

新しいエンドポイントを作成するとき、そのエンドポイントでイベントの受信が始まるまで最大 5 ~ 10 分かかる場合があります。

プライマリ接続キーとセカンダリ接続キー

プライマリ接続キーが承認されなくなると、システムは自動的にセカンダリ接続キーを試みます。 これによってバックアップが提供され、Endpoints API を使用してプライマリ キーを正常に認証および更新できる可能性があります。

プライマリとセカンダリ両方の接続キーが承認されなくなると、システムは最大 30 分の指数バックオフ待機時間に入ります。 トリガーされた各バックオフ待機時間では、イベントは削除されます。

システムがバックオフ待機状態のときは常に、Endpoints API による接続キーの更新が有効になるまでに最大で 30 分かかる場合があります。

到達できないエンドポイント

エンドポイントが到達不能になると、システムは最大 30 分の指数バックオフ待機時間に入ります。 トリガーされた各バックオフ待機時間では、イベントは削除されます。

次の手順