Export dat IoT do cloudových cílů pomocí exportu dat (starší verze)

Starší funkce exportu dat (Classic) je teď zastaralá a měli byste naplánovat migraci na novou funkci exportu dat. Starší verze exportu dat nemá důležité funkce, jako je dostupnost různých datových typů, filtrování a transformace zpráv. Porovnání exportu starších dat s exportem nových dat najdete v následující tabulce:

Schopnost Starší verze exportu dat (klasický) Export nových dat
Dostupné datové typy Telemetrie, zařízení, šablony zařízení Telemetrie, změny vlastností, změny připojení zařízení, změny životního cyklu zařízení, změny životního cyklu šablony zařízení
Filtrování Žádné Závisí na exportovaných datových typech. Pro telemetrii, filtrování podle telemetrie, vlastností zpráv, hodnot vlastností
Rozšiřování Žádné Obohacení o vlastní řetězec nebo hodnotu vlastnosti na zařízení
Transformace Žádné Transformujte zprávu exportu na požadovaný obrazec.
Cíle Azure Event Hubs, fronty a témata Azure Service Bus Azure Blob Storage Stejné jako u starší verze exportu dat a azure Data Explorer a webhooků
Náchytná omezení Pět exportů na aplikaci, jeden cíl na export 10 připojení k cíli exportu na aplikaci

Posouzení migrace

Pokud chcete migrovat starší verzi exportu dat (classic) na export nových dat, měli byste:

  1. Použijte testovací aplikaci IoT Central a vytvořte nový export dat se stejným datovým typem a cílem. Volitelně můžete použít funkci rozšiřování a transformace dat, aby se obrazec zprávy exportu podobil obrazci zprávy ze starší verze exportu dat.
  2. Jakmile jste otestovali nový export dat a jste připraveni přejít do produkčního prostředí, ujistěte se, že jsou bezpečně odebrány všechny pracovní postupy nebo závislosti na aktivních starších exportech dat.
  3. Vytvořte nové exporty dat v produkčních prostředích a ověřte, že zprávy exportu splňují vaše požadavky. Do nového exportu dat pak můžete přidat jakékoli pracovní postupy nebo závislosti.
  4. Po úspěšné migraci všech starších exportů dat na nové exporty dat můžete starší exporty dat odstranit.

Aspekty migrace datových typů

Výchozí formát dat se u datových typů liší mezi exportem starších dat a exportem nových dat. Další informace najdete v tématech Formáty dat pro nový export dat a Formáty dat pro export starších verzí dat. Při migraci na nový export dat byste u starší verze exportu dat měli odebrat všechny závislosti na formátu dat. Pokud ale máte silné závislosti nebo pracovní postupy spojené s exporty starších dat, následující aspekty vám můžou pomoct vyřešit případné problémy s migrací.

Telemetrie: Pokud se v novém exportu dat rozhodnete použít starší formát exportu dat pro telemetrii, můžete použít funkci transformace a vytvořit transformační dotaz podobný následujícímu příkladu:

.telemetry | map({ key: .name, value: .value }) | from_entries

Zařízení: Pokud aktuálně používáte starší export dat s datovým typem zařízení, můžete při novém exportu použít datové typy změny vlastností a události životního cyklu zařízení k exportu stejných dat. U obou datových typů můžete dosáhnout srovnatelné datové struktury pomocí následujícího transformačního dotazu:

approved: .device.approved, 
provisioned: .device.provisioned, 
simulated: .device.simulated, 
cloudProperties: .device.cloudProperties | map({ key: .name, value: .value }) | from_entries, 
displayName: .device.name, 
id: .device.id, 
instanceOf: .device.templateId, 
properties: .device.properties.reported | map({ key: .name, value: .value }) | from_entries 

Šablony zařízení: Pokud aktuálně používáte starší exporty dat s datovým typem šablon zařízení, můžete stejná data získat pomocí volání Šablony zařízení – Získat rozhraní API.

Důležité informace o cílové migraci

