Konfigurera registerslutpunkter (förhandsversion)

Viktigt!

Den här sidan innehåller instruktioner för att hantera Azure IoT Operations-komponenter med hjälp av Kubernetes-distributionsmanifest, som finns i FÖRHANDSVERSION. Den här funktionen har flera begränsningar och bör inte användas för produktionsarbetsbelastningar.

Se kompletterande användningsvillkor för Microsoft Azure Previews för juridiska villkor som gäller för Azure-funktioner som är i betaversion, förhandsversion eller på annat sätt ännu inte har släppts i allmän tillgänglighet.

Dataflödesdiagram använder registerslutpunkter för att hämta WebAssembly-moduler (WASM) och grafdefinitioner från containerregister. Du kan konfigurera slutpunktsinställningar, autentisering och andra inställningar för att ansluta till Azure Container Registry (ACR) eller andra OCI-kompatibla register.

Förutsättningar

  • En instans av Azure IoT Operations, version 1.2 preview eller senare
  • Åtkomst till ett containerregister, till exempel Azure Container Registry

Översikt över registerslutpunkt

En registerslutpunkt definierar anslutningsinformationen och autentiseringsmetoden för åtkomst till ett containerregister. Registerslutpunkter används av:

  • Dataflödesdiagram: Hämta WASM-moduler och grafdefinitioner
  • Akri-kontakter: För att dra anpassade anslutningsmallar

Registerslutpunkter stöder autentisering via:

  • Systemtilldelad hanterad identitet
  • Användartilldelad hanterad identitet
  • Artefakthämtningshemligheter (användarnamn och lösenord)
  • Anonym åtkomst (för offentliga register)

Skapa en registerslutpunkt

Du kan skapa en registerslutpunkt med Bicep eller Kubernetes.

Viktigt!

För närvarande finns det ett känt problem vid användning av registerslutpunktsfunktioner med Akri-kontakter. För mer information, se Akri-kontakter fungerar inte med registerändpunktresurser.

Skapa en Bicep-fil .bicep med följande innehåll:

param aioInstanceName string = '<AIO_INSTANCE_NAME>'
param customLocationName string = '<CUSTOM_LOCATION_NAME>'
param registryEndpointName string = '<REGISTRY_ENDPOINT_NAME>'
param registryHost string = '<REGISTRY_HOST>' // For example, myregistry.azurecr.io

resource aioInstance 'Microsoft.IoTOperations/instances@2024-11-01' existing = {
  name: aioInstanceName
}

resource customLocation 'Microsoft.ExtendedLocation/customLocations@2021-08-31-preview' existing = {
  name: customLocationName
}

resource registryEndpoint 'Microsoft.IoTOperations/instances/registryEndpoints@2025-07-01-preview' = {
  parent: aioInstance
  name: registryEndpointName
  extendedLocation: {
    name: customLocation.id
    type: 'CustomLocation'
  }
  properties: {
    host: registryHost
    authentication: {
      method: 'SystemAssignedManagedIdentity'
      systemAssignedManagedIdentitySettings: {
        audience: 'https://management.azure.com/'
      }
    }
  }
}

Distribuera Bicep-filen med Azure CLI:

az deployment group create --resource-group <RESOURCE_GROUP> --template-file <FILE>.bicep

Konfigurationsalternativ

I det här avsnittet beskrivs de konfigurationsalternativ som är tillgängliga för registerslutpunkter.

värd

Egenskapen host anger värdnamnet för containerregistret. För Azure Container Registry använder du formatet <registry-name>.azurecr.io. Värdegenskapen stöder HTTPS-URL:er eller bara värdnamnet.

Exempel:

  • myregistry.azurecr.io
  • https://myregistry.azurecr.io

Mönster: Måste matcha mönstret ^(https:\/\/)?[a-zA-Z0-9\-]+\.azurecr\.io$ för Azure Container Registry.

Autentiseringsmetoder

Registerslutpunkter stöder flera autentiseringsmetoder för säker åtkomst till containerregister.

Systemtilldelad hanterad identitet

Systemtilldelad hanterad identitet använder Azure IoT Operations-instansens inbyggda identitet för att autentisera med registret. Det här är den rekommenderade metoden för Azure Container Registry eftersom det eliminerar behovet av att hantera autentiseringsuppgifter.

Innan du konfigurerar registerslutpunkten kontrollerar du att den systemtilldelade hanterade identiteten i Azure IoT Operations har nödvändiga behörigheter:

  1. I Azure Portal går du till din Azure IoT Operations-instans och väljer Översikt.
  2. Kopiera namnet på tillägget som visas efter Azure IoT Operations Arc-tillägget. Till exempel azure-iot-operations-xxxx7.
  3. Gå till din åtkomstkontroll för containerregistret >(IAM)>Lägg till rolltilldelning.
  4. På fliken Roll väljer du AcrPull roll.
  5. På fliken Medlemmar för Tilldela åtkomst till väljer du Användare, grupp eller tjänstens huvudnamn, sedan + Välj medlemmar och söker efter Azure IoT Operations Arc-tilläggets namn. Välj tillägget och välj Välj.
  6. Välj Granska + tilldela för att genomföra rolltilldelningen.
