Sdílet prostřednictvím


Nasazení modulu IoT Edge pro službu Azure Blob Storage na zařízení

Platí pro: Značka zaškrtnutí IoT Edge 1.5 IoT Edge 1.5 Značka zaškrtnutí IoT Edge 1.4 IoT Edge 1.4

Důležité

Podporované verze ioT Edge 1.5 LTS a IoT Edge 1.4 LTS. IoT Edge 1.4 LTS je konec životnosti 12. listopadu 2024. Pokud používáte starší verzi, podívejte se na článek Aktualizace IoT Edge.

Existuje několik způsobů, jak nasadit moduly do zařízení IoT Edge a všechny z nich fungují pro azure Blob Storage v modulech IoT Edge. Dvě nejjednodušší metody jsou použití webu Azure Portal nebo šablon editoru Visual Studio Code.

Požadavky

Nasazení z webu Azure Portal

Azure Portal vás provede vytvořením manifestu nasazení a nasdílením nasazení do zařízení IoT Edge.

Vyberte své zařízení.

  1. Přihlaste se k webu Azure Portal a přejděte do centra IoT.
  2. V nabídce Správa zařízení vyberte zařízení.
  3. V seznamu vyberte cílové zařízení IoT Edge.
  4. Vyberte Nastavit moduly.

Konfigurace manifestu nasazení

Manifest nasazení je dokument JSON, který popisuje, které moduly se mají nasadit, jak data proudí mezi moduly a požadované vlastnosti dvojčat modulů. Azure Portal obsahuje průvodce, který vás provede vytvořením manifestu nasazení. Obsahuje tři kroky uspořádané na karty: Moduly, Trasy a Revize a Vytvořit.