V novém exportu dat můžete vytvořit cíl a opakovaně ho používat v různých exportech dat. Při migraci ze starší verze exportu dat byste měli v nových exportech dat vytvořit cíle, které ukládají informace o stávajících starších cílech exportu dat.

Poznámka

Nový export dat nepodporuje export neplatných zpráv JSON.

Export dat IoT do cloudových cílů (starší verze)

Poznámka

Tento článek popisuje starší funkce exportu dat ve službě IoT Central.

Tento článek popisuje, jak používat funkci exportu dat v Azure IoT Central. Tato funkce umožňuje nepřetržitě exportovat data do instancí Azure Event Hubs, Azure Service Bus nebo Azure Blob Storage. Export dat používá formát JSON a může zahrnovat telemetrii, informace o zařízení a informace o šabloně zařízení. Exportovaná data použijte pro:

  • Teplé přehledy a analýzy. Tato možnost zahrnuje aktivaci vlastních pravidel v Azure Stream Analytics, aktivaci vlastních pracovních postupů v Azure Logic Apps nebo jejich předávání prostřednictvím Azure Functions k transformaci.
  • Analýzy studených cest, jako jsou trénovací modely ve službě Azure Machine Learning nebo analýza dlouhodobých trendů v Microsoft Power BI.

Poznámka

Když zapnete export dat, získáte od této chvíle jenom data. V současné době se data nedají načíst po dobu, kdy byl export dat vypnutý. Pokud chcete zachovat více historických dat, zapněte export dat co nejdříve.

Požadavky

Musíte být správcem aplikace IoT Central nebo musíte mít oprávnění k exportu dat.

Nastavení cíle exportu

Cíl exportu musí existovat před konfigurací exportu dat.

Vytvoření oboru názvů Event Hubs

Pokud nemáte existující obor názvů služby Event Hubs, do které byste mohli exportovat, postupujte takto:

  1. V Azure Portal vytvořte nový obor názvů služby Event Hubs. Další informace najdete v dokumentaci k Azure Event Hubs.

  2. Zvolte předplatné. Data můžete exportovat do jiných předplatných, která nejsou ve stejném předplatném jako vaše aplikace IoT Central. V tomto případě se připojujete pomocí připojovacího řetězce.

  3. Vytvořte centrum událostí v oboru názvů služby Event Hubs. Přejděte do svého oboru názvů a výběrem + Centrum událostí v horní části vytvořte instanci centra událostí.

Vytvoření oboru názvů služby Service Bus

Pokud nemáte existující obor názvů služby Service Bus, do které byste mohli exportovat, postupujte takto:

  1. V Azure Portal vytvořte nový obor názvů služby Service Bus. Další informace najdete v dokumentaci k Azure Service Bus.

  2. Zvolte předplatné. Data můžete exportovat do jiných předplatných, která nejsou ve stejném předplatném jako vaše aplikace IoT Central. V tomto případě se připojujete pomocí připojovacího řetězce.

  3. Pokud chcete vytvořit frontu nebo téma, do které chcete exportovat, přejděte do svého oboru názvů služby Service Bus a vyberte + Fronta nebo + Téma.

Když jako cíl exportu zvolíte Service Bus, nesmí mít fronty a témata povolené relace ani vyhledávání duplicit. Pokud je některá z těchto možností povolená, některé zprávy do vaší fronty nebo tématu nedorazí.

Vytvoření účtu úložiště

Pokud ještě nemáte účet úložiště Azure, do které byste mohli exportovat, postupujte takto:

  1. V Azure Portal vytvořte nový účet úložiště. Můžete si přečíst další informace o vytváření nových účtů úložiště Azure Blob storage nebo Azure Data Lake Storage účtů úložiště v2. Export dat může zapisovat data jenom do účtů úložiště, které podporují objekty blob bloku. Následující seznam obsahuje známé kompatibilní typy účtů úložiště:

    Úroveň výkonu Typ účtu
    Standard Pro obecné účely V2
    Standard Pro obecné účely V1
    Standard Blob Storage
    Premium Úložiště objektů blob bloku
  2. Vytvořte kontejner v účtu úložiště. Přejděte k účtu úložiště. V části Blob Service vyberte Procházet objekty blob. V horní části vyberte + Kontejner a vytvořte nový kontejner.