authentication: {
  method: 'SystemAssignedManagedIdentity'
  systemAssignedManagedIdentitySettings: {
    audience: 'https://management.azure.com/'
    extensionName: null  // Optional: specific extension name
    tenantId: null       // Optional: specific tenant ID
  }
}

Systemtilldelade inställningar för hanterad identitet:

Fastighet Beskrivning Krävs Typ
audience Målgrupp för tjänsten att autentisera mot. Nej Sträng
extensionName Specifikt tilläggsnamn som ska användas. Nej Sträng
tenantId Klientorganisations-ID för autentisering. Nej Sträng

Operatorn försöker härleda målgruppen från slutpunkten om den inte tillhandahålls. För Azure Container Registry är målgruppen vanligtvis https://management.azure.com/.

Användartilldelad hanterad identitet

Med användartilldelad hanterad identitet kan du använda en specifik hanterad identitet som du har skapat och konfigurerat med nödvändiga behörigheter.

Innan du konfigurerar registerslutpunkten kontrollerar du att den användartilldelade hanterade identiteten har rollen i AcrPull containerregistret.

authentication: {
  method: 'UserAssignedManagedIdentity'
  userAssignedManagedIdentitySettings: {
    clientId: '<CLIENT_ID>'
    tenantId: '<TENANT_ID>'
    scope: null  // Optional: specific scope
  }
}

Användartilldelade inställningar för hanterad identitet:

Fastighet Beskrivning Krävs Typ
clientId Klient-ID för den användartilldelade hanterade identiteten. Ja Sträng
tenantId Klientorganisations-ID där den hanterade identiteten finns. Ja Sträng
scope Omfång för resursen med .default suffix. Nej Sträng

Operatorn försöker härleda omfånget från slutpunkten om det inte anges.

Artefakthämtningshemlighet

Med artefakthämtningshemligheter kan du använda autentisering med användarnamn och lösenord för register som inte stöder hanterad identitetsautentisering.

Skapa först en Kubernetes-hemlighet som innehåller autentiseringsuppgifterna för registret:

kubectl create secret docker-registry my-registry-secret \
  --docker-server=myregistry.azurecr.io \
  --docker-username=<USERNAME> \
  --docker-password=<PASSWORD> \
  -n azure-iot-operations
authentication: {
  method: 'ArtifactPullSecret'
  artifactPullSecretSettings: {
    secretRef: 'my-registry-secret'
  }
}

Anonym autentisering

Anonym autentisering används för offentliga register som inte kräver autentisering.

authentication: {
  method: 'Anonymous'
  anonymousSettings: {}
}

Azure Container Registry-integrering

Azure Container Registry (ACR) är det rekommenderade containerregistret för Azure IoT Operations. ACR tillhandahåller säkra, privata Docker-containerregister med integrerad autentisering via Microsoft Entra-ID.

Förutsättningar för ACR

  1. Skapa en ACR-instans: Om du inte har någon skapar du en Azure Container Registry-instans i din prenumeration.
  2. Konfigurera behörigheter: Kontrollera att den hanterade Azure IoT Operations-identiteten har AcrPull behörigheter i registret.
  3. Push-artefakter: Ladda upp DINA WASM-moduler och diagramdefinitioner till registret med hjälp av verktyg som ORAS CLI.

Exempel på ACR-konfiguration

Här är ett komplett exempel på hur du konfigurerar en ACR-registerslutpunkt:

param aioInstanceName string = 'my-aio-instance'
param customLocationName string = 'my-custom-location'
param acrName string = 'myregistry'

resource aioInstance 'Microsoft.IoTOperations/instances@2024-11-01' existing = {
  name: aioInstanceName
}

resource customLocation 'Microsoft.ExtendedLocation/customLocations@2021-08-31-preview' existing = {
  name: customLocationName
}

resource acrRegistryEndpoint 'Microsoft.IoTOperations/instances/registryEndpoints@2025-07-01-preview' = {
  parent: aioInstance
  name: 'acr-endpoint'
  extendedLocation: {
    name: customLocation.id
    type: 'CustomLocation'
  }
  properties: {
    host: '${acrName}.azurecr.io'
    authentication: {
      method: 'SystemAssignedManagedIdentity'
      systemAssignedManagedIdentitySettings: {
        audience: 'https://management.azure.com/'
      }
    }
  }
}

Andra containerregister

Registerslutpunkter stöder även andra OCI-kompatibla containerregister, till exempel:

  • Docker Hub
  • Hamn
  • AWS Elastic Container Registry (ECR)
  • Google Container Registry (GCR)

För dessa register använder du vanligtvis artefakthämtningshemligheter för autentisering, såvida de inte stöder Azure-hanterad identitet.

Nästa steg