Přidat moduly

  1. V části Moduly IoT Edge na stránce vyberte rozevírací seznam Přidat a výběrem modulu IoT Edge zobrazte stránku Přidat modul IoT Edge.

  2. Na kartě Nastavení zadejte název modulu a pak zadejte identifikátor URI image kontejneru:

    • Název modulu IoT Edge: azureblobstorageoniotedge
    • Identifikátor URI obrázku: mcr.microsoft.com/azure-blob-storage:latest

    Snímek obrazovky znázorňující kartu Nastavení modulu na stránce Přidat modul IoT Edge .

    Nevybírejte možnost Přidat , dokud nezadáte hodnoty na kartách Nastavení modulu, Možnosti vytvoření kontejneru a Nastavení dvojčete modulu, jak je popsáno v tomto postupu.

    Důležité

    Azure IoT Edge se při volání modulů rozlišují malá a velká písmena a sada SDK služby Storage také používá malá písmena. Změna názvu na malá písmena pomáhá zajistit, aby se vaše připojení k modulu Azure Blob Storage ve službě IoT Edge nepřerušovala.

  3. Otevřete kartu Možnosti vytvoření kontejneru.

  4. Do pole zkopírujte a vložte následující JSON, abyste zadali informace o účtu úložiště a připojení úložiště na vašem zařízení.

    {
      "Env":[
        "LOCAL_STORAGE_ACCOUNT_NAME=<local storage account name>",
        "LOCAL_STORAGE_ACCOUNT_KEY=<local storage account key>"
      ],
      "HostConfig":{
        "Binds":[
            "<mount>"
        ],
        "PortBindings":{
          "11002/tcp":[{"HostPort":"11002"}]
        }
      }
    }
    

    Snímek obrazovky znázorňující kartu Možnosti vytvoření kontejneru na stránce Přidat modul IoT Edge

  5. Aktualizujte JSON, který jste zkopírovali do možností vytvoření kontejneru, následujícími informacemi:

    • Nahraďte <local storage account name> názvem, který si můžete zapamatovat. Názvy účtů by měly mít délku 3 až 24 znaků s malými písmeny a číslicemi. Žádné mezery.

    • Nahraďte <local storage account key> klíčem base64 s 64 bajty. Klíč můžete vygenerovat pomocí nástrojů, jako je GeneratePlus. Tyto přihlašovací údaje použijete pro přístup k úložišti objektů blob z jiných modulů.

    • Nahraďte <mount> podle operačního systému kontejneru. Zadejte název svazku nebo absolutní cestu k existujícímu adresáři na zařízení IoT Edge, kde modul blob ukládá data. Připojení úložiště mapuje umístění na vašem zařízení, které zadáte do nastaveného umístění v modulu.

    Pro kontejnery Linuxu je <formát vaší cesty k úložišti nebo svazku>:/blobroot. Příklad:

    Důležité

    • Neměňte druhou polovinu hodnoty připojení úložiště, která odkazuje na konkrétní umístění v modulu Blob Storage v IoT Edge. Připojení k úložišti musí vždy končit parametrem :/blobroot pro kontejnery Linuxu.

    • IoT Edge neodebírá svazky připojené ke kontejnerům modulů. Toto chování je záměrné, protože umožňuje uchovávat data napříč instancemi kontejnerů například v případě upgradu. Pokud však tyto svazky zůstanou nevyužité, může to vést k vyčerpání místa na disku a následným chybám systému. Pokud ve svém scénáři používáte svazky Dockeru, doporučujeme používat nástroje Dockeru, jako je vyřazení svazku Dockeru a rm svazku Dockeru, k odebrání nepoužívaných svazků, zejména pro produkční scénáře.

  6. Na kartě Nastavení dvojčete modulu zkopírujte následující KÓD JSON a vložte ho do pole.

    {
      "deviceAutoDeleteProperties": {
        "deleteOn": <true, false>,
        "deleteAfterMinutes": <timeToLiveInMinutes>,
        "retainWhileUploading": <true,false>
      },
      "deviceToCloudUploadProperties": {
        "uploadOn": <true, false>,
        "uploadOrder": "<NewestFirst, OldestFirst>",
        "cloudStorageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<your Azure Storage Account Name>;AccountKey=<your Azure Storage Account Key>; EndpointSuffix=<your end point suffix>",
        "storageContainersForUpload": {
          "<source container name1>": {
            "target": "<your-target-container-name>"
          }
        },
        "deleteAfterUpload": <true,false>
      }
    }
    
  7. Nakonfigurujte každou vlastnost s odpovídající hodnotou, jak je uvedeno zástupnými symboly. Pokud používáte simulátor IoT Edge, nastavte hodnoty na související proměnné prostředí pro tyto vlastnosti, jak popisuje deviceToCloudUploadProperties a deviceAutoDeleteProperties.

    Tip

    Název target kontejneru má omezení pojmenování, například použití $ předpony není podporováno. Pokud chcete zobrazit všechna omezení, zobrazte názvy kontejnerů.

    Poznámka:

    Pokud je cíl kontejneru bez názvu nebo null v rámci storageContainersForUpload, přiřadí se k cíli výchozí název. Pokud chcete zastavit nahrávání do kontejneru, musí být zcela odebrán z storageContainersForUpload. Další informace najdete v deviceToCloudUploadProperties části Ukládání dat na hraničních zařízeních se službou Azure Blob Storage ve službě IoT Edge.

    Snímek obrazovky s kartou Nastavení dvojčete modulu na stránce Přidat modul IoT Edge

    Informace o konfiguraci deviceToCloudUploadProperties a deviceAutoDeleteProperties po nasazení modulu najdete v tématu Úprava dvojčete modulu. Další informace o požadovaných vlastnostech naleznete v tématu Definování nebo aktualizace požadovaných vlastností.

  8. Vyberte Přidat.

  9. Vyberte Další: Trasy pro pokračování v části Trasy.

Zadání tras

Ponechte výchozí trasy a vyberte Další: Zkontrolovat a vytvořit , abyste mohli pokračovat v oddílu kontroly.

Kontrola nasazení

V části kontroly se zobrazí manifest nasazení JSON vytvořený na základě vašich výběrů v předchozích dvou částech. Existují také dva moduly, které jste nepřidali: $edgeAgent a $edgeHub. Tyto dva moduly tvoří modul runtime IoT Edge a jsou povinné výchozí hodnoty v každém nasazení.

Zkontrolujte informace o nasazení a pak vyberte Vytvořit.

Ověření nasazení

Po vytvoření nasazení se vrátíte na stránku Zařízení centra IoT.

  1. Výběrem zařízení IoT Edge, na které jste cílili nasazení, otevřete jeho podrobnosti.
  2. V podrobnostech o zařízení ověřte, že je modul úložiště objektů blob uvedený v nasazení i v sestavě zařízení.

Může chvíli trvat, než se modul na zařízení spustí a pak se nahlásí do IoT Hubu. Aktualizujte stránku, aby se zobrazil aktualizovaný stav.

Nasazení z editoru Visual Studio Code

Azure IoT Edge poskytuje šablony v editoru Visual Studio Code, které vám pomůžou vyvíjet hraniční řešení. Pomocí následujících kroků vytvořte nové řešení IoT Edge s modulem úložiště objektů blob a nakonfigurujte manifest nasazení.

Důležité