Nastavení exportu dat

Teď, když máte cíl, do kterého chcete exportovat data, nastavte export dat podle těchto kroků.

  1. Přihlaste se k aplikaci IoT Central.

  2. V levém podokně vyberte Export dat.

    Tip

    Pokud v levém podokně nevidíte možnost Export dat , nemáte oprávnění ke konfiguraci exportu dat v aplikaci. Požádejte správce o nastavení exportu dat.

  3. Vyberte tlačítko + Nový . Jako cíl exportu vyberte Azure Blob Storage, Azure Event Hubs, frontu Azure Service Bus nebo téma Azure Service Bus. Maximální počet exportů na aplikaci je pět.

  4. Zadejte název exportu. V rozevíracím seznamu vyberte obor názvů nebo zadejte připojovací řetězec.

    Tip

    Účty úložiště, obory názvů Služby Event Hubs a obory názvů služby Service Bus se zobrazují jenom ve stejném předplatném jako vaše aplikace IoT Central. Pokud chcete exportovat do cíle mimo toto předplatné, zvolte Zadat připojovací řetězec a podívejte se na krok 6.

    Vytvoření nového centra událostí

  5. V rozevíracím seznamu zvolte centrum událostí, frontu, téma nebo kontejner.

  6. (Volitelné) Pokud jste zvolili Zadat připojovací řetězec, zobrazí se nové pole pro vložení připojovacího řetězce. Získání připojovacího řetězce pro vaše zařízení:

    • Event Hubs nebo Service Bus, přejděte do oboru názvů v Azure Portal:
      • Použití připojovacího řetězce pro celý obor názvů:
        1. V části Nastavení vyberte Zásady sdíleného přístupu.
        2. Vytvořte nový klíč nebo zvolte existující klíč s oprávněními Odeslat .
        3. Zkopírování primárního nebo sekundárního připojovacího řetězce
      • Pokud chcete použít připojovací řetězec pro konkrétní instanci centra událostí nebo frontu nebo téma služby Service Bus, přejděte do > části Entity Event Hubs nebo Entity > Queues nebo Entities > Témata. Zvolte konkrétní instanci a stejným postupem získáte připojovací řetězec.
    • Účet úložiště, přejděte na účet úložiště v Azure Portal:
      • Podporují se jenom připojovací řetězce pro celý účet úložiště. Připojovací řetězce s oborem na jeden kontejner se nepodporují.
        1. V části Nastavení vyberte Přístupové klíče.
        2. Zkopírujte připojovací řetězec key1 nebo připojovací řetězec key2.

    Vložte připojovací řetězec. Zadejte název kontejneru instance nebo rozlišující malá a velká písmena.

  7. V části Data k exportu zvolte typy dat, které chcete exportovat, nastavením typu na Zapnuto.

  8. Pokud chcete zapnout export dat, ujistěte se, že je přepínač Povolenozapnutý. Vyberte Uložit.

  9. Po několika minutách se vaše data zobrazí ve zvoleném cíli.

Export obsahu a formátu

Exportovaná telemetrická data obsahují celou zprávu, kterou vaše zařízení odeslala do IoT Central, nejen samotné hodnoty telemetrie. Exportovaná data zařízení obsahují změny vlastností a metadat všech zařízení a exportované šablony zařízení obsahují změny všech šablon zařízení.

V případě služby Event Hubs a Service Bus se data exportují téměř v reálném čase. Data jsou ve body vlastnosti a jsou ve formátu JSON. Příklady najdete níže.

V případě úložiště objektů blob se data exportují jednou za minutu, přičemž každý soubor obsahuje dávku změn od posledního exportovaného souboru. Exportovaná data se umístí do tří složek ve formátu JSON. Výchozí cesty v účtu úložiště jsou:

  • Telemetrie: {container}/{app-id}/telemetry/{YYYY}/{MM}/{dd}/{hh}/{mm}/{filename}
  • Zařízení: {container}/{app-id}/devices/{YYYY}/{MM}/{dd}/{hh}/{mm}/{název_souboru}
  • Šablony zařízení: {container}/{app-id}/deviceTemplates/{YYYY}/{MM}/{dd}/{hh}/{mm}/{název_souboru}

