Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
IoT Edge 1,5
Wichtig
IoT Edge 1.5 LTS ist die unterstützte Version. IoT Edge 1.4 LTS erreichte am 12. November 2024 das Ende des Lebens. Wenn Sie eine frühere Version verwenden, lesen Sie Update IoT Edge.
Mithilfe von automatischen Bereitstellungen und mehrstufiger Bereitstellung können Sie Module auf einer großen Anzahl von IoT Edge-Geräten verwalten und konfigurieren.
Azure IoT Edge bietet zwei Möglichkeiten, die Module so zu konfigurieren, dass sie auf IoT Edge Geräten ausgeführt werden. Die erste Methode ist die Bereitstellung von Modulen pro Gerät. Sie erstellen ein Bereitstellungsmanifest und wenden es dann auf ein bestimmtes Gerät nach Name an. Die zweite Methode ist die automatische Bereitstellung auf einem beliebigen registrierten Gerät, das eine Reihe von definierten Bedingungen erfüllt. Sie erstellen ein Bereitstellungsmanifest und definieren dann, auf welche Geräte es angewendet werden soll, basierend auf Tags im Gerätezwilling.
Sie können keine gerätespezifischen und automatischen Bereitstellungen kombinieren. Sobald Sie mit der Ausrichtung auf IoT Edge Geräte mit automatischen Bereitstellungen (mit oder ohne mehrschichtige Bereitstellungen) beginnen, werden bereitstellungen pro Gerät nicht mehr unterstützt.
Dieser Artikel konzentriert sich auf die Konfiguration und Überwachung von Geräteflotten, die gemeinsam als IoT Edge automatische Bereitstellungen bezeichnet werden.
Die grundlegenden Schritte zur Bereitstellung lauten wie folgt:
- Ein Bediener definiert ein Bereitstellungsmanifest, in dem ein Satz von Modulen und die Zielgeräte beschrieben werden.
- Daher kommuniziert der IoT Hub-Dienst mit allen zielbezogenen Geräten, um sie mit den deklarierten Modulen zu konfigurieren.
- Der IoT Hub-Dienst ruft den Status von den IoT Edge-Geräten ab und stellt sie dem Operator zur Verfügung. Beispielsweise kann ein Bediener sehen, wenn ein Edge-Gerät nicht erfolgreich konfiguriert wurde oder wenn bei einem Modul während der Laufzeit ein Fehler auftritt.
- Jederzeit, wenn neu anvisierte IoT Edge Geräte online gehen und sich mit dem IoT Hub verbinden, werden sie für die Bereitstellung konfiguriert.
In diesem Artikel werden die einzelnen Komponenten beschrieben, die beim Konfigurieren und Überwachen einer Bereitstellung verwendet werden. Eine exemplarische Vorgehensweise zum Erstellen und Aktualisieren einer Bereitstellung finden Sie unter IoT Edge-Module in großem Umfang mit dem Azure-Portal bereitstellen.
Bereitstellung
Bei einer automatischen IoT Edge-Bereitstellung werden IoT Edge-Modulimages zugewiesen, die als Instanzen auf einem bestimmten Satz von IoT Edge-Geräten ausgeführt werden. Die automatisierte Bereitstellung konfiguriert ein IoT Edge Bereitstellungsmanifest, um eine Liste von Modulen mit den entsprechenden Initialisierungsparametern einzuschließen. Eine Bereitstellung kann einem einzelnen Gerät (basierend auf der Geräte-ID) oder einer Gruppe von Geräten (basierend auf Tags) zugewiesen werden. Sobald ein IoT Edge Gerät ein Bereitstellungsmanifest empfängt, lädt es die Containerimages aus den jeweiligen Containerrepositorys herunter und installiert sie entsprechend. Sobald eine Bereitstellung erstellt wurde, kann der Operator den Bereitstellungsstatus überwachen und so erkennen, ob die Zielgeräte ordnungsgemäß konfiguriert wurden.
Nur IoT Edge-Geräte können mit einer Bereitstellung konfiguriert werden. Auf dem Gerät muss Folgendes vorhanden sein, um die Bereitstellung zu ermöglichen:
- Das Basisbetriebssystem
- Ein Containerverwaltungssystem (beispielsweise Moby oder Docker)
- Bereitstellung des IoT Edge Runtime
Bereitstellungsmanifest
Ein Bereitstellungsmanifest ist ein JSON-Dokument, das die Module beschreibt, die auf den zielbezogenen IoT Edge-Geräten konfiguriert werden sollen. Sie enthält die Konfigurationsmetadaten für alle Module, einschließlich der erforderlichen Systemmodule (insbesondere des IoT Edge-Agents und IoT Edge Hub).
Die Konfigurationsmetadaten für jedes Modul enthalten Folgendes:
- Version
- Typ
- Status (z. B. Wird ausgeführt oder beendet)
- Neustartrichtlinie
- Image- und Containerregistrierung
- Routen für Dateneingabe und -ausgabe
Wenn das Modulimage in einer privaten Containerregistrierung gespeichert ist, enthält der IoT Edge-Agent die Registrierungsanmeldeinformationen.
Zielbedingung
Der Zustand des Zielgeräts wird während des Lebenszyklus der Bereitstellung kontinuierlich ausgewertet. Alle neuen Geräte, die die Anforderungen erfüllen, sind enthalten, und alle vorhandenen Geräte, die die Anforderungen nicht mehr erfüllen, werden entfernt. Die Bereitstellung wird reaktiviert, wenn der Dienst Änderungen am Zielzustand feststellt.
Beispielsweise verfügen Sie über eine Bereitstellung mit einer Zielbedingung tags.environment = 'prod'. Wenn Sie die Bereitstellung starten, sind 10 Produktionsgeräte vorhanden. Die Module werden erfolgreich auf diesen 10 Geräten installiert. Der Agentstatus IoT Edge zeigt insgesamt 10 Geräte, 10 erfolgreiche Antworten, 0 Fehlerantworten und 0 ausstehende Antworten an. Jetzt fügen Sie fünf weitere Geräte mit tags.environment = 'prod'. Der Dienst erkennt die Änderung und der IoT Edge Agentstatus zeigt jetzt 15 Gesamtgeräte, 10 erfolgreiche Antworten, 0 Fehlerantworten und 5 ausstehende Antworten an, während er auf den fünf neuen Geräten bereitgestellt wird.
Wenn eine Bereitstellung keine Zielbedingung hat, wird sie auf keine Geräte angewendet.
Verwenden Sie eine beliebige boolesche Bedingung bei Gerätezwillingstags, vom Gerätezwilling gemeldeten Eigenschaften oder für „deviceId“, um die Zielgeräte auszuwählen. Wenn Sie eine Bedingung mit Tags verwenden möchten, müssen Sie einen "tags":{} Abschnitt im Geräte-Twin unter der gleichen Ebene wie Eigenschaften hinzufügen. Weitere Informationen zu Gerätezwillingen und Tags finden Sie unter Verstehen und Verwenden von Gerätezwillingen in IoT Hub. Weitere Informationen zu Abfragevorgängen finden Sie unter IoT Hub Abfragesprachenoperatoren und IS_DEFINED Funktion.
Beispiele für Zielbedingungen:
- deviceId ='linuxprod1'
- tags.environment ='prod'
- tags.environment = 'prod' AND tags.location = 'westus'
- tags.environment = 'prod' OR tags.location = 'westus'
- tags.operator = 'John' UND tags.environment = 'prod' UND NICHT deviceId = 'linuxprod1'
- properties.reported.devicemodel = '4000x'
- IS_DEFINED(tags.remote)
- NOT IS_DEFINED(tags.location.building)
- tags.environment != null
- [none]
Beachten Sie diese Einschränkungen, wenn Sie eine Zielbedingung erstellen:
- Sie können im Gerätezwilling eine Zielbedingung nur mithilfe von Tags, gemeldeten Eigenschaften oder von „deviceId“ erstellen.
- Doppelte Anführungszeichen sind in keinem Teil der Zielbedingung zulässig. Verwenden Sie einfache Anführungszeichen.
- Einfache Anführungszeichen repräsentieren die Werte der Zielbedingung. Daher müssen Sie für ein einfaches Anführungszeichen ein weiteres einfaches Anführungszeichen als Escapezeichen verwenden, wenn es Teil des Gerätenamens ist. Um beispielsweise ein Gerät mit dem Namen
operator'sDeviceals Ziel festzulegen, schreiben SiedeviceId='operator''sDevice'. - Zahlen, Buchstaben und die folgenden Zeichen sind in Zielbedingungswerten zulässig:
"()<>@,;:\\"/?={} \t\n\r - Die folgenden Zeichen sind in Zielbedingungsschlüsseln nicht zulässig:
/;.
Priorität
Eine Priorität definiert, ob eine Bereitstellung auf einem Zielgerät im Vergleich zu anderen Bereitstellungen angewendet werden soll. Eine Bereitstellungspriorität ist eine positive ganze Zahl innerhalb des Bereichs von 0 bis 2.147.483.647. Größere Zahlen geben eine höhere Priorität an. Wenn mehrere Bereitstellungen auf ein IoT Edge Gerät ausgerichtet sind, gilt die Bereitstellung mit der höchsten Priorität. Bereitstellungen mit niedrigeren Prioritäten werden weder angewendet noch zusammengeführt. Wenn ein Gerät Ziel von mehreren Bereitstellungen mit gleicher Priorität ist, gilt die zuletzt erstellte Bereitstellung (entsprechend dem Erstellungszeitstempel).
Bezeichnungen
Labels sind Schlüssel-Wert-Paare, die Sie verwenden können, um Bereitstellungen zu filtern und zu gruppieren. Eine Bereitstellung kann mehrere Bezeichnungen aufweisen. Bezeichnungen sind optional und wirken sich nicht auf die Konfiguration von IoT Edge Geräten aus.
Metriken
Alle Bereitstellungen melden standardmäßig vier Metriken.
- Targeted zeigt die IoT Edge Geräte an, die der Bedingung für die Bereitstellungsadressierung entsprechen.
- Applied zeigt die gezielten IoT Edge Geräte an, die nicht auf eine andere Bereitstellung mit höherer Priorität ausgerichtet sind.
- Reporting Success zeigt die IoT Edge Geräte an, die ihre Module als erfolgreich bereitgestellt melden.
- Reporting Failure zeigt die IoT Edge Geräte an, die mindestens ein Modul als erfolglos bereitgestellt melden. Stellen Sie zum weiteren Untersuchen des Fehlers eine Remoteverbindung mit diesen Geräten her, und zeigen Sie die Protokolldateien an.
Darüber hinaus können Sie Ihre eigenen benutzerdefinierten Metriken zum Überwachen und Verwalten der Bereitstellung definieren.
Metriken stellen eine Zusammenfassung der verschiedenen Zustände bereit, die Geräte aufgrund der Anwendung einer Bereitstellungskonfiguration melden können. Metriken können die gemeldeten Eigenschaften des EdgeHub-Modul-Zwillings abfragen, z. B. lastDesiredStatus oder lastConnectTime.
Zum Beispiel:
SELECT deviceId FROM devices
WHERE properties.reported.lastDesiredStatus.code = 200
Das Hinzufügen eigener Metriken ist optional und wirkt sich nicht auf die tatsächliche Konfiguration von IoT Edge Geräten aus.
Mehrstufige Bereitstellung
Bei mehrstufigen Bereitstellungen handelt es sich um automatische Bereitstellungen, die kombiniert werden können, um die Anzahl der eindeutigen Bereitstellungen, die erstellt werden müssen, zu verringern. Mehrstufige Bereitstellungen sind in Szenarien nützlich, in denen dieselben Module in vielen automatischen Bereitstellungen in verschiedenen Kombinationen wiederverwendet werden.
Mehrstufige Bereitstellungen bestehen aus denselben Grundkomponenten wie jede automatische Bereitstellung. Sie richten sich an Geräte, die auf Tags in den Gerätezwillingen basieren, und bieten dieselbe Funktionalität wie Bezeichnungen, Metriken und Statusberichte. Auch mehrstufigen Bereitstellungen werden Prioritäten zugewiesen. Statt anhand der Priorität zu bestimmen, welche Bereitstellung auf ein Gerät angewendet wird, bestimmt die Priorität, wie mehrere Bereitstellungen auf einem Gerät eingestuft werden. Wenn beispielsweise zwei ebenenbasierte Bereitstellungen ein Modul oder eine Route mit demselben Namen haben, wird die mehrstufige Bereitstellung mit der höheren Priorität angewendet, während die niedrigere Priorität überschrieben wird.
Die Systemlaufzeitmodule, die als edgeAgent und EdgeHub bezeichnet werden, werden nicht als Teil einer mehrschichtigen Bereitstellung konfiguriert. Auf IoT Edge-Geräte, die Ziel für eine mehrstufige Bereitstellung sind, muss zunächst eine automatische Standardbereitstellung angewendet werden. Bei der automatischen Bereitstellung wird die Basis bereitgestellt, auf der mehrstufige Bereitstellungen hinzugefügt werden können.
Ein IoT Edge Gerät kann eine und nur eine standardmäßige automatische Bereitstellung anwenden, aber es können mehrere mehrstufige automatische Bereitstellungen angewendet werden. Alle mehrstufigen Bereitstellungen, deren Ziel ein Gerät ist, müssen eine höhere Priorität als die automatische Bereitstellung für dieses Gerät haben.
Sehen Sie sich beispielsweise das folgende Szenario eines Unternehmens an, das Gebäude verwaltet. Das Unternehmen entwickelte IoT Edge Module zum Sammeln von Daten aus Sicherheitskameras, Bewegungssensoren und Aufzügen. Allerdings können nicht in allen Gebäuden alle drei Module verwendet werden. Bei automatischen Standardbereitstellungen muss das Unternehmen individuelle Bereitstellungen für alle Modulkombinationen erstellen, die von den jeweiligen Gebäuden benötigt werden.
Sobald das Unternehmen jedoch zu mehrstufigen automatischen Bereitstellungen wechselt, können diese dieselben Modulkombinationen für die Gebäude mit weniger Bereitstellungen erstellen, die verwaltet werden können. Jedes Modul verfügt über eine eigene mehrstufige Bereitstellung, und die Gerätetags identifizieren, welche Module dem einzelnen Gebäude hinzugefügt werden.
Konfiguration von Modulzwillingen
Wenn Sie mit mehrschichtigen Bereitstellungen arbeiten, verfügen Sie möglicherweise absichtlich oder anderweitig über zwei Bereitstellungen mit demselben Modul für ein Gerät. In diesen Fällen können Sie entscheiden, ob die Bereitstellung mit höherer Priorität den Modulzwilling überschreiben oder daran angefügt werden soll. Sie können beispielsweise über eine Bereitstellung verfügen, die dasselbe Modul auf 100 verschiedene Geräte anwendet. 10 dieser Geräte befinden sich jedoch in sicheren Einrichtungen und benötigen zusätzliche Konfiguration, um über Proxyserver zu kommunizieren. Mithilfe einer mehrstufigen Bereitstellung können Sie Eigenschaften für Modulzwillinge hinzufügen, die diesen 10 Geräten eine sichere Kommunikation ermöglichen, ohne dass dadurch die vorhandenen Modulzwillingsinformationen aus der Basisbereitstellung überschrieben werden.
Sie können gewünschte Eigenschaften des Modul-Zwillings im Bereitstellungsmanifest anhängen. In einer Standardbereitstellung würden Sie Eigenschaften im Abschnitt properties.desired des Modulzwillings hinzufügen. In einer mehrstufigen Bereitstellung können Sie jedoch eine neue Teilmenge der gewünschten Eigenschaften deklarieren.
So könnten Sie in einer Standardbereitstellung beispielsweise das simulierte Temperatursensor-Modul mit den folgenden gewünschten Eigenschaften hinzufügen, die es anweisen, Daten in Intervallen von 5 Sekunden zu senden:
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 5
}
}
In einer mehrschichtigen Bereitstellung, die auf einige oder alle diese Geräte ausgerichtet ist, könnten Sie eine Eigenschaft hinzufügen, die dem simulierten Sensor angibt, 1.000 Nachrichten zu senden und dann zu beenden. Sie möchten die vorhandenen Eigenschaften nicht überschreiben, daher erstellen Sie einen neuen Abschnitt innerhalb der gewünschten Eigenschaften layeredProperties, die die neue Eigenschaft enthält:
"SimulatedTemperatureSensor": {
"properties.desired.layeredProperties": {
"StopAfterCount": 1000
}
}
Ein Gerät, auf das beide Bereitstellungen angewendet werden, zeigt im Modulzwilling für den simulierten Temperatursensor folgende Eigenschaften an:
"properties": {
"desired": {
"SendData": true,
"SendInterval": 5,
"layeredProperties": {
"StopAfterCount": 1000
}
}
}
Wenn Sie das Feld properties.desired des Modulzwillings in einer mehrstufigen Bereitstellung festlegen, überschreibt properties.desired die gewünschten Eigenschaften für dieses Modul in Bereitstellungen mit niedrigerer Priorität.
Schrittweises Rollout
Bei einem phasenweisen Rollout handelt es sich um einen allgemeinen Prozess, bei dem ein Operator Änderungen an einem erweiterten Satz von IoT Edge Geräten bereitstellt. Hierbei werden Änderungen nach und nach vorgenommen, um das Risiko durch umfangreiche wichtige Änderungen zu reduzieren. Automatische Bereitstellungen unterstützen die Verwaltung von stufenweisen Rollouts in einer Gruppe von IoT Edge-Geräten.
Ein schrittweises Rollout wird in den folgenden Phasen und Schritten ausgeführt:
- Richten Sie eine Testumgebung von IoT Edge Geräten ein, indem Sie sie bereitstellen und ein Geräte-Twin-Tag wie
tag.environment='test'festlegen. Die Testumgebung sollte die Produktionsumgebung spiegeln, auf die die Bereitstellung letztendlich ausgerichtet ist. - Erstellen Sie eine Bereitstellung, einschließlich der gewünschten Module und Konfigurationen. Die Zielbedingung sollte auf die Testumgebung für das IoT Edge-Gerät abzielen.
- Überprüfen Sie die neue Modulkonfiguration in der Testumgebung.
- Aktualisieren Sie die Bereitstellung mit einer Teilmenge der IoT Edge-Produktionsgeräte, indem Sie der Zielbedingung ein neues Tag hinzufügen. Stellen Sie außerdem sicher, dass die Priorität für die Bereitstellung höher ist als bei anderen Bereitstellungen, die zurzeit für diese Geräte vorgesehen sind.
- Überprüfen Sie, ob die Bereitstellung auf den zielbezogenen IoT Edge Geräten erfolgreich war, indem Sie den Bereitstellungsstatus anzeigen.
- Aktualisieren Sie die Bereitstellung so, dass sie auf alle verbleibenden IoT Edge-Produktionsgeräte abzielt.
Rollback
Für Bereitstellungen kann bei Fehlern oder Fehlkonfigurationen ein Rollback ausgeführt werden. Da eine Bereitstellung die absolute Modulkonfiguration für ein IoT Edge Gerät definiert, muss auch eine zusätzliche Bereitstellung auf dasselbe Gerät mit niedrigerer Priorität ausgerichtet werden, auch wenn das Ziel darin besteht, alle Module zu entfernen.
Durch das Löschen einer Bereitstellung werden die Module nicht von den Zielgeräten entfernt. Es muss eine andere Bereitstellung vorhanden sein, die eine neue Konfiguration für die Geräte definiert – selbst wenn es sich um eine leere Bereitstellung handelt.
Das Löschen einer Bereitstellung kann jedoch Module aus dem Zielgerät entfernen, wenn es sich um eine mehrschichtige Bereitstellung handelt. Bei einer mehrstufigen Bereitstellung wird die zugrunde liegende Bereitstellung aktualisiert, und es werden möglicherweise Module hinzugefügt. Durch das Entfernen einer mehrstufigen Bereitstellung wird die Aktualisierung der zugrunde liegenden Bereitstellung entfernt, und es werden möglicherweise Module entfernt.
Ein Gerät verfügt beispielsweise über die Basisbereitstellung A und die mehrstufigen Bereitstellungen O und M (sodass die Bereitstellungen A, O und M auf dem Gerät bereitgestellt werden). Wenn die mehrstufige Bereitstellung M gelöscht wird, werden A und O auf das Gerät angewendet, und die für Bereitstellung M eindeutigen Module werden entfernt.
Führen Sie Rollbacks in der folgenden Reihenfolge aus:
- Vergewissern Sie sich, dass eine zweite Bereitstellung auch auf dasselbe Geräteset abzielt. Wenn das Ziel des Rollbacks darin besteht, alle Module zu entfernen, sollte die zweite Bereitstellung keine Module enthalten.
- Ändern oder entfernen Sie den Ausdruck für die Zielbedingung bei der Bereitstellung, für die ein Rollback ausgeführt werden soll, sodass die Geräte die Zielbedingung nicht mehr erfüllen.
- Stellen Sie sicher, dass das Rollback erfolgreich war, indem Sie den Bereitstellungsstatus anzeigen.
- Die Bereitstellung, für die das Rollback ausgeführt wurde, sollte keinen Status für die Geräte mehr anzeigen, auf die sich das Rollback bezogen hat.
- Diese zweite Bereitstellung sollte den Bereitstellungsstatus für die Geräte enthalten, die zurückgesetzt wurden.
Nächste Schritte
- Gehen Sie die Schritte zum Erstellen, Aktualisieren oder Löschen einer Bereitstellung im großen Maßstab von IoT Edge-Modulen mithilfe des Azure-Portals durch.
- Erfahren Sie mehr über andere IoT Edge Konzepte wie die IoT Edge runtime und IoT Edge Module.