Rozšíření Visual Studio Code pro Azure IoT Edge je v režimu údržby.

  1. Vyberte paletu příkazů Zobrazit>.

  2. Na paletě příkazů zadejte a spusťte příkaz Azure IoT Edge: New IoT Edge solution (Azure IoT Edge: Nové řešení IoT Edge).

    Snímek obrazovky znázorňující, jak spustit nové řešení IoT Edge

    Vytvořte řešení podle výzev, které se zobrazí na paletě příkazů.

    Pole Hodnota
    Vybrat složku Zvolte umístění na vývojovém počítači pro Visual Studio Code a vytvořte soubory řešení.
    Zadejte název řešení Zadejte popisný název vašeho řešení nebo přijměte výchozí EdgeSolution.
    Vyberte šablonu modulu Zvolte Existující modul (zadejte adresu URL celého obrázku).
    Zadejte název modulu Zadejte název modulu malými písmeny, například azureblobstorageoniotedge.

    Pro modul Azure Blob Storage v IoT Edge je důležité použít malými písmeny. IoT Edge se při odkazování na moduly rozlišují malá a velká písmena a sada SDK služby Storage ve výchozím nastavení používá malá písmena.
    Poskytnutí image Dockeru pro modul Zadejte identifikátor URI image: mcr.microsoft.com/azure-blob-storage:latest

    Visual Studio Code vezme informace, které jste zadali, vytvoří řešení IoT Edge a pak ho načte do nového okna. Šablona řešení vytvoří šablonu manifestu nasazení, která obsahuje image modulu úložiště objektů blob, ale potřebujete nakonfigurovat možnosti vytvoření modulu.

  3. Otevřete deployment.template.json v novém pracovním prostoru řešení a vyhledejte oddíl modulů . Proveďte následující změny konfigurace:

    1. Zkopírujte a vložte následující kód do createOptions pole modulu úložiště objektů blob:

      
      ```json
      "Env":[
       "LOCAL_STORAGE_ACCOUNT_NAME=<local storage account name>",
       "LOCAL_STORAGE_ACCOUNT_KEY=<local storage account key>"
      ],
      "HostConfig":{
        "Binds": ["<mount>"],
        "PortBindings":{
          "11002/tcp": [{"HostPort":"11002"}]
        }
      }
      

      Snímek obrazovky znázorňující aktualizaci modulu createOptions v editoru Visual Studio Code

  4. Nahraďte <local storage account name> názvem, který si můžete zapamatovat. Názvy účtů by měly mít délku 3 až 24 znaků s malými písmeny a číslicemi. Žádné mezery.

  5. Nahraďte <local storage account key> klíčem base64 s 64 bajty. Klíč můžete vygenerovat pomocí nástrojů, jako je GeneratePlus. Tyto přihlašovací údaje použijete pro přístup k úložišti objektů blob z jiných modulů.

  6. Nahraďte <mount> podle operačního systému kontejneru. Zadejte název svazku nebo absolutní cestu k adresáři na zařízení IoT Edge, kam chcete, aby modul objektů blob ukládal data. Připojení úložiště mapuje umístění na vašem zařízení, které zadáte do nastaveného umístění v modulu.

    Pro kontejnery Linuxu je <formát vaší cesty k úložišti nebo svazku>:/blobroot. Příklad:

    Důležité

    • Neměňte druhou polovinu hodnoty připojení úložiště, která odkazuje na konkrétní umístění v modulu Blob Storage v IoT Edge. Připojení k úložišti musí vždy končit parametrem :/blobroot pro kontejnery Linuxu.

    • IoT Edge neodebírá svazky připojené ke kontejnerům modulů. Toto chování je záměrné, protože umožňuje uchovávat data napříč instancemi kontejnerů například v případě upgradu. Pokud však tyto svazky zůstanou nevyužité, může to vést k vyčerpání místa na disku a následným chybám systému. Pokud ve svém scénáři používáte svazky Dockeru, doporučujeme používat nástroje Dockeru, jako je vyřazení svazku Dockeru a rm svazku Dockeru, k odebrání nepoužívaných svazků, zejména pro produkční scénáře.

  7. Nakonfigurujte deviceToCloudUploadProperties a deviceAutoDeleteProperties pro váš modul přidáním následujícího kódu JSON do souboru deployment.template.json . Nakonfigurujte každou vlastnost s odpovídající hodnotou a uložte soubor. Pokud používáte simulátor IoT Edge, nastavte hodnoty na související proměnné prostředí pro tyto vlastnosti, které najdete v části vysvětlení zařízeníToCloudUploadProperties a deviceAutoDeleteProperties.

    "<your azureblobstorageoniotedge module name>":{
      "properties.desired": {
        "deviceAutoDeleteProperties": {
          "deleteOn": <true, false>,
          "deleteAfterMinutes": <timeToLiveInMinutes>,
          "retainWhileUploading": <true, false>
        },
        "deviceToCloudUploadProperties": {
          "uploadOn": <true, false>,
          "uploadOrder": "<NewestFirst, OldestFirst>",
          "cloudStorageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<your Azure Storage Account Name>;AccountKey=<your Azure Storage Account Key>;EndpointSuffix=<your end point suffix>",
          "storageContainersForUpload": {
            "<source container name1>": {
              "target": "<target container name1>"
            }
          },
          "deleteAfterUpload": <true, false>
        }
      }
    }
    

    Snímek obrazovky znázorňující, jak nastavit požadované vlastnosti pro azureblobstorageoniotedge v editoru Visual Studio Code

    Informace o konfiguraci deviceToCloudUploadProperties a deviceAutoDeleteProperties po nasazení modulu najdete v tématu Úprava dvojčete modulu. Další informace o možnostech vytvoření kontejneru, restartování zásad a požadovaném stavu najdete v tématu Požadované vlastnosti agenta EdgeAgent.

  8. Uložte soubor deployment.template.json.

  9. Klikněte pravým tlačítkem na deployment.template.json a vyberte Vygenerovat manifest nasazení IoT Edge.

  10. Visual Studio Code vezme informace, které jste zadali v deployment.template.json , a použije ho k vytvoření nového souboru manifestu nasazení. Manifest nasazení se vytvoří v nové konfigurační složce v pracovním prostoru řešení. Jakmile budete mít tento soubor, můžete postupovat podle kroků v tématu Nasazení modulů Azure IoT Edge pomocí Azure CLI 2.0.

Nasazení několika instancí modulů

Pokud chcete nasadit více instancí služby Azure Blob Storage v modulu IoT Edge, musíte zadat jinou cestu k úložišti a změnit HostPort hodnotu, se kterou modul vytvoří vazbu. Moduly úložiště objektů blob vždy zpřístupňují port 11002 v kontejneru, ale můžete deklarovat, ke kterému portu je vázaný na hostitele.

Pokud chcete změnit hodnotu, upravte možnosti vytvoření kontejneru (na webu Azure Portal) nebo pole createOptions (v souboru deployment.template.json v editoru HostPort Visual Studio Code):

"PortBindings":{
  "11002/tcp": [{"HostPort":"<port number>"}]
}

Když se připojíte k dalším modulům úložiště objektů blob, změňte koncový bod tak, aby odkazovat na aktualizovaný port hostitele.

Konfigurace podpory proxy

Pokud vaše organizace používá proxy server, musíte nakonfigurovat podporu proxy serveru pro moduly runtime edgeAgent a edgeHub. Tento proces zahrnuje dva úkoly:

  • Nakonfigurujte démony modulu runtime a agenta IoT Edge na zařízení.
  • Nastavte proměnnou prostředí HTTPS_PROXY pro moduly v souboru JSON manifestu nasazení.

Tento proces je popsaný v tématu Konfigurace zařízení IoT Edge pro komunikaci prostřednictvím proxy serveru.

Modul úložiště objektů blob navíc vyžaduje nastavení HTTPS_PROXY v souboru nasazení manifestu. Můžete přímo upravit soubor manifestu nasazení nebo použít Azure Portal.

  1. Na webu Azure Portal přejděte do služby IoT Hub a v nabídce Správa zařízení vyberte Zařízení.

  2. Vyberte zařízení s modulem, které chcete nakonfigurovat.

  3. Vyberte Nastavit moduly.

  4. V části Moduly IoT Edge na stránce vyberte modul úložiště objektů blob.

  5. Na stránce Aktualizovat modul IoT Edge vyberte kartu Proměnné prostředí.

  6. Přidejte HTTPS_PROXY název a adresu URL proxy serveru pro hodnotu.

    Snímek obrazovky s podoknem Aktualizovat modul IoT Edge, kde můžete zadat zadané hodnoty

  7. Vyberte Aktualizovat a pak Zkontrolovat a vytvořit.

  8. Podívejte se, jak se proxy server přidá do modulu v manifestu nasazení, a vyberte Vytvořit.

  9. Ověřte nastavení tak, že na stránce s podrobnostmi o zařízení vyberete modul a v dolní části stránky Podrobnosti modulů IoT Edge vyberte kartu Proměnné prostředí.

    Snímek obrazovky s kartou Proměnné prostředí

Další kroky

Přečtěte si další informace o službě Azure Blob Storage ve službě IoT Edge.

Další informace o tom, jak fungují manifesty nasazení a jak je vytvořit, najdete v tématu Vysvětlení způsobu použití, konfigurace a opětovného použití modulů IoT Edge.