Pokud chcete procházet exportované soubory v Azure Portal, přejděte na soubor a vyberte kartu Upravit objekt blob.

Telemetrie

V případě služby Event Hubs a Service Bus exportuje IoT Central novou zprávu rychle po přijetí zprávy ze zařízení. Každá exportovaná zpráva obsahuje úplnou zprávu, kterou zařízení odeslalo ve vlastnosti body ve formátu JSON.

V případě úložiště objektů blob se zprávy dávkují a exportují jednou za minutu. Exportované soubory používají stejný formát jako soubory zpráv exportované IoT Hub směrování zpráv do úložiště objektů blob.

Poznámka

V případě úložiště objektů blob se ujistěte, že vaše zařízení odesílají zprávy, které obsahují contentType: application/JSON a contentEncoding:utf-8 (nebo utf-16). utf-32 Příklad najdete v dokumentaci k IoT Hub.

Zařízení, které odesílala telemetrii, je reprezentováno ID zařízení (viz následující části). Pokud chcete získat názvy zařízení, exportujte data zařízení a korelujte každou zprávu pomocí connectionDeviceId , které odpovídá deviceId zprávy zařízení.

Následující příklad ukazuje zprávu přijatou z centra událostí nebo z fronty nebo tématu služby Service Bus:

{
  "temp":81.129693132351775,
  "humid":59.488071477541247,
  "EventProcessedUtcTime":"2020-04-07T09:41:15.2877981Z",
  "PartitionId":0,
  "EventEnqueuedUtcTime":"2020-04-07T09:38:32.7380000Z"
}

Tato zpráva neobsahuje ID zařízení odesílajícího zařízení.

Pokud chcete načíst ID zařízení z dat zpráv v dotazu Azure Stream Analytics, použijte funkci GetMetadataPropertyValue . Příklad najdete v tématu Rozšíření Azure IoT Central o vlastní pravidla pomocí Stream Analytics, Azure Functions a SendGrid.

Pokud chcete načíst ID zařízení v pracovním prostoru Azure Databricks nebo Apache Sparku, použijte systemProperties. Příklad najdete v pracovním prostoru Databricks v tématu Rozšíření Azure IoT Central o vlastní analýzy pomocí Azure Databricks.

Následující příklad ukazuje záznam exportovaný do úložiště objektů blob:

{
  "EnqueuedTimeUtc":"2019-09-26T17:46:09.8870000Z",
  "Properties":{

  },
  "SystemProperties":{
    "connectionDeviceId":"<deviceid>",
    "connectionAuthMethod":"{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}",
    "connectionDeviceGenerationId":"637051167384630591",
    "contentType":"application/json",
    "contentEncoding":"utf-8",
    "enqueuedTime":"2019-09-26T17:46:09.8870000Z"
  },
  "Body":{
    "temp":49.91322758395974,
    "humid":49.61214852573155,
    "pm25":25.87332214661367
  }
}

Zařízení

Každá zpráva nebo záznam ve snímku představuje jednu nebo více změn zařízení a jeho vlastností zařízení a cloudu od poslední exportované zprávy. Zpráva obsahuje:

  • id zařízení ve službě IoT Central
  • displayName zařízení
  • ID šablony zařízení v instanceOf
  • simulated příznak, true, pokud je zařízení simulované zařízení
  • provisioned příznak, true, pokud bylo zařízení zřízeno
  • approved příznak true, pokud bylo zařízení schváleno k odesílání dat
  • Hodnoty vlastností
  • properties včetně hodnot vlastností zařízení a cloudu

Odstraněná zařízení se neexportují. V současné době nejsou v exportovaných zprávách žádné indikátory pro odstraněná zařízení.

V případě služby Event Hubs a Service Bus odesílá IoT Central zprávy obsahující data zařízení do centra událostí nebo fronty nebo tématu služby Service Bus téměř v reálném čase.

