Udostępnij za pośrednictwem


Deploy the Azure Blob Storage on IoT Edge module to your device (Wdrażanie modułu usługi Azure Blob Storage w usłudze IoT Edge na urządzeniu)

Dotyczy: Znacznik wyboru usługi IoT Edge 1.5 IoT Edge 1.5 Znacznik wyboru usługi IoT Edge 1.4 IoT Edge 1.4

Ważne

Obsługiwane są wersje usługi IoT Edge 1.5 LTS i IoT Edge 1.4 LTS. Usługa IoT Edge 1.4 LTS kończy się 12 listopada 2024 r. Jeśli korzystasz z wcześniejszej wersji, zobacz aktualizację Azure IoT Edge.

Istnieje kilka sposobów wdrażania modułów na urządzeniu usługi IoT Edge i wszystkie z nich działają dla usługi Azure Blob Storage w modułach usługi IoT Edge. Dwie najprostsze metody to użycie witryny Azure Portal lub szablonów programu Visual Studio Code.

Wymagania wstępne

Wdrażanie z witryny Azure Portal

Witryna Azure Portal przeprowadzi Cię przez proces tworzenia manifestu wdrożenia i wypychania wdrożenia do urządzenia usługi IoT Edge.

Wybierz urządzenie

  1. Zaloguj się do witryny Azure Portal i przejdź do centrum IoT Hub.
  2. Wybierz pozycję Urządzenia w menu Zarządzanie urządzeniami .
  3. Wybierz docelowe urządzenie usługi IoT Edge z listy.
  4. Wybierz pozycję Ustaw moduły.

Konfigurowanie manifestu wdrożenia

Manifest wdrożenia to dokument JSON opisujący moduły do wdrożenia, sposób przepływu danych między modułami i żądane właściwości bliźniaczych reprezentacji modułu. Witryna Azure Portal zawiera kreatora, który przeprowadzi Cię przez proces tworzenia manifestu wdrożenia. Zawiera trzy kroki podzielone na karty: Moduły, Trasy i Przeglądanie + tworzenie.

