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.4 IoT Edge 1.4

Důležité

Podporované verze ioT Edge 1.5 LTS a IoT Edge 1.4. 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é do záložek: Moduly, Trasy a Revize + 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
    • 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 rozlišuje velká a malá písmena při volání modulů, a SDK služby Storage ve výchozím nastavení 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 poskytli informace o účtu úložiště a nastavení ú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 Generátor Base64. 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 Linuxové kontejnery je formát <úložné cesty nebo svazku>:/blobroot. Napří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 neodstraňuje 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 Docker, jako jsou docker volume prune a docker volume rm, k odebrání nepoužívaných svazků, zejména v produkčních scénářích.

  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.

    Návod

    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 naleznete v části deviceToCloudUploadProperties.

    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 Module Twin. 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.

Určit trasy

Ponechte výchozí trasy a vyberte Další: Zkontrolovat a vytvořit, abyste pokračovali do části 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ří IoT Edge runtime a jsou povinné výchozí moduly v každém nasazení.

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

Ověřte své 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 zařízení ověřte, že je modul úložiště objektů blob uveden jako stanovený v nasazení i hlášený zařízením.

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 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 Zobrazit>Paletu příkazů.

  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.

    Je důležité používat malá písmena pro název v modulu Azure Blob Storage na IoT Edge. IoT Edge rozlišuje velikost písmen při odkazování na moduly, zatímco Storage SDK ve výchozím nastavení používá malá písmena.
    Poskytnutí image Dockeru pro modul Zadejte URI obrázku: 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 Generátor Base64. 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 úložiště blob ukládal svá 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 Linuxové kontejnery je formát <úložné cesty nebo svazku>:/blobroot. Napří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 neodstraňuje 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 Docker, jako jsou docker volume prune a docker volume rm, k odebrání nepoužívaných svazků, zejména v produkčních scénářích.

  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 Module Twin. Další informace o možnostech vytvoření kontejneru, zásadách restartu 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 určit, ke kterému portu je připojený na hostitelském systému.

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, aby odkazoval 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ě blobů.

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

  6. Přidejte HTTPS_PROXY pro Název a svoji proxy URL 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. Ujistěte se, že se proxy server přidává 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.