V případě úložiště objektů blob se nový snímek obsahující všechny změny od posledního zápisu exportuje jednou za minutu.

Následující příklad zprávy zobrazuje informace o datech zařízení a vlastností v centru událostí, frontě nebo tématu služby Service Bus:

{
  "body":{
    "id": "<device Id>",
    "etag": "<etag>",
    "displayName": "Sensor 1",
    "instanceOf": "<device template Id>",
    "simulated": false,
    "provisioned": true,
    "approved": true,
    "properties": {
        "sensorComponent": {
            "setTemp": "30",
            "fwVersion": "2.0.1",
            "status": { "first": "first", "second": "second" },
            "$metadata": {
                "setTemp": {
                    "desiredValue": "30",
                    "desiredVersion": 3,
                    "desiredTimestamp": "2020-02-01T17:15:08.9284049Z",
                    "ackVersion": 3
                },
                "fwVersion": { "ackVersion": 3 },
                "status": {
                    "desiredValue": {
                        "first": "first",
                        "second": "second"
                    },
                    "desiredVersion": 2,
                    "desiredTimestamp": "2020-02-01T17:15:08.9284049Z",
                    "ackVersion": 2
                }
            },
            
        }
    },
    "installDate": { "installDate": "2020-02-01" }
},
  "annotations":{
    "iotcentral-message-source":"devices",
    "x-opt-partition-key":"<partitionKey>",
    "x-opt-sequence-number":39740,
    "x-opt-offset":"<offset>",
    "x-opt-enqueued-time":1539274959654
  },
  "partitionKey":"<partitionKey>",
  "sequenceNumber":39740,
  "enqueuedTimeUtc":"2020-02-01T18:14:49.3820326Z",
  "offset":"<offset>"
}

Tento snímek je ukázkovou zprávou, která zobrazuje data zařízení a vlastností ve službě Blob Storage. Exportované soubory obsahují jeden řádek na záznam.

{
  "id": "<device Id>",
  "etag": "<etag>",
  "displayName": "Sensor 1",
  "instanceOf": "<device template Id>",
  "simulated": false,
  "provisioned": true,
  "approved": true,
  "properties": {
      "sensorComponent": {
          "setTemp": "30",
          "fwVersion": "2.0.1",
          "status": { "first": "first", "second": "second" },
          "$metadata": {
              "setTemp": {
                  "desiredValue": "30",
                  "desiredVersion": 3,
                  "desiredTimestamp": "2020-02-01T17:15:08.9284049Z",
                  "ackVersion": 3
              },
              "fwVersion": { "ackVersion": 3 },
              "status": {
                  "desiredValue": {
                      "first": "first",
                      "second": "second"
                  },
                  "desiredVersion": 2,
                  "desiredTimestamp": "2020-02-01T17:15:08.9284049Z",
                  "ackVersion": 2
              }
          },
          
      }
  },
  "installDate": { "installDate": "2020-02-01" }
}

Šablony zařízení

Každá zpráva nebo záznam snímku představuje jednu nebo více změn publikované šablony zařízení od poslední exportované zprávy. Informace odeslané v každé zprávě nebo záznamu zahrnují:

  • id šablony zařízení, která odpovídá instanceOf výše uvedenému datovému proudu zařízení
  • displayName šablony zařízení
  • Zařízení capabilityModel včetně jeho interfacesa definic telemetrie, vlastností a příkazů
  • cloudProperties Definice
  • Přepsání a počáteční hodnoty, vložené s capabilityModel

Odstraněné šablony zařízení se neexportují. V současné době nejsou v exportovaných zprávách žádné indikátory pro odstraněné šablony zařízení.

V případě služby Event Hubs a Service Bus odesílá IoT Central zprávy obsahující data šablony zařízení do centra událostí nebo fronty nebo tématu služby Service Bus téměř v reálném čase.

V případě úložiště objektů blob se nový snímek obsahující všechny změny od posledního zápisu exportuje jednou za minutu.

Tento příklad ukazuje zprávu o datech šablon zařízení v centru událostí, frontě nebo tématu služby Service Bus:

{
  "body":{
      "id": "<device template id>",
      "etag": "<etag>",
      "types": ["DeviceModel"],
      "displayName": "Sensor template",
      "capabilityModel": {
          "@id": "<capability model id>",
          "@type": ["CapabilityModel"],
          "contents": [],
          "implements": [
              {
                  "@id": "<component Id>",
                  "@type": ["InterfaceInstance"],
                  "name": "sensorComponent",
                  "schema": {
                      "@id": "<interface Id>",
                      "@type": ["Interface"],
                      "displayName": "Sensor interface",
                      "contents": [
                          {
                              "@id": "<id>",
                              "@type": ["Telemetry"],
                              "displayName": "Humidity",
                              "name": "humidity",
                              "schema": "double"
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Telemetry", "SemanticType/Event"],
                              "displayName": "Error event",
                              "name": "error",
                              "schema": "integer"
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Property"],
                              "displayName": "Set temperature",
                              "name": "setTemp",
                              "writable": true,
                              "schema": "integer",
                              "unit": "Units/Temperature/fahrenheit",
                              "initialValue": "30"
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Property"],
                              "displayName": "Firmware version read only",
                              "name": "fwversion",
                              "schema": "string"
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Property"],
                              "displayName": "Display status",
                              "name": "status",
                              "writable": true,
                              "schema": {
                                  "@id": "urn:testInterface:status:obj:ka8iw8wka:1",
                                  "@type": ["Object"]
                              }
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Command"],
                              "request": {
                                  "@id": "<id>",
                                  "@type": ["SchemaField"],
                                  "displayName": "Configuration",
                                  "name": "config",
                                  "schema": "string"
                              },
                              "response": {
                                  "@id": "<id>",
                                  "@type": ["SchemaField"],
                                  "displayName": "Response",
                                  "name": "response",
                                  "schema": "string"
                              },
                              "displayName": "Configure sensor",
                              "name": "sensorConfig"
                          }
                      ]
                  }
              }
          ],
          "displayName": "Sensor capability model"
      },
      "solutionModel": {
          "@id": "<id>",
          "@type": ["SolutionModel"],
          "cloudProperties": [
              {
                  "@id": "<id>",
                  "@type": ["CloudProperty"],
                  "displayName": "Install date",
                  "name": "installDate",
                  "schema": "dateTime",
                  "valueDetail": {
                      "@id": "<id>",
                      "@type": ["ValueDetail/DateTimeValueDetail"]
                  }
              }
          ]
      }
  },
    "annotations":{
      "iotcentral-message-source":"deviceTemplates",
      "x-opt-partition-key":"<partitionKey>",
      "x-opt-sequence-number":25315,
      "x-opt-offset":"<offset>",
      "x-opt-enqueued-time":1539274985085
    },
    "partitionKey":"<partitionKey>",
    "sequenceNumber":25315,
    "enqueuedTimeUtc":"2019-10-02T16:23:05.085Z",
    "offset":"<offset>"
  }
}

Tento ukázkový snímek ukazuje zprávu, která obsahuje data zařízení a vlastností ve službě Blob Storage. Exportované soubory obsahují jeden řádek na záznam.