Dodaj moduły

  1. W sekcji Moduły usługi IoT Edge na stronie wybierz listę rozwijaną Dodaj i wybierz pozycję Moduł usługi IoT Edge, aby wyświetlić stronę Dodawanie modułu usługi IoT Edge.

  2. Na karcie Ustawienia podaj nazwę modułu, a następnie określ identyfikator URI obrazu kontenera:

    • Nazwa modułu usługi IoT Edge: azureblobstorageoniotedge
    • Identyfikator URI obrazu: mcr.microsoft.com/azure-blob-storage:latest

    Zrzut ekranu przedstawiający kartę Ustawienia modułu na stronie Dodawanie modułu usługi IoT Edge. .

    Nie wybieraj pozycji Dodaj , dopóki nie określisz wartości na kartach Ustawienia modułu, Opcje tworzenia kontenera i Ustawienia bliźniaczej reprezentacji modułu zgodnie z opisem w tej procedurze.

    Ważne

    Usługa Azure IoT Edge uwzględnia wielkość liter podczas wykonywania wywołań do modułów, a zestaw SDK usługi Storage również domyślnie ma małe litery. Zmiana nazwy na małe litery pomaga zapewnić, że połączenia z usługą Azure Blob Storage w usłudze IoT Edge nie są przerywane.

  3. Otwórz kartę Opcje tworzenia kontenera.

  4. Skopiuj i wklej następujący kod JSON w polu, aby podać informacje o koncie magazynu i instalację magazynu na urządzeniu.

    {
      "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"}]
        }
      }
    }
    

    Zrzut ekranu przedstawiający kartę Opcje tworzenia kontenera na stronie Dodawanie modułu usługi IoT Edge.

  5. Zaktualizuj kod JSON skopiowany do opcji tworzenia kontenera przy użyciu następujących informacji:

    • Zastąp <local storage account name> ciąg nazwą, którą możesz zapamiętać. Nazwy kont powinny mieć długość od 3 do 24 znaków, z małymi literami i cyframi. Brak spacji.

    • Zastąp <local storage account key> ciąg 64-bajtowym kluczem base64. Klucz można wygenerować za pomocą narzędzi takich jak GeneratePlus. Te poświadczenia służą do uzyskiwania dostępu do magazynu obiektów blob z innych modułów.

    • Zastąp wartość <mount> zgodnie z systemem operacyjnym kontenera. Podaj nazwę woluminu lub ścieżkę bezwzględną do istniejącego katalogu na urządzeniu usługi IoT Edge, na którym moduł obiektów blob przechowuje dane. Instalacja magazynu mapuje lokalizację na urządzeniu, która jest dostarczana do ustawionej lokalizacji w module.

    W przypadku kontenerów systemu Linux format to <ścieżka magazynu lub wolumin>:/blobroot. Na przykład:

    Ważne

    • Nie zmieniaj drugiej połowy wartości instalacji magazynu, która wskazuje konkretną lokalizację w module usługi Blob Storage w usłudze IoT Edge. Instalacja magazynu musi zawsze kończyć się ciągiem :/blobroot dla kontenerów systemu Linux.

    • Usługa IoT Edge nie usuwa woluminów dołączonych do kontenerów modułów. Takie zachowanie jest celowe, ponieważ umożliwia utrwalanie danych między wystąpieniami kontenerów, na przykład w scenariuszach uaktualniania. Jeśli jednak te woluminy pozostają nieużywane, może to prowadzić do wyczerpania miejsca na dysku, a następnie błędów systemu. Jeśli w twoim scenariuszu używasz woluminów platformy Docker, zachęcamy do używania narzędzi platformy Docker, takich jak narzędzie docker volume prune i docker volume rm w celu usunięcia nieużywanych woluminów, szczególnie w przypadku scenariuszy produkcyjnych.

  6. Na karcie Ustawienia bliźniaczej reprezentacji modułu skopiuj następujący kod JSON i wklej go w polu .

    {
      "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. Skonfiguruj każdą właściwość z odpowiednią wartością, zgodnie z symbolami zastępczymi. Jeśli używasz symulatora usługi IoT Edge, ustaw wartości powiązanych zmiennych środowiskowych dla tych właściwości zgodnie z opisem w temacie deviceToCloudUploadProperties i deviceAutoDeleteProperties.

    Napiwek

    Nazwa target kontenera ma ograniczenia nazewnictwa, na przykład użycie prefiksu $ jest nieobsługiwane. Aby wyświetlić wszystkie ograniczenia, wyświetl nazwy kontenerów.

    Uwaga

    Jeśli obiekt docelowy kontenera jest nienazwany lub ma wartość null w obrębie storageContainersForUploadobiektu docelowego, domyślna nazwa zostanie przypisana do obiektu docelowego. Jeśli chcesz zatrzymać przekazywanie do kontenera, należy go całkowicie usunąć z storageContainersForUploadprogramu . Aby uzyskać więcej informacji, zobacz sekcję deviceToCloudUploadProperties Przechowywanie danych na urządzeniach brzegowych za pomocą usługi Azure Blob Storage w usłudze IoT Edge.

    Zrzut ekranu przedstawiający kartę Ustawienia bliźniaczej reprezentacji modułu na stronie Dodawanie modułu usługi IoT Edge.

    Aby uzyskać informacje na temat konfigurowania właściwości deviceToCloudUploadProperties i deviceAutoDeleteProperties po wdrożeniu modułu, zobacz Edytowanie bliźniaczej reprezentacji modułu. Aby uzyskać więcej informacji na temat żądanych właściwości, zobacz Definiowanie lub aktualizowanie żądanych właściwości.

  8. Wybierz Dodaj.

  9. Wybierz pozycję Dalej: Trasy , aby przejść do sekcji tras.

Określanie tras

Zachowaj trasy domyślne i wybierz pozycję Dalej: Przejrzyj i utwórz , aby przejść do sekcji przeglądu.

Przegląd wdrożenia

W sekcji przeglądu przedstawiono manifest wdrożenia JSON, który został utworzony na podstawie wybranych opcji w poprzednich dwóch sekcjach. Istnieją również dwa moduły zadeklarowane, że nie zostały dodane: $edgeAgent i $edgeHub. Te dwa moduły tworzą środowisko uruchomieniowe usługi IoT Edge i są wymagane domyślnie w każdym wdrożeniu.

Przejrzyj informacje o wdrożeniu, a następnie wybierz pozycję Utwórz.

Weryfikowanie wdrożenia

Po utworzeniu wdrożenia wróć do strony Urządzenia centrum IoT Hub.

  1. Wybierz urządzenie usługi IoT Edge przeznaczone do wdrożenia, aby otworzyć jego szczegóły.
  2. W szczegółach urządzenia sprawdź, czy moduł magazynu obiektów blob jest wyświetlany jako określony we wdrożeniu i Zgłoszony przez urządzenie.

Uruchomienie modułu na urządzeniu może potrwać kilka minut, a następnie zgłoszenie z powrotem do usługi IoT Hub. Odśwież stronę, aby wyświetlić zaktualizowany stan.

Wdrażanie z programu Visual Studio Code

Usługa Azure IoT Edge udostępnia szablony w programie Visual Studio Code, które ułatwiają opracowywanie rozwiązań brzegowych. Wykonaj poniższe kroki, aby utworzyć nowe rozwiązanie usługi IoT Edge z modułem magazynu obiektów blob i skonfigurować manifest wdrożenia.

Ważne

Rozszerzenie programu Visual Studio Code usługi Azure IoT Edge jest w trybie konserwacji.

  1. Wybierz pozycję Wyświetl>paletę poleceń.

  2. W palecie poleceń wprowadź i uruchom polecenie Azure IoT Edge: nowe rozwiązanie usługi IoT Edge.

    Zrzut ekranu przedstawiający sposób uruchamiania nowego rozwiązania usługi IoT Edge.

    Postępuj zgodnie z monitami wyświetlanymi na palecie poleceń, aby utworzyć rozwiązanie.

    Pole Wartość
    Wybierz folder Wybierz lokalizację na komputerze deweloperskim dla programu Visual Studio Code, aby utworzyć pliki rozwiązania.
    Podaj nazwę rozwiązania Wprowadź opisową nazwę rozwiązania lub zaakceptuj nazwę domyślną EdgeSolution.
    Wybierz szablon modułu Wybierz pozycję Istniejący moduł (wprowadź pełny adres URL obrazu).
    Podaj nazwę modułu Wprowadź nazwę all-lowercase dla modułu, taką jak azureblobstorageoniotedge.

    Ważne jest, aby użyć małej nazwy dla modułu usługi Azure Blob Storage w usłudze IoT Edge. Usługa IoT Edge uwzględnia wielkość liter podczas odwoływania się do modułów, a zestaw SDK usługi Storage domyślnie ma małe litery.
    Udostępnianie obrazu platformy Docker dla modułu Podaj identyfikator URI obrazu: mcr.microsoft.com/azure-blob-storage:latest

    Program Visual Studio Code pobiera podane informacje, tworzy rozwiązanie usługi IoT Edge, a następnie ładuje je w nowym oknie. Szablon rozwiązania tworzy szablon manifestu wdrożenia, który zawiera obraz modułu usługi Blob Storage, ale należy skonfigurować opcje tworzenia modułu.

  3. Otwórz deployment.template.json w nowym obszarze roboczym rozwiązania i znajdź sekcję modułów . Wprowadź następujące zmiany konfiguracji:

    1. Skopiuj i wklej następujący kod w createOptions polu dla modułu usługi Blob Storage:

      
      ```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"}]
        }
      }
      

      Zrzut ekranu przedstawiający sposób aktualizowania modułu createOptions w programie Visual Studio Code.

  4. Zastąp <local storage account name> ciąg nazwą, którą możesz zapamiętać. Nazwy kont powinny mieć długość od 3 do 24 znaków, z małymi literami i cyframi. Brak spacji.

  5. Zastąp <local storage account key> ciąg 64-bajtowym kluczem base64. Klucz można wygenerować za pomocą narzędzi takich jak GeneratePlus. Te poświadczenia służą do uzyskiwania dostępu do magazynu obiektów blob z innych modułów.

  6. Zastąp wartość <mount> zgodnie z systemem operacyjnym kontenera. Podaj nazwę woluminu lub ścieżkę bezwzględną do katalogu na urządzeniu usługi IoT Edge, w którym moduł obiektów blob ma przechowywać dane. Instalacja magazynu mapuje lokalizację na urządzeniu, która jest dostarczana do ustawionej lokalizacji w module.

    W przypadku kontenerów systemu Linux format to <ścieżka magazynu lub wolumin>:/blobroot. Na przykład:

    Ważne

    • Nie zmieniaj drugiej połowy wartości instalacji magazynu, która wskazuje konkretną lokalizację w module usługi Blob Storage w usłudze IoT Edge. Instalacja magazynu musi zawsze kończyć się ciągiem :/blobroot dla kontenerów systemu Linux.

    • Usługa IoT Edge nie usuwa woluminów dołączonych do kontenerów modułów. Takie zachowanie jest celowe, ponieważ umożliwia utrwalanie danych między wystąpieniami kontenerów, na przykład w scenariuszach uaktualniania. Jeśli jednak te woluminy pozostają nieużywane, może to prowadzić do wyczerpania miejsca na dysku, a następnie błędów systemu. Jeśli w twoim scenariuszu używasz woluminów platformy Docker, zachęcamy do używania narzędzi platformy Docker, takich jak narzędzie docker volume prune i docker volume rm w celu usunięcia nieużywanych woluminów, szczególnie w przypadku scenariuszy produkcyjnych.

  7. Skonfiguruj właściwość deviceToCloudUploadProperties i deviceAutoDeleteProperties dla modułu , dodając następujący kod JSON do pliku deployment.template.json . Skonfiguruj każdą właściwość z odpowiednią wartością i zapisz plik. Jeśli używasz symulatora usługi IoT Edge, ustaw wartości powiązanych zmiennych środowiskowych dla tych właściwości, które można znaleźć w sekcji wyjaśnienia właściwości deviceToCloudUploadProperties i 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>
        }
      }
    }
    

    Zrzut ekranu przedstawiający sposób ustawiania żądanych właściwości dla elementu azureblobstorageoniotedge w programie Visual Studio Code.

    Aby uzyskać informacje na temat konfigurowania właściwości deviceToCloudUploadProperties i deviceAutoDeleteProperties po wdrożeniu modułu, zobacz Edytowanie bliźniaczej reprezentacji modułu. Aby uzyskać więcej informacji na temat opcji tworzenia kontenera, ponownego uruchamiania zasad i żądanego stanu, zobacz EdgeAgent żądane właściwości.

  8. Zapisz plik deployment.template.json.

  9. Kliknij prawym przyciskiem myszy deployment.template.json i wybierz pozycję Generuj manifest wdrożenia usługi IoT Edge.

  10. Program Visual Studio Code pobiera informacje podane w deployment.template.json i używa go do utworzenia nowego pliku manifestu wdrożenia. Manifest wdrożenia jest tworzony w nowym folderze konfiguracji w obszarze roboczym rozwiązania. Po utworzeniu tego pliku możesz wykonać kroki opisane w artykule Wdrażanie modułów usługi Azure IoT Edge przy użyciu interfejsu wiersza polecenia platformy Azure 2.0.

Wdrażanie wielu wystąpień modułów

Jeśli chcesz wdrożyć wiele wystąpień modułu usługi Azure Blob Storage w usłudze IoT Edge, musisz podać inną ścieżkę magazynu i zmienić HostPort wartość powiązaną z modułem. Moduły magazynu obiektów blob zawsze uwidaczniają port 11002 w kontenerze, ale można zadeklarować, z którym portem jest powiązany na hoście.

Edytuj opcje tworzenia kontenera (w witrynie Azure Portal) lub pole createOptions (w pliku deployment.template.json w programie Visual Studio Code), aby zmienić HostPort wartość:

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

Po nawiązaniu połączenia z dodatkowymi modułami magazynu obiektów blob zmień punkt końcowy tak, aby wskazywał zaktualizowany port hosta.

Konfigurowanie obsługi serwera proxy

Jeśli twoja organizacja korzysta z serwera proxy, musisz skonfigurować obsługę serwera proxy dla modułów środowiska uruchomieniowego edgeAgent i edgeHub. Ten proces obejmuje dwa zadania:

  • Skonfiguruj demony środowiska uruchomieniowego i agenta usługi IoT Edge na urządzeniu.
  • Ustaw zmienną środowiskową HTTPS_PROXY dla modułów w pliku JSON manifestu wdrożenia.

Ten proces opisano w temacie Konfigurowanie urządzenia usługi IoT Edge w celu komunikowania się za pośrednictwem serwera proxy.

Ponadto moduł magazynu obiektów blob wymaga również ustawienia HTTPS_PROXY w pliku wdrożenia manifestu. Możesz bezpośrednio edytować plik manifestu wdrożenia lub użyć witryny Azure Portal.

  1. Przejdź do centrum IoT Hub w witrynie Azure Portal i wybierz pozycję Urządzenia w menu Zarządzanie urządzeniami

  2. Wybierz urządzenie z modułem do skonfigurowania.

  3. Wybierz pozycję Ustaw moduły.

  4. W sekcji Moduły usługi IoT Edge na stronie wybierz moduł magazynu obiektów blob.

  5. Na stronie Aktualizowanie modułu usługi IoT Edge wybierz kartę Zmienne środowiskowe.

  6. Dodaj HTTPS_PROXY nazwę i adres URL serwera proxy dla wartości.

    Zrzut ekranu przedstawiający okienko Aktualizowanie modułu usługi IoT Edge, w którym można wprowadzić określone wartości.

  7. Wybierz pozycję Aktualizuj, a następnie przejrzyj i utwórz.

  8. Zobacz, jak serwer proxy jest dodawany do modułu w manifeście wdrożenia, a następnie wybierz pozycję Utwórz.

  9. Sprawdź ustawienie, wybierając moduł ze strony szczegółów urządzenia, a w dolnej części strony Szczegóły modułów usługi IoT Edge wybierz kartę Zmienne środowiskowe.

    Zrzut ekranu przedstawiający kartę Zmienne środowiskowe.

Następne kroki

Dowiedz się więcej o usłudze Azure Blob Storage w usłudze IoT Edge.

Aby uzyskać więcej informacji na temat sposobu działania manifestów wdrażania i sposobu ich tworzenia, zobacz Opis sposobu używania, konfigurowania i ponownego używania modułów usługi IoT Edge.