Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I grafici del flusso di dati e il connettore HTTP/REST utilizzano endpoint del registro per eseguire il pull di moduli WebAssembly (WASM) e delle definizioni di grafo dai registri contenitori. Le operazioni IoT di Azure estraggono tutti i modelli di connettore personalizzati sviluppati dai registri contenitori. È possibile configurare le impostazioni dell'endpoint, l'autenticazione e altre impostazioni per connettersi a Registro Azure Container (ACR), Microsoft Container Registry (MCR) o GitHub Container Registry (ghcr.io).
Importante
Attualmente, l'interfaccia utente Web per le operazioni supporta solo la creazione e la visualizzazione di artefatti del grafico del flusso di dati provenienti da Registro Azure Container (ACR) e, per le trasformazioni integrate, da mcr.microsoft.com. Per saperne di più, consulta Operations Experience web UI mostra solo artefatti di grafici di flusso dati provenienti da Registro Azure Container (ACR) e mcr.microsoft.com.
Prerequisiti
- Istanza di Operazioni di Azure IoT distribuita in un cluster Kubernetes. Per altre informazioni, vedere Deploy Operazioni di Azure IoT.
- Operazioni di Azure IoT versione 1.2 o successiva.
- Accesso a un registro di container, come Azure Container Registry (ACR).
Gli esempi interfaccia della riga di comando di Azure in questo articolo usano variabili di ambiente così puoi impostare ogni valore una volta e poi copiare e incollare i comandi as-is. Se stai usando l'ambiente Operazioni di Azure IoT Codespaces dal quickstart, queste variabili sono già impostate per te e puoi saltare questo passaggio. Altrimenti, imposta le seguenti variabili di ambiente nella tua shell prima di eseguire i comandi.
I seguenti script impostano le variabili di ambiente più comunemente utilizzate:
| Variabile di ambiente | Description |
|---|---|
SUBSCRIPTION_ID |
L'ID della sottoscrizione che contiene l'istanza di Operazioni di Azure IoT. |
RESOURCE_GROUP |
Il nome del gruppo di risorse che contiene la tua istanza Operazioni di Azure IoT. |
AIO_INSTANCE_NAME |
Il nome dell'istanza di Operazioni di Azure IoT. Per elencare le tue istanze, esegui az iot ops list -o table. |
CLUSTER_NAME |
Il nome del cluster Kubernetes abilitato Azure Arc che ospita la tua istanza. |
LOCATION |
La regione Azure da utilizzare per nuove risorse, ad esempio eastus. |
SUBSCRIPTION_ID=<subscription-id>
RESOURCE_GROUP=<resource-group-name>
AIO_INSTANCE_NAME=<instance-name>
CLUSTER_NAME=<cluster-name>
LOCATION=<region>
Devi solo impostare le variabili utilizzate in questo articolo. Questo articolo potrebbe utilizzare variabili ambientali aggiuntive per i nomi delle risorse che scegli. L'articolo spiega come posizionarli dove vengono introdotti.
Questo articolo utilizza anche le seguenti variabili di ambiente per i valori che scegli: REGISTRY_ENDPOINT (il nome dell'endpoint del registro), ACR_NAME (il nome Registro Azure Container), REGISTRY_HOST (il nome host del registro), CLIENT_ID (TENANT_IDgli identificatori di identità gestite assegnati dall'utente), REGISTRY_USERNAME e REGISTRY_PASSWORD (credenziali del registro), e GITHUB_USERNAMEGITHUB_PAT (GitHub credenziali del Registro Container). Imposta ognuno prima di eseguire i comandi correlati.
Creare un endpoint del registro
Un endpoint del registro definisce la connessione al registro contenitori. I grafici di flusso di dati usano gli endpoint dei registri per recuperare moduli WASM e definizioni di grafo. Le operazioni IoT di Azure usano gli endpoint del Registro di sistema per eseguire il pull dei modelli di connettore personalizzati. Dopo aver creato un endpoint del Registro di sistema:
- È possibile utilizzare qualsiasi grafico di cui è stato eseguito il push nel registro contenitori nella gestione operativa dei grafici del flusso di dati.
- È possibile usare tutti i connettori personalizzati di cui è stato eseguito il push nel registro contenitori nell'esperienza operativa per creare endpoint in ingresso del dispositivo.
Nel portale di Azure passare all'istanza di Operazioni IoT di Azure.
In Componenti selezionare Endpoint del Registro di sistema.
Selezionare + Crea un endpoint del Registro di sistema.
Immetti le impostazioni seguenti:
Impostazione Description Nome dell'endpoint del Registro di sistema Nome univoco per l'endpoint del registro. Nome host Il nome host del registro contenitori. Per ACR, usare il formato <registry-name>.azurecr.io. Per MCR, usaremcr.microsoft.com. Per informazioni dettagliate sul formato hostname, vedere Host.Autenticazione Metodo di autenticazione. Scegliere tra: Anonima, Segreto artefatto, Identità gestita dal sistema o Identità gestita dall'utente. Annotazioni
Il portale di Azure attualmente accetta solo nomi host nel formato
<your-registry-name>.azurecr.ioomcr.microsoft.com. Per usare altri registri come GitHub Container Registry (ghcr.io) o Docker Hub, usa Bicep o l'interfaccia della riga di comando di Azure per creare invece l'endpoint del registro.Configurare le impostazioni di autenticazione per il metodo selezionato. Per informazioni su ogni metodo, vedere Metodi di autenticazione.
Fare clic su Crea.
Annotazioni
È possibile riutilizzare gli endpoint del registro di sistema tra più grafici del flusso di dati e altri componenti di Operazioni di Azure IoT, ad esempio i connettori Akri.
Opzioni di configurazione
Host
La host proprietà specifica solo il nome host del registro contenitori. Non includere il percorso del repository in cui sono archiviati gli artefatti. Per ACR, usare il formato <registry-name>.azurecr.io.
Importante
Inserire i percorsi del repository nei riferimenti agli artefatti graph o module, non nell'host dell'endpoint del registro. Ad esempio, se l'artefatto è ghcr.io/azure-samples/explore-iot-operations/temperature:1.0.0, impostare host su ghcr.io. Fare riferimento all'artefatto come azure-samples/explore-iot-operations/temperature:1.0.0. Se l'host non corrisponde all'hostname del registro, nei log del controller del grafo di WASM viene visualizzato "No valid registry endpoint configuration found".
Esempi:
-
myregistry.azurecr.io(Registro Azure Container) -
mcr.microsoft.com(Registro Contenitori Microsoft) -
ghcr.io(Container Registry di GitHub) -
docker.io(Hub Docker)
Percorsi degli artefatti e riferimenti ai moduli del grafo
L'host dell'endpoint del registro identifica il registro. I percorsi degli artefatti identificano il repository e il tag all'interno di tale registry. Quando una definizione del grafo fa riferimento a un modulo WASM, il riferimento al modulo deve corrispondere alla posizione in cui è archiviato l'artefatto del modulo nel Registro di sistema.
| Host dell'endpoint del Registro di sistema | Riferimento all'artefatto del grafo | Informazioni di riferimento sul modulo nella definizione del grafo | Artefatto risolto del modulo |
|---|---|---|---|
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 |
Se si inviano artefatti graph e module nella radice del registro, utilizzare nomi di artefatto brevi come graph-simple:1.0.0 e temperature:1.0.0. Se si caricano artefatti in un percorso del repository, includere tale percorso sia nel riferimento all'artefatto del grafo del flusso di dati sia nei riferimenti ai moduli all'interno della definizione del grafo.
Metodi di autenticazione
Gli endpoint del Registro di sistema supportano diversi metodi di autenticazione. Il metodo scelto dipende dal registro contenitori e dai requisiti di sicurezza.
Identità gestita assegnata dal sistema
L'identità gestita assegnata dal sistema usa l'identità predefinita dell'istanza di Operazioni di Azure IoT per l'autenticazione al registro. Utilizzare questo approccio per ACR (Azure Container Registry), perché elimina la necessità di gestire le credenziali.
Prima di configurare l'endpoint di registro, verificare che l'identità gestita assegnata dal sistema per Operazioni di Azure IoT disponga delle autorizzazioni necessarie:
- Nel portale di Azure passare all'istanza di Operazioni IoT di Azure e selezionare Panoramica.
- Copiare il nome dell'estensione elencata dopo l'estensione Operazioni di Azure IoT Arc. Ad esempio, azure-iot-operations-xxxx7.
- Passare al registro contenitori >Controllo di accesso (IAM)>Aggiungi assegnazione di ruolo.
- Nella scheda Ruolo selezionare il ruolo
AcrPull. - Nella scheda Membri, per Assegna accesso a, selezionare Utente, gruppo o entità servizio, quindi selezionare + Seleziona membri e cercare il nome dell’estensione Arc di Operazioni di Azure IoT. Scegliere l'estensione e selezionare Seleziona.
- Selezionare Rivedi e assegna per completare l'assegnazione di ruolo.
Nel portale di Azure selezionare Identità gestita dal sistema come metodo di autenticazione durante la creazione dell'endpoint del Registro di sistema.
| Proprietà | Description | Obbligatorio |
|---|---|---|
audience |
Destinatari del servizio per l'autenticazione. | NO |
extensionName |
Nome dell’estensione specifica da usare. | NO |
tenantId |
ID tenant per l'autenticazione. | NO |
L'operatore tenta di dedurre il gruppo di destinatari dall'endpoint se non lo si specifica. Per il Registro Azure Container, il gruppo di destinatari è generalmente https://management.azure.com/.
Identità gestita assegnata dall'utente
L'identità gestita assegnata dall'utente consente di usare un'identità gestita specifica creata e configurata con le autorizzazioni necessarie. Prima di configurare l'endpoint di registro, verificare che l'identità gestita assegnata dall'utente disponga del ruolo AcrPull nel registro contenitori.
Nel portale di Azure selezionare Identità gestita dall'utente come metodo di autenticazione e immettere l'ID client e l'ID tenant.
Annotazioni
Gli ID client e tenant sono necessari per abilitare l'identità gestita dall'utente.
| Proprietà | Description | Obbligatorio |
|---|---|---|
clientId |
ID client per l'identità gestita assegnata dall'utente. | Yes |
tenantId |
ID tenant in cui si trova l'identità gestita. | Yes |
scope |
Ambito della risorsa con suffisso .default. |
NO |
L'operatore tenta di dedurre l'ambito dall'endpoint se non viene specificato.
Segreto pull di artefatto
I segreti pull degli artefatti consentono di usare l'autenticazione con nome utente e password per i registri che non supportano l'autenticazione con identità gestita.
Creare prima di tutto un segreto Kubernetes contenente le credenziali del Registro di sistema:
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
Nel portale di Azure selezionare Artifact secret (Segreto artefatto ) come metodo di autenticazione. È possibile selezionare i segreti esistenti da Azure Key Vault o crearne di nuovi.
Per creare nuovi segreti e archiviarli in Azure Key Vault:
Autenticazione anonima
L'autenticazione anonima viene usata per i registri pubblici che non richiedono credenziali.
Nel portale di Azure selezionare Anonimo come metodo di autenticazione.
Integrazione di Registro Azure Container
Azure Container Registry è il registro dei contenitori consigliato per le operazioni IoT di Azure. Registro Azure Container offre registri contenitori Docker sicuri e privati, con autenticazione integrata tramite Microsoft Entra ID.
Prerequisiti per Registro Azure Container
- Creare un'istanza ACR: se non ne hai una disponibile, crea un'istanza di Azure Container Registry nella tua sottoscrizione.
-
Configurare le autorizzazioni: verificare che l'identità gestita di Operazioni di Azure IoT disponga delle autorizzazioni
AcrPullnel registro. - Eseguire il push degli artefatti: caricare i moduli WASM e le definizioni di grafico nel registro usando strumenti come l'interfaccia della riga di comando di ORAS.
Usare un registro pubblico
È possibile configurare un endpoint del Registro di sistema in modo che punti direttamente a un registro compatibile con OCI pubblico. Questo approccio ti permette di fare riferimento a moduli WASM predefiniti e definizioni di grafi senza dover creare un proprio registro privato.
Importante
Alcuni registri pubblici, incluso ghcr.io, richiedono uno scambio di token autenticato prima di servire anche solo gli artefatti pubblici . Una richiesta non autenticata (anonima) a ghcr.io restituisce 401 Unauthorized con una Www-Authenticate: Bearer sfida, l'attuale runtime di Operazioni di Azure IoT non effettua lo scambio anonimo dei token, quindi un endpoint anonimo (Anonymous / --no-auth) ghcr.io non carica l'artefatto e il grafico del flusso dati non si avvia. Per utilizzare gli esempi pubblici ghcr.io, usare un segreto di pull dell'artefatto basato su un token di accesso personale (PAT) di GitHub con l'ambito read:packages, come mostrato nei passaggi seguenti. (Un endpoint anonimo funziona per registri che servono artefatti pubblici senza uno scambio di token, come mcr.microsoft.com.)
Annotazioni
Il portale di Azure supporta attualmente solo i nomi host di Azure Container Registry (ACR) e Microsoft Container Registry (MCR) quando si creano endpoint di registro. Per configurare un endpoint del registro per un registro pubblico come ghcr.io, usa invece Bicep o l'interfaccia della riga di comando di Azure.
Ad esempio, i moduli WASM di esempio di Operazioni di Azure IoT e le definizioni dei grafi sono pubblicati sotto ghcr.io/azure-samples/explore-iot-operations. Crea un endpoint del registro per l'host ghcr.io del registro e autentica con un PAT di GitHub. Inserire il percorso del azure-samples/explore-iot-operations repository nei riferimenti agli artefatti.
Per prima cosa, crea un segreto Kubernetes che contenga il nome utente GitHub e un PAT con l'ambito read:packages:
kubectl create secret docker-registry ghcr-pull-secret \
--docker-server=ghcr.io \
--docker-username=$GITHUB_USERNAME \
--docker-password=$GITHUB_PAT \
-n azure-iot-operations
Poi crea l'endpoint del registro che fa riferimento al segreto.
Il portale di Azure attualmente non supporta la creazione di endpoint del Registro di sistema per registri pubblici diversi da MCR. Usare invece Bicep o interfaccia della riga di comando di Azure.
Dopo aver creato questo endpoint del Registro di sistema, è possibile farvi riferimento nel grafico del flusso di dati come registryEndpointRef: public-ghcr. Il runtime utilizza il pull secret per autenticarsi su ghcr.io ed estrae direttamente gli artefatti di esempio.
Per l'elenco dei moduli WASM di esempio predefiniti e delle definizioni dei grafi disponibili in ghcr.io/azure-samples/explore-iot-operations, vedere Usare moduli predefiniti da un registro pubblico.
Annotazioni
I registri pubblici non richiedono l'autenticazione, ma possono avere limiti di frequenza. Per i carichi di lavoro di produzione, prendere in considerazione l'uso di un registro privato come Registro Azure Container.
Endpoint predefinito del registro MCR
Quando si distribuisce Operazioni di Azure IoT, viene creato automaticamente un endpoint del Registro di sistema denominato default . Questo endpoint punta a Registro Microsoft Container (mcr.microsoft.com) con autenticazione anonima.
È possibile visualizzare l'endpoint del registro predefinito nel portale di Azure sotto componenti, endpoint del registro. L'endpoint default è di sola lettura e non può essere eliminato.
I grafici del flusso di dati predefiniti (mappa, filtro, ramo, concatenazione, finestra, limite) usano questo endpoint per recuperare gli artefatti di elaborazione da MCR. Quando utilizzi registryEndpointRef: default in una risorsa DataflowGraph, non è necessaria alcuna configurazione aggiuntiva del registro. Per altre informazioni sulle trasformazioni predefinite, vedere Panoramica dei grafici del flusso di dati.
Annotazioni
Per le trasformazioni WASM personalizzate o gli artefatti di terze parti, è necessario creare un endpoint del Registro di sistema separato che punta al Registro di sistema in cui sono archiviati gli artefatti.
Altri registri contenitori
Gli endpoint del Registro di sistema supportano qualsiasi registro contenitori compatibile con OCI, tra cui Docker Hub, GitHub Container Registry (ghcr.io), Harbor, AWS Elastic Container Registry (ECR) e Google Container Registry (GCR). Per i registri pubblici, usare l'autenticazione anonima. Per i registri privati, usare i segreti pull degli artefatti o l'autenticazione con identità gestita in base alle esigenze.