Začínáme s IoT Hub identitami modulů a dvojčaty modulů pomocí Azure CLI

Identity modulů a dvojčata modulů se podobají identitám zařízení a dvojčatům zařízení Azure IoT Hub, ale poskytují jemnější členitost. Stejně jako Azure IoT Hub identit zařízení a dvojčat zařízení umožňují back-endové aplikaci konfigurovat zařízení a poskytovat přehled o podmínkách zařízení, identity modulů a dvojčata modulů poskytují tyto funkce pro jednotlivé komponenty zařízení. Na zařízeních s podporou více komponent, jako jsou zařízení s operačním systémem nebo zařízení s firmwarem, umožňují identity modulů a dvojčata modulů izolovanou konfiguraci a podmínky pro každou komponentu.

Poznámka

Funkce popsané v tomto článku jsou k dispozici pouze na úrovni Standard IoT Hub. Další informace o úrovních IoT Hub Basic a Standard/Free najdete v tématu Volba správné IoT Hub úrovně pro vaše řešení.

V tomto článku se dozvíte, jak vytvořit relaci Azure CLI, ve které:

  • Vytvořte identitu zařízení a pak pro toto zařízení vytvořte identitu modulu.

  • Aktualizujte sadu požadovaných vlastností dvojčete modulu přidruženého k identitě modulu.

Požadavky

  • Azure CLI Příkazy v tomto článku můžete také spouštět pomocí prostředí Azure Cloud Shell, interaktivního prostředí rozhraní příkazového řádku, které běží ve vašem prohlížeči nebo v aplikaci, jako je Terminál Windows. Pokud používáte Cloud Shell, nemusíte nic instalovat. Pokud dáváte přednost místnímu používání rozhraní příkazového řádku, tento článek vyžaduje Azure CLI verze 2.36 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Pokud chcete místně nainstalovat nebo upgradovat Azure CLI, přečtěte si téma Instalace Azure CLI.

  • Centrum IoT. Vytvořte ho pomocí rozhraní příkazového řádku nebo Azure Portal.

  • Ujistěte se, že je v bráně firewall otevřený port 8883. Ukázky v tomto článku používají protokol MQTT, který komunikuje přes port 8883. Tento port může být v některých podnikových a vzdělávacích síťových prostředích blokovaný. Další informace a způsoby, jak tento problém obejít, najdete v tématu Připojení k IoT Hub (MQTT).

Ověřování modulů

K ověřování identit modulů můžete použít symetrické klíče nebo certifikáty X.509. Pro ověřování certifikátů X.509 musí mít certifikát modulu svůj běžný název (CN) naformátovaný jako CN=<deviceid>/<moduleid>. Příklad:

openssl req -new -key d1m1.key.pem -out d1m1.csr -subj "/CN=device01\/module01"

Příprava Cloud Shell

Pokud chcete používat azure Cloud Shell, musíte ji nejprve spustit a nakonfigurovat. Pokud používáte rozhraní příkazového řádku místně, přejděte k části Příprava relace rozhraní příkazového řádku .

  1. V záhlaví stránky v Azure Portal vyberte ikonu Cloud Shell.

    Snímek obrazovky globálních ovládacích prvků ze záhlaví stránky Azure Portal se zvýrazněnou ikonou Cloud Shell

    Poznámka

    Pokud Cloud Shell používáte poprvé, zobrazí se výzva k vytvoření úložiště, které je potřeba k použití Cloud Shell. Vyberte předplatné, abyste vytvořili účet úložiště, a sdílenou složku služby Microsoft Azure Files.

  2. Pomocí selektoru prostředí na panelu nástrojů Cloud Shell vyberte upřednostňované prostředí rozhraní příkazového řádku. Tento článek používá prostředí Bash . Můžete také použít prostředí PowerShell .

    Poznámka

    Některé příkazy vyžadují v prostředích Bash a PowerShell jinou syntaxi nebo formátování. Další informace najdete v tématu Tipy pro úspěšné používání Azure CLI.

    Snímek obrazovky s oknem azure Cloud Shell se zvýrazněným selektorem prostředí na panelu nástrojů

Příprava relace rozhraní příkazového řádku

Dále musíte připravit relaci Azure CLI. Pokud používáte Cloud Shell, spustíte relaci na kartě Cloud Shell. Pokud používáte místního klienta rozhraní příkazového řádku, spustíte relaci v instanci rozhraní příkazového řádku.

  1. Pokud používáte Cloud Shell, přejděte k dalšímu kroku. V opačném případě se spuštěním příkazu az login v relaci rozhraní příkazového řádku přihlaste ke svému účtu Azure.

    Pokud používáte Cloud Shell, jste automaticky přihlášení ke svému účtu Azure. Veškerá komunikace mezi relací Azure CLI a centrem IoT se ověřuje a šifruje. V důsledku toho tento článek nepotřebuje další ověřování, které byste použili se skutečným zařízením, jako je například připojovací řetězec. Další informace o přihlašování pomocí Azure CLI najdete v tématu Přihlášení pomocí Azure CLI.

    az login
    
  2. V relaci rozhraní příkazového řádku spusťte příkaz az extension add . Příkaz přidá rozšíření Microsoft Azure IoT pro Azure CLI do prostředí rozhraní příkazového řádku. Rozšíření přidává do Azure CLI příkazy specifické pro IoT Hub, IoT Edge a IoT Device Provisioning Service (DPS). Po instalaci rozšíření ho nemusíte instalovat znovu v žádné Cloud Shell relaci.

    az extension add --name azure-iot
    

    Poznámka

    Tento článek používá nejnovější verzi rozšíření Azure IoT s názvem azure-iot. Starší verze se nazývá azure-cli-iot-ext. Najednou byste měli mít nainstalovanou jenom jednu verzi. K ověření aktuálně nainstalovaných rozšíření můžete použít příkaz az extension list .

    Slouží az extension remove --name azure-cli-iot-ext k odebrání starší verze rozšíření.

    Použijte az extension add --name azure-iot k přidání nové verze rozšíření.

    Pokud chcete zjistit, jaká rozšíření máte nainstalovaná, použijte az extension list.