{
      "id": "<device template id>",
      "etag": "<etag>",
      "types": ["DeviceModel"],
      "displayName": "Sensor template",
      "capabilityModel": {
          "@id": "<capability model id>",
          "@type": ["CapabilityModel"],
          "contents": [],
          "implements": [
              {
                  "@id": "<component Id>",
                  "@type": ["InterfaceInstance"],
                  "name": "Sensor component",
                  "schema": {
                      "@id": "<interface Id>",
                      "@type": ["Interface"],
                      "displayName": "Sensor interface",
                      "contents": [
                          {
                              "@id": "<id>",
                              "@type": ["Telemetry"],
                              "displayName": "Humidity",
                              "name": "humidity",
                              "schema": "double"
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Telemetry", "SemanticType/Event"],
                              "displayName": "Error event",
                              "name": "error",
                              "schema": "integer"
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Property"],
                              "displayName": "Set temperature",
                              "name": "setTemp",
                              "writable": true,
                              "schema": "integer",
                              "unit": "Units/Temperature/fahrenheit",
                              "initialValue": "30"
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Property"],
                              "displayName": "Firmware version read only",
                              "name": "fwversion",
                              "schema": "string"
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Property"],
                              "displayName": "Display status",
                              "name": "status",
                              "writable": true,
                              "schema": {
                                  "@id": "urn:testInterface:status:obj:ka8iw8wka:1",
                                  "@type": ["Object"]
                              }
                          },
                          {
                              "@id": "<id>",
                              "@type": ["Command"],
                              "request": {
                                  "@id": "<id>",
                                  "@type": ["SchemaField"],
                                  "displayName": "Configuration",
                                  "name": "config",
                                  "schema": "string"
                              },
                              "response": {
                                  "@id": "<id>",
                                  "@type": ["SchemaField"],
                                  "displayName": "Response",
                                  "name": "response",
                                  "schema": "string"
                              },
                              "displayName": "Configure sensor",
                              "name": "sensorconfig"
                          }
                      ]
                  }
              }
          ],
          "displayName": "Sensor capability model"
      },
      "solutionModel": {
          "@id": "<id>",
          "@type": ["SolutionModel"],
          "cloudProperties": [
              {
                  "@id": "<id>",
                  "@type": ["CloudProperty"],
                  "displayName": "Install date",
                  "name": "installDate",
                  "schema": "dateTime",
                  "valueDetail": {
                      "@id": "<id>",
                      "@type": ["ValueDetail/DateTimeValueDetail"]
                  }
              }
          ]
      }
  }

Oznámení o změně formátu dat

Poznámka

Formát dat streamu telemetrie není touto změnou ovlivněn. Týká se to jenom datových proudů zařízení a šablon zařízení.

Pokud máte v aplikaci Preview existující export dat se zapnutými datovými proudy šablon zařízení a zařízení , aktualizujte export do 30. června 2020. Tento požadavek platí pro exporty do služby Azure Blob Storage, Azure Event Hubs a Azure Service Bus.

Od 3. února 2020 budou mít všechny nové exporty v aplikacích s povolenými šablonami zařízení a zařízení formát dat popsaný výše. Všechny exporty vytvořené před tímto datem zůstanou ve starém datovém formátu až do 30. června 2020, kdy se tyto exporty automaticky migrují do nového formátu dat. Nový formát dat odpovídá objektu zařízení, vlastnosti zařízení a objektům šablony zařízení ve veřejném rozhraní API služby IoT Central.

Mezi rozdíly mezi starým a novým datovým formátem zařízení patří:

  • @id pro zařízení se odebere, deviceId přejmenuje se na id
  • provisioned Přidá se příznak popisující stav zřizování zařízení.
  • approved Přidá se příznak, který popisuje stav schválení zařízení.
  • properties včetně vlastností zařízení a cloudu, odpovídá entitě ve veřejném rozhraní API.

Mezi rozdíly mezi starým a novým datovým formátem pro šablony zařízení patří:

  • @id pro šablonu zařízení se přejmenuje na id
  • @type u šablony zařízení se přejmenuje na typesa teď se jedná o pole.

Zařízení (formát zastaralý od 3. února 2020)

{
  "@id":"<id-value>",
  "@type":"Device",
  "displayName":"Airbox",
  "data":{
    "$cloudProperties":{
        "Color":"blue"
    },
    "EnvironmentalSensor":{
      "thsensormodel":{
        "reported":{
          "value":"Neque quia et voluptatem veritatis assumenda consequuntur quod.",
          "$lastUpdatedTimestamp":"2019-09-30T20:35:43.8478978Z"
        }
      },
      "pm25sensormodel":{
        "reported":{
          "value":"Aut alias odio.",
          "$lastUpdatedTimestamp":"2019-09-30T20:35:43.8478978Z"
        }
      }
    },
    "urn_azureiot_DeviceManagement_DeviceInformation":{
      "totalStorage":{
        "reported":{
          "value":27900.9730905171,
          "$lastUpdatedTimestamp":"2019-09-30T20:35:43.8478978Z"
        }
      },
      "totalMemory":{
        "reported":{
          "value":4667.82916715811,
          "$lastUpdatedTimestamp":"2019-09-30T20:35:43.8478978Z"
        }
      }
    }
  },
  "instanceOf":"<template-id>",
  "deviceId":"<device-id>",
  "simulated":true
}

