Verwenden von Zuweisungsrichtlinien zum Bereitstellen von Geräten für mehrere IoT-Hubs

Azure IoT Hub Device Provisioning Service (DPS) unterstützt mehrere integrierte Zuweisungsrichtlinien, die steuern, wie Geräte für einen oder mehrere IoT-Hubs zugewiesen werden. DPS unterstützt auch benutzerdefinierte Zuweisungsrichtlinien. Dadurch können Sie eigene Zuweisungsrichtlinien erstellen und verwenden, wenn in Ihrem IoT-Szenario Funktionen benötigt werden, die über die integrierten Richtlinien nicht verfügbar sind.

In diesem Artikel erfahren Sie, wie Sie DPS-Zuweisungsrichtlinien verwenden und verwalten.

Grundlegendes zu Zuweisungsrichtlinien

Zuordnungsrichtlinien bestimmen die Zuordnung von Geräten zu einem IoT-Hub durch DPS. Jede DPS-Instanz verfügt über eine Standardzuordnungsrichtlinie. Diese Richtlinie kann allerdings durch eine für eine Registrierung festgelegte Zuordnungsrichtlinie überschrieben werden. Nur IoT-Hubs, die mit der DPS-Instanz verknüpft sind, können an der Zuweisung beteiligt sein. Ob ein verknüpfter IoT-Hub in die Zuweisung einbezogen wird, hängt von den Einstellungen für die Registrierung ab, über die ein Gerät bereitgestellt wird.

DPS unterstützt vier Zuweisungsrichtlinien:

  • Gleichmäßig gewichtete Verteilung: Geräte werden unter Verwendung eines gewichteten Hashs für einen IoT-Hub bereitgestellt. Standardmäßig verfügen verknüpfte IoT-Hubs über die gleiche Zuordnungsgewichtung. Dadurch ist die Wahrscheinlichkeit, dass Geräte für sie bereitgestellt werden, jeweils gleich. Die Zuordnungsgewichtung eines IoT-Hubs kann angepasst werden, um die Zuweisungswahrscheinlichkeit für den Hub zu erhöhen oder zu verringern. Gleichmäßig gewichtete Verteilung: Dies ist die Standardzuweisungsrichtlinie für eine DPS-Instanz. Wenn Sie Geräte nur für einen einzelnen IoT-Hub bereitstellen, sollten Sie diese Richtlinie verwenden.

  • Kürzeste Wartezeit: Geräte werden für den IoT-Hub mit der kürzesten Wartezeit für das Gerät bereitgestellt. Wenn mehrere IoT-Hubs die kürzeste Wartezeit bieten, verteilt DPS Geräte auf der Grundlage ihrer konfigurierten Zuweisungsgewichtung auf diese Hubs.

  • Statische Konfiguration: Geräte werden für einen einzelnen IoT-Hub bereitgestellt. Dieser muss bei der Registrierung angegeben werden.

  • Benutzerdefiniert (Azure-Funktion verwenden):Eine benutzerdefinierte Zuordnungsrichtlinie bietet Ihnen mehr Kontrolle darüber, wie Geräte einem IoT-Hub zugewiesen werden. Dazu werden Geräte mithilfe eines in Azure Functions gehosteten benutzerdefinierten Webhooks einem IoT-Hub zugewiesen. DPS ruft Ihren Webhook auf und gibt dabei alle relevanten Informationen zum Gerät und zur Registrierung an. Ihr Webhook gibt den IoT-Hub und den anfänglichen Gerätezwilling (optional) zum Bereitstellen des Geräts zurück. Auch benutzerdefinierte Nutzdaten können vom bzw. an das Gerät übergeben werden. Weitere Informationen finden Sie unter Grundlegendes zu benutzerdefinierten Zuweisungsrichtlinien. Kann nicht als Standardrichtlinie der DPS-Instanz festgelegt werden.

Hinweis

Die obige Liste enthält die Namen der Zuweisungsrichtlinien, wie sie im Azure-Portal angezeigt werden. Wenn Sie die Zuweisungsrichtlinie per DPS-REST-API, Azure CLI oder DPS-Dienst-SDKs festlegen, heißen sie wie folgt: hashed, geolatency, static und custom.

Bei einem verknüpften IoT-Hub gibt es zwei Einstellungen, die steuern, wie er in die Zuweisung einbezogen wird:

  • Zuweisungsgewichtung: Legt die Gewichtung des IoT-Hubs bei der Einbeziehung in Zuweisungsrichtlinien mit mehreren IoT-Hubs fest. Der Wert kann zwischen 1 und 1.000 liegen. Der Standardwert ist „1“ (oder NULL).

    • Bei der Zuweisungsrichtlinie Gleichmäßig gewichtete Verteilung haben IoT-Hubs mit höherer Zuweisungsgewichtung eine höhere Wahrscheinlichkeit, ausgewählt zu werden.

    • Bei der Zuweisungsrichtlinie Kürzeste Wartezeit hat die Zuweisungsgewichtung Einfluss auf die Wahrscheinlichkeit, dass ein IoT-Hub ausgewählt wird, wenn mehrere IoT-Hubs die Anforderung der kürzesten Wartezeit erfüllen.

    • Bei einer Zuweisungsrichtlinie vom Typ Benutzerdefiniert hängt die Verwendung der Zuweisungsgewichtung von der Webhooklogik ab.

  • Zuweisungsrichtlinie anwenden gibt an, ob der IoT-Hub in die Zuweisungsrichtlinie einbezogen wird. Die Standardeinstellung ist Ja (TRUE). Bei Nein (FALSE) werden dem IoT-Hub keine Geräte zugewiesen. Der IoT-Hub kann zwar weiterhin für eine Registrierung ausgewählt werden, er wird jedoch nicht in die Zuweisung einbezogen. Mit dieser Einstellung können Sie einen IoT-Hub vorübergehend oder dauerhaft von der Teilnahme an der Zuweisung ausschließen, beispielsweise, wenn die zulässige Anzahl von Geräten fast erreicht ist.

Weitere Informationen zum Verknüpfen und Verwalten von IoT-Hubs in Ihrer DPS-Instanz finden Sie unter Verknüpfen und Verwalten von IoT-Hubs.

Wenn ein Gerät über DPS bereitgestellt wird, weist der Dienst es gemäß den folgenden Richtlinien einem IoT-Hub zu:

  • Wenn von der Registrierung eine Zuweisungsrichtlinie angegeben wird, wird diese Richtlinie verwendet. Andernfalls wird die Standardzuweisungsrichtlinie für die DPS-Instanz verwendet.

  • Wenn von der Registrierung mindestens ein IoT-Hub angegeben wird, wird die Zuweisungsrichtlinie auf die angegebenen IoT-Hubs angewendet. Andernfalls wird die Zuweisungsrichtlinie auf alle IoT-Hubs angewendet, die mit der DPS-Instanz verknüpft sind. Beachten Sie, dass bei einer Zuweisungsrichtlinie vom Typ Statische Konfiguration von der Registrierung ein IoT-Hub angegeben werden muss.

Wichtig

Wenn Sie eine Zuweisungsrichtlinie oder die IoT-Hubs ändern, für die sie gilt, wirken sich die Änderungen nur auf nachfolgende Geräteregistrierungen aus. Geräte, die bereits für einen IoT-Hub bereitgestellt wurden, bleiben davon unberührt. Wenn Ihre Änderungen auch auf diese Geräte angewendet werden sollen, müssen Sie sie erneut bereitstellen. Weitere Informationen finden Sie unter Erneutes Bereitstellen von Geräten.

Festlegen der Standardzuweisungsrichtlinie für die DPS-Instanz

Die Standardzuweisungsrichtlinie für die DPS-Instanz wird verwendet, wenn für eine Registrierung keine Zuweisungsrichtlinie angegeben wird. Für die Standardzuweisungsrichtlinie werden nur Gleichmäßig gewichtete Verteilung, Kürzeste Wartezeit und Statische Konfiguration unterstützt. Die Zuweisung vom Typ Benutzerdefiniert wird nicht unterstützt. Bei der Erstellung einer DPS-Instanz wird die Standardrichtlinie automatisch auf Gleichmäßig gewichtete Verteilung festgelegt.

Hinweis

Wenn Sie Statische Konfiguration als Standardzuweisungsrichtlinie für eine DPS-Instanz festlegen, muss in Registrierungen, die auf der Standardrichtlinie basieren, ein verknüpfter IoT-Hub angegeben werden.

Festlegen der Standardzuweisungsrichtlinie über das Azure-Portal

So legen Sie die Standardzuweisungsrichtlinie für die DPS-Instanz über das Azure-Portal fest

  1. Wählen Sie im linken Menü Ihrer DPS-Instanz die Option Zuweisungsrichtlinie verwalten aus.

  2. Wählen Sie die Schaltfläche für die Zuweisungsrichtlinie aus, die Sie festlegen möchten: Kürzeste Wartezeit, Gleichmäßig gewichtete Verteilung oder Statische Konfiguration. (Die benutzerdefinierte Zuweisung wird für die Standardzuweisungsrichtlinie nicht unterstützt.)

  3. Wählen Sie Speichern aus.

Festlegen der Standardzuweisungsrichtlinie über die Azure CLI

Verwenden Sie den Azure CLI-Befehl az iot dps update, um die Standardzuweisungsrichtlinie für die DPS-Instanz festzulegen. Verwenden Sie --set properties.allocationPolicy, um die Richtlinie anzugeben. Mit dem folgenden Befehl wird die Zuweisungsrichtlinie beispielsweise auf Gleichmäßig gewichtete Verteilung (die Standardeinstellung) festgelegt:

az iot dps update --name MyExampleDps --set properties.allocationPolicy=hashed

DPS unterstützt auch das Festlegen der Standardzuweisungsrichtlinie mithilfe der REST-API zum Erstellen oder Aktualisieren von DPS-Ressourcen, mithilfe von Resource Manager-Vorlagen und mithilfe der Verwaltungs-SDKs für DPS.

Festlegen der Zuweisungsrichtlinie und der IoT-Hubs für Registrierungen

Einzelne Registrierungen und Registrierungsgruppen können eine Zuweisungsrichtlinie und die verknüpften IoT-Hubs angeben, für die sie gelten soll. Wird von der Registrierung keine Zuweisungsrichtlinie angegeben, wird die Standardzuweisungsrichtlinie für die DPS-Instanz verwendet.

In beiden Fällen gilt Folgendes:

  • Bei Zuweisungsrichtlinien vom Typ Gleichmäßig gewichtete Verteilung, Kürzeste Wartezeit und Benutzerdefiniert kann die Registrierung angeben, welche verknüpften IoT-Hubs verwendet werden sollen. Dies ist allerdings optional. Wenn in der Registrierung keine IoT-Hubs ausgewählt sind, werden alle verknüpften IoT-Hubs in der DPS-Instanz verwendet.

  • Bei Verwendung von Statischer Konfiguration ist die Angabe eines einzelnen IoT-Hubs aus der Liste der verknüpften IoT-Hubs zwingend erforderlich.

Sowohl für einzelne Registrierungen als auch für Registrierungsgruppen können Sie eine Zuweisungsrichtlinie und die verknüpften IoT-Hubs angeben, auf die sie angewendet werden soll, wenn Sie eine Registrierung erstellen oder aktualisieren.

Verwalten der Registrierungszuweisungsrichtlinie und IoT-Hubs über das Azure-Portal

So legen Sie im Azure-Portal die Zuweisungsrichtlinie fest und wählen IoT-Hubs für eine Registrierung aus

  1. Wählen Sie im linken Menü Ihrer DPS-Instanz die Option Registrierungen verwalten aus.

  2. Gehen Sie auf der Seite Registrierungen verwalten wie folgt vor:

    • Um eine neue Registrierung zu erstellen, wählen Sie entweder die Registerkarte "Registrierungsgruppen" oder "Einzelne Registrierungen" und dann "Registrierungsgruppe hinzufügen" oder "Einzelne Registrierung hinzufügen" aus.

    • Wenn Sie eine bereits vorhandene Registrierung aktualisieren möchten, wählen Sie sie entweder auf der Registerkarte Registrierungsgruppen oder auf der Registerkarte Individuelle Registrierungen aus der Liste aus.

  3. Wählen Sie auf der Seite " Registrierung hinzufügen" (beim Erstellen) oder auf der Seite "Registrierungsdetails " (bei Aktualisierung) die Registerkarte "IoT Hubs " aus. Auf dieser Registerkarte können Sie die Zuordnungsrichtlinie auswählen, die Sie auf die Registrierung anwenden möchten, und die IoT-Hubs auswählen, die verwendet werden sollen:

    Screenshot that shows the allocation policy and selected hubs settings on IoT hubs tab.

    1. Wählen Sie die IoT-Hubs aus, denen Geräte aus der Dropdownliste zugewiesen werden können. Wenn Sie die Richtlinie für die statische Konfigurationszuweisung auswählen, sind Sie auf die Auswahl eines einzelnen verknüpften IoT-Hubs beschränkt. Bei allen anderen Zuweisungsrichtlinien werden standardmäßig alle verknüpften IoT-Hubs ausgewählt. Sie können diese Auswahl jedoch mithilfe der Dropdownliste ändern. Wenn die Registrierung verknüpfte IoT-Hubs, die der DPS-Instanz hinzugefügt werden, automatisch verwenden (oder daraus gelöschte IoT-Hubs nicht mehr verwenden) soll, muss die Auswahl aller IoT-Hubs aufgehoben werden.

    2. Optional können Sie die Schaltfläche Neuen IoT-Hub verknüpfen auswählen, um einen neuen IoT-Hub mit der DPS-Instanz zu verknüpfen und ihn in der Liste der zur Auswahl stehenden IoT-Hubs verfügbar zu machen. Ausführliche Informationen zum Verknüpfen eines IoT-Hubs finden Sie unter Verknüpfen eines IoT-Hubs über das Azure-Portal.

    3. Wählen Sie die Zuordnungsrichtlinie aus, die Sie auf die Registrierung anwenden möchten. Standardmäßig ist die Standardzuweisungsrichtlinie für die DPS-Instanz ausgewählt. Für die benutzerdefinierte Zuweisung muss auch ein benutzerdefinierter Zuweisungsrichtlinien-Webhook in Azure Functions angegeben werden. Ausführliche Informationen finden Sie im Tutorial Verwenden von benutzerdefinierten Zuweisungsrichtlinien bei Device Provisioning Service (DPS).

  4. Legen Sie alle anderen Eigenschaften fest, die für die Registrierung erforderlich sind, und speichern Sie dann Ihre Einstellungen.

Verwalten der Registrierungszuweisungsrichtlinie und IoT-Hubs über die Azure CLI

Verwenden Sie die Azure CLI-Befehle az iot dps enrollment create, az iot dps enrollment update, az iot dps enrollment-group create und az iot dps enrollment-group update, um individuelle Registrierungen oder Registrierungsgruppen zu erstellen oder zu aktualisieren.

Mit dem folgenden Befehl wird beispielsweise eine Registrierungsgruppe mit symmetrischem Schlüssel erstellt, die standardmäßig die für die DPS-Instanz festgelegte Standardzuweisungsrichtlinie und alle mit der DPS-Instanz verknüpften IoT-Hubs verwendet:

az iot dps enrollment-group create --dps-name MyExampleDps --enrollment-id MyEnrollmentGroup 

Mit dem folgenden Befehl wird die gleiche Registrierungsgruppe aktualisiert, um die Zuweisungsrichtlinie Kürzeste Wartezeit mit den IoT-Hubs MyExampleHub und MyExampleHub-2 zu verwenden:

az iot dps enrollment-group update --dps-name MyExampleDps --enrollment-id MyEnrollmentGroup --allocation-policy geolatency --iot-hubs "MyExampleHub.azure-devices.net MyExampleHub-2.azure-devices.net"

DPS unterstützt auch das Festlegen von Zuweisungsrichtlinie und ausgewählten IoT-Hubs für die Registrierung mithilfe der REST-APIs zum Erstellen oder Aktualisieren einer individuellen Registrierung und Erstellen oder Aktualisieren einer Registrierungsgruppe sowie mithilfe der DPS-Dienst-SDKs.

Zuweisungsverhalten

Beachten Sie das folgende Verhalten, wenn Sie Zuweisungsrichtlinien mit IoT-Hub verwenden:

  • Mit der Azure CLI, der REST-API und den DPS-Dienst-SDKs können Sie Registrierungen ohne Zuweisungsrichtlinie erstellen. In diesem Fall verwendet DPS die Standardrichtlinie für die DPS-Instanz, wenn ein Gerät über die Registrierung bereitgestellt wird. Wenn Sie die Standardrichtlinieneinstellung für die DPS-Instanz ändern, ändert sich die Gerätebereitstellung über die Registrierung.

  • Im Azure-Portal wird die Zuweisungsrichtlinieneinstellung für die Registrierung vorab mit der Standardzuweisungsrichtlinie aufgefüllt. Sie können diese Einstellung beibehalten oder auf eine andere Richtlinie festlegen. Wenn Sie die Registrierung speichern, wird die Zuweisungsrichtlinie für die Registrierung festgelegt. Spätere Änderungen an der Standardzuweisungsrichtlinie des Diensts haben keine Auswirkung auf die Bereitstellung von Geräten über die Registrierung.

  • Bei den Zuweisungsrichtlinien Gleichmäßig gewichtete Verteilung, Kürzeste Wartezeit und Benutzerdefiniert können Sie die Registrierung so konfigurieren, dass alle IoT-Hubs verwendet werden, die mit der DPS-Instanz verknüpft sind:

    • Erstellen Sie bei Verwendung der Azure CLI oder der DPS-Dienst-SDKs die Registrierung, ohne IoT-Hubs anzugeben.

    • Im Azure-Portal ist die Registrierung bereits mit allen IoT-Hubs aufgefüllt, die mit der ausgewählten DPS-Instanz verknüpft sind. Heben Sie vor dem Speichern der Registrierung die Auswahl aller IoT-Hubs auf.

    Wenn für die Registrierung keine IoT-Hubs ausgewählt sind, werden neue IoT-Hubs, die mit der DPS-Instanz verknüpft werden, in die Zuweisung einbezogen. IoT-Hubs, die aus der DPS-Instanz entfernt werden, werden dagegen nicht mehr in die Zuweisung einbezogen.

  • Wenn IoT-Hubs für eine Registrierung angegeben werden, muss die IoT Hubs-Einstellung für die Registrierung manuell oder programmgesteuert aktualisiert werden, damit ein neu verknüpfter IoT-Hub hinzugefügt oder ein gelöschter IoT-Hub aus der Zuweisung entfernt wird.

  • Das Ändern der Zuweisungsrichtlinie oder der IoT-Hubs, die für eine Registrierung verwendet werden, wirkt sich nur auf nachfolgende Registrierungen über diese Registrierung aus. Wenn sich die Änderungen auf frühere Registrierungen auswirken sollen, müssen alle zuvor registrierten Geräte neu bereitgestellt werden.

Begrenzungen

Bei der Verwendung von Zuweisungsrichtlinien und privaten Endpunkten gelten gewisse Einschränkungen. Weitere Informationen finden Sie unter Einschränkungen privater Endpunkte.

Nächste Schritte