Vytvoření identity zařízení a identity modulu

V této části vytvoříte identitu zařízení pro centrum IoT v relaci rozhraní příkazového řádku a pak pomocí této identity zařízení vytvoříte identitu modulu. Pod každou identitou zařízení můžete vytvořit až 50 identit modulů.

Vytvoření identity zařízení a identity modulu:

  1. V relaci rozhraní příkazového řádku spusťte příkaz az iot hub device-identity create a nahraďte následující zástupné symboly odpovídajícími hodnotami. Tento příkaz vytvoří identitu zařízení pro váš modul.

    {DeviceName}. Název vašeho zařízení.

    {HubName}. Název vašeho centra IoT.

    az iot hub device-identity create --device-id {DeviceName} --hub-name {HubName} 
    
  2. V relaci rozhraní příkazového řádku spusťte příkaz az iot hub module-identity create a nahraďte následující zástupné symboly odpovídajícími hodnotami. Tento příkaz vytvoří identitu modulu pro váš modul v rámci identity zařízení, kterou jste vytvořili v předchozím kroku.

    {DeviceName}. Název vašeho zařízení.

    {HubName}. Název vašeho centra IoT.

    {ModuleName}. Název modulu vašeho zařízení.

    az iot hub module-identity create --device-id {DeviceName} --hub-name {HubName} \
                                      --module-id {ModuleName}
    

Aktualizace dvojčete modulu

Po vytvoření identity modulu se ve službě IoT Hub implicitně vytvoří dvojče modulu. V této části použijete relaci rozhraní příkazového řádku k aktualizaci sady požadovaných vlastností dvojčete modulu přidruženého k identitě modulu, kterou jste vytvořili v předchozí části.

  1. V relaci rozhraní příkazového řádku spusťte příkaz az iot hub module-twin update a nahraďte následující zástupné symboly odpovídajícími hodnotami. V tomto příkladu aktualizujeme několik požadovaných vlastností dvojčete modulu pro identitu modulu, kterou jsme vytvořili v předchozí části.

    {DeviceName}. Název vašeho zařízení.

    {HubName}. Název vašeho centra IoT.

    {ModuleName}. Název modulu vašeho zařízení.

    az iot hub module-twin update --device-id {DeviceName} --hub-name {HubName} \
                                  --module-id {ModuleName} \
                                  --desired '{"conditions":{"temperature":{"warning":75, "critical":100}}}'
    
  2. V relaci rozhraní příkazového řádku ověřte, že odpověď JSON zobrazuje výsledky operace aktualizace. V následujícím příkladu odpovědi JSON jsme v příkazu rozhraní příkazového řádku použili SampleDevice pro SampleModule{DeviceName} zástupné symboly a {ModuleName} (v uvedeném pořadí).az iot hub module-twin update

    {
      "authenticationType": "sas",
      "capabilities": null,
      "cloudToDeviceMessageCount": 0,
      "connectionState": "Disconnected",
      "deviceEtag": "Mzg0OEN1NzW=",
      "deviceId": "SampleDevice",
      "deviceScope": null,
      "etag": "AAAAAAAAAAI=",
      "lastActivityTime": "0001-01-01T00:00:00+00:00",
      "modelId": "",
      "moduleId": "SampleModule",
      "parentScopes": null,
      "properties": {
        "desired": {
          "$metadata": {
            "$lastUpdated": "2023-02-17T21:26:10.5835633Z",
            "$lastUpdatedVersion": 2,
            "conditions": {
              "$lastUpdated": "2023-02-17T21:26:10.5835633Z",
              "$lastUpdatedVersion": 2,
              "temperature": {
                "$lastUpdated": "2023-02-17T21:26:10.5835633Z",
                "$lastUpdatedVersion": 2,
                "critical": {
                  "$lastUpdated": "2023-02-17T21:26:10.5835633Z",
                  "$lastUpdatedVersion": 2
                },
                "warning": {
                  "$lastUpdated": "2023-02-17T21:26:10.5835633Z",
                  "$lastUpdatedVersion": 2
                }
              }
            }
          },
          "$version": 2,
          "conditions": {
            "temperature": {
              "critical": 100,
              "warning": 75
            }
          }
        },
        "reported": {
          "$metadata": {
            "$lastUpdated": "0001-01-01T00:00:00Z"
          },
          "$version": 1
        }
      },
      "status": "enabled",
      "statusReason": null,
      "statusUpdateTime": "0001-01-01T00:00:00+00:00",
      "tags": null,
      "version": 3,
      "x509Thumbprint": {
        "primaryThumbprint": null,
        "secondaryThumbprint": null
      }
    }
    

Další kroky

Informace o tom, jak pomocí Azure CLI rozšířit řešení IoT a naplánovat aktualizace na zařízeních, najdete v tématu Plánování a vysílání úloh.

Pokud chcete pokračovat v začátcích se vzory správy IoT Hub a zařízení, jako je například kompletní aktualizace na základě imagí, přečtěte si článek Aktualizace zařízení pro Azure IoT Hub použití referenční image Raspberry Pi 3 B+.