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.
Datenflussdiagramme und der HTTP/REST-Connector verwenden Registrierungsendpunkte, um WebAssembly(WASM)-Module und Graphdefinitionen aus Containerregistrierungen abzurufen. Azure IoT Einsatz ruft alle benutzerdefinierten Connectorvorlagen ab, die Sie aus Containerregistrierungen entwickeln. Sie können die Endpunkteinstellungen, die Authentifizierung und andere Einstellungen konfigurieren, um eine Verbindung mit Azure Container Registry (ACR), Microsoft Containerregistrierung (MCR) oder GitHub Containerregistrierung (ghcr.io) herzustellen.
Von Bedeutung
Derzeit unterstützt die Web-UI für den Betrieb nur das Erstellen und Anzeigen von Datenflussgraph-Artefakten, die aus Azure Container Registry (ACR) und – bei integrierten Transformationen – aus mcr.microsoft.com bezogen werden. Um mehr zu erfahren, siehe Operations Experience WebUI zeigt nur Datenflussgraph-Artefakte, die von Azure Container Registry (ACR) und mcr.microsoft.com stammen.
Voraussetzungen
- Eine Instanz von Azure IoT Einsatz, die in einem Kubernetes-Cluster bereitgestellt wird. Weitere Informationen finden Sie unter Deploy Azure IoT Einsatz.
- Azure IoT Einsatz Version 1.2 oder höher.
- Zugriff auf eine Containerregistrierung, z. B. ACR.
Die Azure CLI-Beispiele in diesem Artikel verwenden Umgebungsvariablen, sodass Sie jeden Wert nur einmal festlegen und die Befehle dann unverändert kopieren und einfügen können. Wenn Sie die Azure IoT Einsatz Codespaces-Umgebung aus dem Quickstart verwenden, sind diese Variablen bereits für Sie festgelegt und Sie können diesen Schritt überspringen. Ansonsten setze die folgenden Umgebungsvariablen in deiner Shell, bevor du die Befehle ausführst.
Die folgenden Skripte legen die am häufigsten verwendeten Umweltvariablen fest:
| Umgebungsvariable | Description |
|---|---|
SUBSCRIPTION_ID |
Die ID des Abonnements, das Ihre Azure IoT Einsatz-Instanz enthält. |
RESOURCE_GROUP |
Der Name der Ressourcengruppe, die Ihre Azure IoT Einsatz-Instanz enthält. |
AIO_INSTANCE_NAME |
Der Name Ihrer Azure IoT Einsatz Instanz. Um Ihre Instanzen aufzulisten, führen Sie az iot ops list -o table aus. |
CLUSTER_NAME |
Der Name des Azure Arc-fähigen Kubernetes-Clusters, der deine Instanz hostet. |
LOCATION |
Die Azure-Region zur Nutzung für neue Ressourcen, zum Beispiel eastus. |
SUBSCRIPTION_ID=<subscription-id>
RESOURCE_GROUP=<resource-group-name>
AIO_INSTANCE_NAME=<instance-name>
CLUSTER_NAME=<cluster-name>
LOCATION=<region>
Du musst nur die Variablen festlegen, die dieser Artikel verwendet. Dieser Artikel könnte zusätzliche Umgebungsvariablen für die von Ihnen gewählten Ressourcennamen verwenden. Der Artikel erklärt, wie man sie dort platziert, wo sie eingeführt werden.
Dieser Artikel verwendet außerdem folgende Umweltvariablen für die von Ihnen gewählten Werte: REGISTRY_ENDPOINT (der Name des Registry-Endpunkts), ACR_NAME (der Name REGISTRY_HOST des Azure Container Registry), (der Registry-Hostname), CLIENT_ID und TENANT_ID (die vom Benutzer zugewiesenen verwalteten Identitätskennungen), REGISTRY_USERNAME sowie REGISTRY_PASSWORD (Registry-Anmeldedaten) und GITHUB_USERNAME sowie GITHUB_PAT (GitHub Container Registry-Anmeldedaten). Stelle jede einzelne ein, bevor du die zugehörigen Befehle ausführst.
Erstellen eines Registrierungsendpunkts
Ein Registrierungsendpunkt definiert die Verbindung mit Ihrer Containerregistrierung. Datenflussdiagramme verwenden Registrierungsendpunkte, um WASM-Module und Diagrammdefinitionen abzurufen. Azure IoT Einsatz verwendet Registrierungsendpunkte, um benutzerdefinierte Connectorvorlagen abzurufen. Nachdem Sie einen Registrierungsendpunkt erstellt haben:
- Sie können alle Diagramme, die Sie in Ihre Containerregistrierung übertragen haben, in der Betriebserfahrung in Datenflussdiagrammen verwenden.
- Sie können alle in Ihre Containerregistrierung übertragenen benutzerdefinierten Connectors in der Betriebserfahrung verwenden, um eingehende Geräteendpunkte zu erstellen.
Wechseln Sie im Azure-Portal zu Ihrer Azure IoT Einsatz-Instanz.
Wählen Sie unter "Komponenten" die Option "Registrierungsendpunkte" aus.
Wählen Sie +Erstellen Sie einen Registrierungsendpunkt.
Geben Sie folgende Einstellungen ein:
Setting Description Name des Registrierungsendpunkts Ein eindeutiger Name für den Registrierungsendpunkt. Hostname Der Hostname der Containerregistrierung. Verwenden Sie für ACR das Format <registry-name>.azurecr.io. Verwenden Siemcr.microsoft.comfür MCR . Ausführliche Informationen zum Hostnamenformat finden Sie unter Host.Authentifizierung Die Authentifizierungsmethode. Wählen Sie aus: Anonym, Artefaktschlüssel, vom System verwaltete Identität oder vom Benutzer verwaltete Identität. Hinweis
Das Azure-Portal akzeptiert derzeit nur Hostnamen im Format
<your-registry-name>.azurecr.ioodermcr.microsoft.com. Wenn Sie andere Registrierungen wie GitHub Containerregistrierung (ghcr.io) oder Docker Hub verwenden möchten, verwenden Sie stattdessen Bicep oder die Azure CLI, um den Registrierungsendpunkt zu erstellen.Konfigurieren Sie die Authentifizierungseinstellungen für die ausgewählte Methode. Informationen zu den einzelnen Methoden finden Sie unter Authentifizierungsmethoden.
Wählen Sie "Erstellen" aus.
Hinweis
Sie können Registrierungsendpunkte über mehrere Datenflussdiagramme und andere Azure IoT Einsatz-Komponenten wie Akri-Connectors hinweg wiederverwenden.
Konfigurationsoptionen
Host
Die host Eigenschaft gibt nur den Containerregistrierungshostnamen an. Fügen Sie nicht den Repositorypfad ein, in dem Artefakte gespeichert sind. Verwenden Sie für ACR das Format <registry-name>.azurecr.io.
Von Bedeutung
Platzieren Sie Repository-Pfade in den Verweisen auf Graphen oder Modulartefakte, nicht im Host des Registrierungsendpunkts. Wenn Ihr Artefakt beispielsweise ghcr.io/azure-samples/explore-iot-operations/temperature:1.0.0 ist, setzen Sie host auf ghcr.io. Verweisen Sie auf das Artefakt als azure-samples/explore-iot-operations/temperature:1.0.0. Wenn der Host nicht mit dem Hostnamen der Registry übereinstimmt, wird in den Protokollen des WASM-Graph-Controllers „Keine gültige Registry-Endpunktkonfiguration gefunden“ angezeigt.
Beispiele:
-
myregistry.azurecr.io(Azure Container Registry) -
mcr.microsoft.com(Microsoft Containerregistrierung) -
ghcr.io(GitHub Containerregistrierung) -
docker.io(Docker Hub)
Artefaktpfade und Graphmodul-Referenzen
Der Host des Registry-Endpunkts identifiziert die Registry. Artefaktpfade identifizieren das Repository und das Tag innerhalb dieser Registry. Wenn eine Graphdefinition auf ein WASM-Modul verweist, muss die Modulreferenz mit dem Speicherort des Modulartefakts im Register übereinstimmen.
| Host des Registrierungsendpunkts | Graph Artefakt-Referenz | Modulreferenz in der Diagrammdefinition | Gelöstes Modulartefakt |
|---|---|---|---|
mcr.microsoft.com |
azureiotoperations/graph-dataflow-map:1.0.0 |
azureiotoperations/module-dataflow-map:1.0.0 |
mcr.microsoft.com/azureiotoperations/module-dataflow-map:1.0.0 |
ghcr.io |
azure-samples/explore-iot-operations/graph-simple:1.0.0 |
azure-samples/explore-iot-operations/temperature:1.0.0 |
ghcr.io/azure-samples/explore-iot-operations/temperature:1.0.0 |
<registry-name>.azurecr.io |
graph-simple:1.0.0 |
temperature:1.0.0 |
<registry-name>.azurecr.io/temperature:1.0.0 |
<registry-name>.azurecr.io |
factory/graphs/graph-simple:1.0.0 |
factory/graphs/temperature:1.0.0 |
<registry-name>.azurecr.io/factory/graphs/temperature:1.0.0 |
Wenn Sie Diagramm- und Modulartefakte an die Stammebene Ihrer Registrierung übertragen, verwenden Sie kurze Artefaktnamen wie graph-simple:1.0.0 und temperature:1.0.0. Wenn Sie Artefakte unter einem Repositorypfad pushen, fügen Sie diesen Repositorypfad sowohl in die Referenz zum Datenflussdiagramm als auch in die Modulverweise innerhalb der Diagrammdefinition ein.
Authentifizierungsmethoden
Registrierungsendpunkte unterstützen mehrere Authentifizierungsmethoden. Die von Ihnen gewählte Methode hängt von der Containerregistrierung und den Sicherheitsanforderungen ab.
Vom System zugewiesene verwaltete Identität
Systemseitige zugewiesene verwaltete Identität verwendet die integrierte Identität der Azure IoT Einsatz-Instanz zur Authentifizierung bei der Registrierung. Verwenden Sie diesen Ansatz für ACR, da dadurch die Notwendigkeit der Verwaltung von Anmeldeinformationen beseitigt wird.
Bevor Sie den Registrierungsendpunkt konfigurieren, stellen Sie sicher, dass die systemseitig zugewiesene verwaltete Identität von Azure IoT Einsatz über die notwendigen Berechtigungen verfügt.
- Wechseln Sie im Azure-Portal zu Ihrer Azure IoT Einsatz-Instanz, und wählen Sie "Übersicht" aus.
- Kopieren Sie den Namen der Erweiterung, die nach der Azure IoT Einsatz Arc-Erweiterung aufgeführt ist. Beispiel: azure-iot-operations-xxxx7.
- Wechseln Sie zu Ihrer Containerregistrierung >Zugriffssteuerung (IAM)>Rollenzuweisung hinzufügen.
- Wählen Sie auf der Registerkarte Rolle die
AcrPull-Rolle. - Wählen Sie auf der Registerkarte Mitglieder unter Zugriff zuweisenBenutzer, Gruppe oder Dienstprinzipal und wählen Sie dann + Mitglieder auswählen und suchen Sie nach dem Namen der Azure IoT Einsatz Arc-Erweiterung. Wählen Sie die Erweiterung und wählen Sie Auswählen.
- Wählen Sie Überprüfen + Zuweisen, um die Rollenvergabe abzuschließen.
Wählen Sie im Azure-Portal beim Erstellen des Registrierungsendpunkts die vom System verwaltete Identität als Authentifizierungsmethode aus.
| Eigentum | Description | Erforderlich |
|---|---|---|
audience |
Zielgruppe des Diensts, bei dem die Authentifizierung erfolgt. | Nein |
extensionName |
Zu verwendender spezifischer Erweiterungsname. | Nein |
tenantId |
Mandanten-ID für die Authentifizierung. | Nein |
Der Operator versucht, die Zielgruppe vom Endpunkt abzuleiten, wenn Sie sie nicht angeben. Bei ACR ist die Zielgruppe in der Regel https://management.azure.com/.
Vom Benutzer zugewiesene verwaltete Identität
Mit der vom Benutzer zugewiesenen verwalteten Identität können Sie eine bestimmte verwaltete Identität verwenden, die Sie mit den erforderlichen Berechtigungen erstellen und konfigurieren. Bevor Sie den Registrierungsendpunkt konfigurieren, stellen Sie sicher, dass die benutzerseitig zugewiesene verwaltete Identität über die AcrPull-Rolle für Ihre Containerregistrierung verfügt.
Wählen Sie im Azure-Portal die vom Benutzer verwaltete Identität als Authentifizierungsmethode aus, und geben Sie die Client-ID und Mandanten-ID ein.
Hinweis
Die Client- und Mandanten-IDs sind erforderlich, um die vom Benutzer verwaltete Identität zu aktivieren.
| Eigentum | Description | Erforderlich |
|---|---|---|
clientId |
Client-ID für die benutzerseitig zugewiesene verwaltete Identität. | Yes |
tenantId |
Mandanten-ID, unter der sich die verwaltete Identität befindet. | Yes |
scope |
Bereich der Ressource mit dem .default-Suffix. |
Nein |
Der Operator versucht, den Bereich vom Endpunkt abzuleiten, wenn Sie ihn nicht angeben.
Geheimnis für den Artefaktabruf
Mit Artefakt-Pullschlüsseln können Sie benutzernamen- und Kennwortauthentifizierung für Registrierungen verwenden, die die verwaltete Identitätsauthentifizierung nicht unterstützen.
Erstellen Sie zunächst einen Kubernetes-Geheimschlüssel, der die Registrierungsanmeldeinformationen enthält:
kubectl create secret docker-registry my-registry-secret \
--docker-server=myregistry.azurecr.io \
--docker-username=$REGISTRY_USERNAME \
--docker-password=$REGISTRY_PASSWORD \
-n azure-iot-operations
Wählen Sie im Azure-Portal "Artefaktgeheimnis " als Authentifizierungsmethode aus. Sie können vorhandene geheime Schlüssel aus Azure Key Vault auswählen oder neue erstellen.
So erstellen Sie neue geheime Schlüssel und speichern sie in Azure Key Vault:
Anonyme Authentifizierung
Die anonyme Authentifizierung wird für öffentliche Registrierungen verwendet, für die keine Anmeldeinformationen erforderlich sind.
Wählen Sie im Azure-Portal anonym als Authentifizierungsmethode aus.
Azure Container Registry-Integration
ACR ist die empfohlene Containerregistrierung für Azure IoT Einsatz. ACR bietet sichere, private Docker-Containerregistrierungen mit integrierter Authentifizierung über Microsoft Entra ID.
Voraussetzungen für ACR
- Erstellen Sie eine ACR-Instanz: Wenn Sie keine instanz haben, erstellen Sie eine ACR-Instanz in Ihrem Abonnement.
-
Berechtigungen konfigurieren: Stellen Sie sicher, dass die von Azure IoT Einsatz verwaltete Identität über
AcrPull-Berechtigungen für die Registrierung verfügt. - Push artifacts: Laden Sie Ihre WASM-Module und Diagrammdefinitionen mithilfe von Tools wie ORAS CLI in die Registrierung hoch.
Verwenden einer öffentlichen Registrierung
Sie können einen Registrierungsendpunkt so konfigurieren, dass er direkt auf eine öffentliche OCI-kompatible Registrierung verweist. Mit diesem Ansatz kannst du vorgefertigte WASM-Module und Graphendefinitionen referenzieren, ohne dein eigenes privates Register einrichten zu müssen.
Von Bedeutung
Einige öffentliche Register, einschließlich ghcr.io, verlangen einen authentifizierten Token-Austausch, bevor sie überhaupt öffentliche Artefakte ausliefern. Eine nicht authentifizierte (anonyme) Anfrage an ghcr.io gibt 401 Unauthorized mit einer Www-Authenticate: Bearer-Challenge zurück, und die aktuelle Azure IoT Einsatz-Laufzeit führt keinen anonymen Token-Austausch durch – daher kann ein anonymer (Anonymous / --no-auth) ghcr.io-Endpoint das Artefakt nicht laden, und der Datenflussgraph wird nicht gestartet. Um die öffentlichen ghcr.io-Beispiele nutzen zu können, verwenden Sie ein Artefakt-Pull-Geheimnis, das durch ein GitHub Personal Access Token (PAT) mit dem Scope read:packages unterstützt wird, wie in den folgenden Schritten dargestellt. (Ein anonymer Endpunkt funktioniert für Register, die öffentliche Artefakte ohne Token-Austausch bereitstellen, wie zum Beispiel mcr.microsoft.com.)
Hinweis
Das Azure-Portal unterstützt derzeit nur ACR- und MCR-Hostnamen beim Erstellen von Registrierungsendpunkten. Um einen Registrierungsendpunkt für eine öffentliche Registrierung wie ghcr.io zu konfigurieren, verwenden Sie stattdessen Bicep oder die Azure CLI.
Zum Beispiel werden die Azure IoT Einsatz-WASM-Beispielmodule und Graphdefinitionen unter ghcr.io/azure-samples/explore-iot-operations veröffentlicht. Erstelle einen Registry-Endpunkt für den ghcr.io Registry-Host und authentifiziere dich mit einem GitHub-PAT. Fügen Sie den azure-samples/explore-iot-operations Repositorypfad in Artefaktverweisen ein.
Zuerst erstelle ein Kubernetes-Geheimnis, das einen GitHub-Benutzernamen und einen PAT mit dem Umfang read:packages enthält:
kubectl create secret docker-registry ghcr-pull-secret \
--docker-server=ghcr.io \
--docker-username=$GITHUB_USERNAME \
--docker-password=$GITHUB_PAT \
-n azure-iot-operations
Erstellen Sie dann den Registry-Endpunkt, der auf das Geheimnis referenziert.
Das Azure-Portal unterstützt derzeit das Erstellen von Registrierungsendpunkten für andere öffentliche Registrierungen als MCR nicht. Verwenden Sie stattdessen Bicep oder Azure CLI.
Nachdem Sie diesen Registrierungsendpunkt erstellt haben, können Sie ihn in Ihrem Datenflussgrafen als registryEndpointRef: public-ghcr referenzieren. Die Runtime verwendet das Pull-Geheimnis für die Authentifizierung bei ghcr.io, und ruft die Beispielartefakte direkt ab.
Eine Liste der vorgefertigten Beispiel-WASM-Module und Graphdefinitionen, die unter ghcr.io/azure-samples/explore-iot-operations verfügbar sind, finden Sie unter Verwenden vorgefertigter Module aus einer öffentlichen Registry.
Hinweis
Öffentliche Registrierungen erfordern keine Authentifizierung, sie weisen jedoch möglicherweise Ratenbeschränkungen auf. Für Produktionsworkloads sollten Sie eine private Registrierung wie Azure Container Registry verwenden.
Standardmäßiger MCR-Registrierungsendpunkt
Wenn Sie Azure IoT Einsatz bereitstellen, wird automatisch ein Registrierungsendpunkt mit dem Namen default erstellt. Dieser Endpunkt verweist auf die Microsoft Container Registry (mcr.microsoft.com) mit anonymer Authentifizierung:
Sie können den Standardregistrierungsendpunkt im Azure-Portal unterKomponentenregistrierungsendpunkten> anzeigen. Der default Endpunkt ist schreibgeschützt und kann nicht gelöscht werden.
Die integrierten Datenflussgraph-Transformationen (map, filter, branch, concatenate, window, throttle) verwenden diesen Endpunkt, um Verarbeitungsartefakte aus MCR abzurufen. Wenn du sie in einer registryEndpointRef: default Ressource nutztDataflowGraph, brauchst du keine zusätzliche Registry-Konfiguration. Weitere Informationen zu integrierten Transformationen finden Sie in der Übersicht über Datenflussdiagramme.
Hinweis
Für benutzerdefinierte WASM-Transformationen oder Artefakte von Drittanbietern müssen Sie einen separaten Registrierungsendpunkt erstellen, der auf die Registrierung verweist, in der Ihre Artefakte gespeichert sind.
Andere Containerregistrierungen
Registrierungsendpunkte unterstützen alle OCI-kompatiblen Containerregistrierungen, einschließlich Docker Hub, GitHub Container Registry (ghcr.io), Harbor, AWS Elastic Container Registry (ECR) und Google Container Registry (GCR). Verwenden Sie für öffentliche Registrierungen die anonyme Authentifizierung. Verwenden Sie bei privaten Registrierungen die Artefakt-Pullschlüssel oder die verwaltete Identitätsauthentifizierung entsprechend.