Šablony zařízení (formát zastaralý od 3. února 2020)

{
  "@id":"<template-id>",
  "@type":"DeviceModelDefinition",
  "displayName":"Airbox",
  "capabilityModel":{
    "@id":"<id>",
    "@type":"CapabilityModel",
    "implements":[
      {
        "@id":"<id>",
        "@type":"InterfaceInstance",
        "name":"EnvironmentalSensor",
        "schema":{
          "@id":"<id>",
          "@type":"Interface",
          "comment":"Requires temperature and humidity sensors.",
          "description":"Provides functionality to report temperature, humidity. Provides telemetry, commands and read-write properties",
          "displayName":"Environmental Sensor",
          "contents":[
            {
              "@id":"<id>",
              "@type":"Telemetry",
              "description":"Current temperature on the device",
              "displayName":"Temperature",
              "name":"temp",
              "schema":"double",
              "unit":"Units/Temperature/celsius",
              "valueDetail":{
                "@id":"<id>",
                "@type":"ValueDetail/NumberValueDetail",
                "minValue":{
                  "@value":"50"
                }
              },
              "visualizationDetail":{
                "@id":"<id>",
                "@type":"VisualizationDetail"
              }
            },
            {
              "@id":"<id>",
              "@type":"Telemetry",
              "description":"Current humidity on the device",
              "displayName":"Humidity",
              "name":"humid",
              "schema":"integer"
            },
            {
              "@id":"<id>",
              "@type":"Telemetry",
              "description":"Current PM2.5 on the device",
              "displayName":"PM2.5",
              "name":"pm25",
              "schema":"integer"
            },
            {
              "@id":"<id>",
              "@type":"Property",
              "description":"T&H Sensor Model Name",
              "displayName":"T&H Sensor Model",
              "name":"thsensormodel",
              "schema":"string"
            },
            {
              "@id":"<id>",
              "@type":"Property",
              "description":"PM2.5 Sensor Model Name",
              "displayName":"PM2.5 Sensor Model",
              "name":"pm25sensormodel",
              "schema":"string"
            }
          ]
        }
      },
      {
        "@id":"<id>",
        "@type":"InterfaceInstance",
        "name":"urn_azureiot_DeviceManagement_DeviceInformation",
        "schema":{
          "@id":"<id>",
          "@type":"Interface",
          "displayName":"Device information",
          "contents":[
            {
              "@id":"<id>",
              "@type":"Property",
              "comment":"Total available storage on the device in kilobytes. Ex. 20480000 kilobytes.",
              "displayName":"Total storage",
              "name":"totalStorage",
              "displayUnit":"kilobytes",
              "schema":"long"
            },
            {
              "@id":"<id>",
              "@type":"Property",
              "comment":"Total available memory on the device in kilobytes. Ex. 256000 kilobytes.",
              "displayName":"Total memory",
              "name":"totalMemory",
              "displayUnit":"kilobytes",
              "schema":"long"
            }
          ]
        }
      }
    ],
    "displayName":"AAEONAirbox52"
  },
  "solutionModel":{
    "@id":"<id>",
    "@type":"SolutionModel",
    "cloudProperties":[
      {
        "@id":"<id>",
        "@type":"CloudProperty",
        "displayName":"Color",
        "name":"Color",
        "schema":"string",
        "valueDetail":{
          "@id":"<id>",
          "@type":"ValueDetail/StringValueDetail"
        },
        "visualizationDetail":{
          "@id":"<id>",
          "@type":"VisualizationDetail"
        }
      }
    ]
  }
}

Další kroky

Teď, když víte, jak exportovat data do Azure Event Hubs, Azure Service Bus a Azure Blob Storage, pokračujte dalším krokem: