AzureIoTEdge@2: Azure IoT Edge v2-Aufgabe

Verwenden Sie diese Aufgabe, um Images schnell und effizient in Azure IoT Edge zu erstellen und bereitzustellen.

Diese Aufgabe unterstützt benutzerdefinierte Variablen. Wenn Sie nicht mit der Verwendung von Variablen in Pipelines vertraut sind, finden Sie weitere Informationen unter Definieren von Variablen.

Syntax

# Azure IoT Edge v2
# Build and deploy an Azure IoT Edge image.
- task: AzureIoTEdge@2
  inputs:
    action: 'Build module images' # 'Build module images' | 'Push module images' | 'Generate deployment manifest' | 'Deploy to IoT Edge devices'. Required. Action. Default: Build module images.
    #deploymentFilePath: '$(System.DefaultWorkingDirectory)/config/deployment.json' # string. Required when action == Deploy to IoT Edge devices. Deployment file. Default: $(System.DefaultWorkingDirectory)/config/deployment.json.
    #azureSubscription: # string. Alias: connectedServiceNameARM. Required when action == Deploy to IoT Edge devices. Azure subscription contains IoT Hub. 
    #iothubname: # string. Required when action == Deploy to IoT Edge devices. IoT Hub name. 
    #deviceOption: # 'Single Device' | 'Multiple Devices'. Required when action == Deploy to IoT Edge devices. Choose single/multiple device. 
    #deviceId: # string. Required when deviceOption == Single Device. IoT Edge device ID. 
    #targetcondition: # string. Required when deviceOption == Multiple Devices. IoT Edge device target condition. 
    #containerregistrytype: 'Azure Container Registry' # 'Azure Container Registry' | 'Generic Container Registry'. Required when action = Push module images. Container registry type. Default: Azure Container Registry.
    #dockerRegistryConnection: # string. Alias: dockerRegistryEndpoint. Required when containerregistrytype = Generic Container Registry. Docker Registry Connection. 
    #azureSubscriptionEndpoint: # string. Optional. Use when containerregistrytype = Azure Container Registry. Azure subscription. 
    #azureContainerRegistry: # string. Required when containerregistrytype = Azure Container Registry. Azure Container Registry. 
    #templateFilePath: 'deployment.template.json' # string. Required when action = Build module images || action = Push module images || action = Generate deployment manifest. .template.json file. Default: deployment.template.json.
    #defaultPlatform: 'amd64' # 'amd64' | 'windows-amd64' | 'arm32v7' | 'arm64v8'. Required when action = Build module images || action = Push module images || action = Generate deployment manifest. Default platform. Default: amd64.
    #fillRegistryCredential: 'true' # 'true' | 'false'. Required when action = Push module images. Add registry credential to deployment manifest. Default: true.
    #deploymentManifestOutputPath: '$(System.DefaultWorkingDirectory)/config/deployment.json' # string. Required when action == Generate deployment manifest. Output path. Default: $(System.DefaultWorkingDirectory)/config/deployment.json.
    #validateGeneratedDeploymentManifest: 'false' # 'true' | 'false'. Required when action = Generate deployment manifest. Validate the schema of generated deployment manifest. Default: false.
  # Advanced
    #deploymentid: '$(System.TeamProject)-devops-deployment' # string. Required when action = Deploy to IoT Edge devices. IoT Edge deployment ID. Default: $(System.TeamProject)-devops-deployment.
    #priority: '0' # string. Required when action = Deploy to IoT Edge devices. IoT Edge deployment priority. Default: 0.
  # Advanced
    #bypassModules: # string. Optional. Use when action = Push module images. Bypass module(s).
# Azure IoT Edge v2
# Build and deploy an Azure IoT Edge image.
- task: AzureIoTEdge@2
  inputs:
    action: 'Build module images' # 'Build module images' | 'Push module images' | 'Generate deployment manifest' | 'Deploy to IoT Edge devices'. Required. Action. Default: Build module images.
    #deploymentFilePath: '$(System.DefaultWorkingDirectory)/config/deployment.json' # string. Required when action == Deploy to IoT Edge devices. Deployment file. Default: $(System.DefaultWorkingDirectory)/config/deployment.json.
    #azureSubscription: # string. Alias: connectedServiceNameARM. Required when action == Deploy to IoT Edge devices. Azure subscription contains IoT Hub. 
    #iothubname: # string. Required when action == Deploy to IoT Edge devices. IoT Hub name. 
    #deviceOption: # 'Single Device' | 'Multiple Devices'. Required when action == Deploy to IoT Edge devices. Choose single/multiple device. 
    #deviceId: # string. Required when deviceOption == Single Device. IoT Edge device ID. 
    #targetcondition: # string. Required when deviceOption == Multiple Devices. IoT Edge device target condition. 
    #containerregistrytype: 'Azure Container Registry' # 'Azure Container Registry' | 'Generic Container Registry'. Required when action = Push module images. Container registry type. Default: Azure Container Registry.
    #dockerRegistryConnection: # string. Alias: dockerRegistryEndpoint. Required when containerregistrytype = Generic Container Registry. Docker Registry Connection. 
    #azureSubscriptionEndpoint: # string. Optional. Use when containerregistrytype = Azure Container Registry. Azure subscription. 
    #azureContainerRegistry: # string. Required when containerregistrytype = Azure Container Registry. Azure Container Registry. 
    #templateFilePath: 'deployment.template.json' # string. Required when action = Build module images || action = Push module images || action = Generate deployment manifest. .template.json file. Default: deployment.template.json.
    #defaultPlatform: 'amd64' # 'amd64' | 'windows-amd64' | 'arm32v7'. Required when action = Build module images || action = Push module images || action = Generate deployment manifest. Default platform. Default: amd64.
    #fillRegistryCredential: 'true' # 'true' | 'false'. Required when action = Push module images. Add registry credential to deployment manifest. Default: true.
    #deploymentManifestOutputPath: '$(System.DefaultWorkingDirectory)/config/deployment.json' # string. Required when action == Generate deployment manifest. Output path. Default: $(System.DefaultWorkingDirectory)/config/deployment.json.
    #validateGeneratedDeploymentManifest: 'false' # 'true' | 'false'. Required when action = Generate deployment manifest. Validate the schema of generated deployment manifest. Default: false.
  # Advanced
    #deploymentid: '$(System.TeamProject)-devops-deployment' # string. Required when action = Deploy to IoT Edge devices. IoT Edge deployment ID. Default: $(System.TeamProject)-devops-deployment.
    #priority: '0' # string. Required when action = Deploy to IoT Edge devices. IoT Edge deployment priority. Default: 0.
  # Advanced
    #bypassModules: # string. Optional. Use when action = Push module images. Bypass module(s).
# Azure IoT Edge v2
# Build and deploy an Azure IoT Edge image.
- task: AzureIoTEdge@2
  inputs:
    action: 'Build module images' # 'Build module images' | 'Push module images' | 'Generate deployment manifest' | 'Deploy to IoT Edge devices'. Required. Action. Default: Build module images.
    #deploymentFilePath: '$(System.DefaultWorkingDirectory)/config/deployment.json' # string. Required when action == Deploy to IoT Edge devices. Deployment file. Default: $(System.DefaultWorkingDirectory)/config/deployment.json.
    #azureSubscription: # string. Alias: connectedServiceNameARM. Required when action == Deploy to IoT Edge devices. Azure subscription contains IoT Hub. 
    #iothubname: # string. Required when action == Deploy to IoT Edge devices. IoT Hub name. 
    #deviceOption: # 'Single Device' | 'Multiple Devices'. Required when action == Deploy to IoT Edge devices. Choose single/multiple device. 
    #deviceId: # string. Required when deviceOption == Single Device. IoT Edge device ID. 
    #targetcondition: # string. Required when deviceOption == Multiple Devices. IoT Edge device target condition. 
    #containerregistrytype: 'Azure Container Registry' # 'Azure Container Registry' | 'Generic Container Registry'. Required when action = Push module images. Container registry type. Default: Azure Container Registry.
    #dockerRegistryConnection: # string. Alias: dockerRegistryEndpoint. Required when containerregistrytype = Generic Container Registry. Docker Registry Connection. 
    #azureSubscriptionEndpoint: # string. Optional. Use when containerregistrytype = Azure Container Registry. Azure subscription. 
    #azureContainerRegistry: # string. Required when containerregistrytype = Azure Container Registry. Azure Container Registry. 
    #templateFilePath: 'deployment.template.json' # string. Required when action = Build module images || action = Push module images || action = Generate deployment manifest. .template.json file. Default: deployment.template.json.
    #defaultPlatform: 'amd64' # 'amd64' | 'windows-amd64' | 'arm32v7'. Required when action = Build module images || action = Push module images || action = Generate deployment manifest. Default platform. Default: amd64.
    #fillRegistryCredential: 'true' # 'true' | 'false'. Required when action = Push module images. Add registry credential to deployment manifest. Default: true.
    #deploymentManifestOutputPath: '$(System.DefaultWorkingDirectory)/config/deployment.json' # string. Required when action == Generate deployment manifest. Output path. Default: $(System.DefaultWorkingDirectory)/config/deployment.json.
  # Advanced
    #deploymentid: '$(System.TeamProject)-devops-deployment' # string. Required when action = Deploy to IoT Edge devices. IoT Edge deployment ID. Default: $(System.TeamProject)-devops-deployment.
    #priority: '0' # string. Required when action = Deploy to IoT Edge devices. IoT Edge deployment priority. Default: 0.
  # Advanced
    #bypassModules: # string. Optional. Use when action = Push module images. Bypass module(s).

Eingaben

action - Aktion
string. Erforderlich. Zulässige Werte: Build module images, Push module images, Generate deployment manifest, Deploy to IoT Edge devices. Standardwert. Build module images.

Wählt eine Azure IoT Edge-Aktion aus.

Build module images erstellt nur Module (Sie können sie verwenden, um Kompilierungsfehler zu überprüfen).

Push module images pusht Module an die Containerregistrierung.

Deploy to IoT Edge devicesstellt die generierte Bereitstellungsdatei in IoT Hub bereit. (Es wird empfohlen, die Deploy Aufgabe in der Releasepipeline zu platzieren.)


deploymentFilePath - Bereitstellungsdatei
string. Erforderlich, wenn action == Deploy to IoT Edge devices. Standardwert. $(System.DefaultWorkingDirectory)/config/deployment.json.

Wählt die JSON-Datei der Bereitstellung aus. Wenn sich diese Aufgabe in release pipelinebefindet, müssen Sie den Speicherort der Bereitstellungsdatei im Artefakt festlegen. (Der Standardwert funktioniert für die meisten Bedingungen.) Wenn sich diese Aufgabe in einer Buildpipeline befindet, müssen Sie den Ausgabepfad des Bereitstellungsmanifests angeben.


azureSubscription - Das Azure-Abonnement enthält IoT Hub
Eingabealias: connectedServiceNameARM. string. Erforderlich, wenn action == Deploy to IoT Edge devices.

Wählt ein Azure-Abonnement aus, das IoT Hub enthält.


iothubname - IoT Hub Name
string. Erforderlich, wenn action == Deploy to IoT Edge devices.

Wählt die IoT Hub aus.


deploymentid - IoT Edge Bereitstellungs-ID
string. Erforderlich, wenn action = Deploy to IoT Edge devices. Standardwert. $(System.TeamProject)-devops-deployment.

Gibt die IoT Edge-Bereitstellungs-ID ein. Wenn die ID bereits vorhanden ist, wird sie überschrieben. Dies hat bis zu 128 Kleinbuchstaben und Zahlen, und die folgenden Zeichen sind zulässig: -:+%_#*?!(),=@;'. Weitere Informationen finden Sie unter Azure IoT Edge Bereitstellung.


priority - IoT Edge Bereitstellungspriorität
string. Erforderlich, wenn action = Deploy to IoT Edge devices. Standardwert. 0.

Legt den priority auf eine positive ganze Zahl fest, um Bereitstellungskonflikte zu beheben. Wenn für diese Aufgabe mehrere Bereitstellungen verwendet werden, verwendet ein Gerät die aufgabe mit der höchsten Priorität oder im Fall von zwei Bereitstellungen mit derselben Priorität die neueste Erstellungszeit. Weitere Informationen finden Sie unter Azure IoT Edge Bereitstellung.


deviceOption - Auswählen eines oder mehrerer Geräte
string. Erforderlich, wenn action == Deploy to IoT Edge devices. Zulässige Werte: Single Device, Multiple Devices.

Je nach Tags wird die Bereitstellung auf einem oder mehreren Geräten ausgewählt.


deviceId - IoT Edge Geräte-ID
string. Erforderlich, wenn deviceOption == Single Device.

Gibt den IoT Edge device IDein.


targetcondition - IoT Edge Gerätezielbedingung
string. Erforderlich, wenn deviceOption == Multiple Devices.

Gibt die der target condition Geräte ein, die Sie bereitstellen möchten. Verwenden Sie keine doppelten Anführungszeichen. Beispiel: tags.building=9 und tags.environment='test'. Weitere Informationen finden Sie unter Azure IoT Edge Bereitstellung.


containerregistrytype - Containerregistrierungstyp
string. Erforderlich, wenn action = Push module images. Zulässige Werte: Azure Container Registry, Generic Container Registry. Standardwert. Azure Container Registry.

Wählt einen aus Container Registry Type. Azure Container Registry ist für ACR und Generic Container Registry für generische Registrierungen, einschließlich Docker Hub.


dockerRegistryConnection - Docker Registry-Verbindung
Eingabealias: dockerRegistryEndpoint. string. Erforderlich, wenn containerregistrytype = Generic Container Registry.

Wählt eine generische Docker-Registrierungsverbindung aus. Dies ist für Build und Push erforderlich.


azureSubscriptionEndpoint - Azure-Abonnement
string. Optional. Verwenden Sie , wenn containerregistrytype = Azure Container Registry.

Wählt ein Azure-Abonnement aus.


azureContainerRegistry - Azure Container Registry
string. Erforderlich, wenn containerregistrytype = Azure Container Registry.

Wählt einen Azure Container Registry aus.


templateFilePath - Datei .template.json
string. Erforderlich, wenn action = Build module images || action = Push module images || action = Generate deployment manifest. Standardwert. deployment.template.json.

Der Pfad der Azure IoT Edge-Lösung .template.json. Diese Datei definiert die Module und Routen in Azure IoT Edge Lösung. Der Dateiname muss mit enden .template.json.


defaultPlatform - Standardplattform
string. Erforderlich, wenn action = Build module images || action = Push module images || action = Generate deployment manifest. Zulässige Werte: amd64, windows-amd64, arm32v7, arm64v8. Standardwert. amd64.

In Ihrem .template.jsonkönnen Sie die Modulplattform nicht angegeben lassen. Für diese Module wird die Standardplattform verwendet.


defaultPlatform - Standardplattform
string. Erforderlich, wenn action = Build module images || action = Push module images || action = Generate deployment manifest. Zulässige Werte: amd64, windows-amd64 und arm32v7. Standardwert. amd64.

In Ihrem .template.jsonkönnen Sie die Modulplattform nicht angegeben lassen. Für diese Module wird die Standardplattform verwendet.


fillRegistryCredential - Hinzufügen von Registrierungsanmeldeinformationen zum Bereitstellungsmanifest
string. Erforderlich, wenn action = Push module images. Zulässige Werte: true, false. Standardwert. true.

Fügt die Registrierungsanmeldeinformationen zum Pushen von Docker-Images in das Bereitstellungsmanifest hinzu.


deploymentManifestOutputPath - Ausgabepfad
string. Erforderlich, wenn action == Generate deployment manifest. Standardwert. $(System.DefaultWorkingDirectory)/config/deployment.json.

Der Ausgabepfad des generierten Bereitstellungsmanifests.


validateGeneratedDeploymentManifest - Überprüfen des Schemas des generierten Bereitstellungsmanifests
string. Erforderlich, wenn action = Generate deployment manifest. Zulässige Werte: true, false. Standardwert. false.

Führen Sie diesen Schritt aus, wenn das generierte Bereitstellungsmanifest die Schemaüberprüfung nicht bestanden hat. Suchen Sie Azure IoT Edge deployment im JSON-Schemaspeicher nach dem neuesten Schema.


bypassModules - Modul umgehen
string. Optional. Verwenden Sie , wenn action = Push module images.

Wählt die Module aus, die Sie nicht erstellen oder pushen .template.jsonmüssen, gibt die Modulnamen an und trennt sie durch Kommas. Beispiel: Wenn Sie und SampleModule2 in und .template.json haben SampleModule1 und nur erstellen oder pushen SampleModule1möchten, legen Sie die Umgehungsmodule auf SampleModule2fest. Lassen Sie diese leer, wenn Sie alle Module in .template.jsonerstellen möchten.


Optionen für die Vorgangskontrolle

Alle Vorgänge verfügen zusätzlich zu ihren Eingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerungsoptionen und allgemeine Aufgabeneigenschaften.

Ausgabevariablen

Diese Aufgabe definiert die folgenden Ausgabevariablen, die Sie in nachgelagerten Schritten, Aufträgen und Phasen nutzen können.

DEPLOYMENT_FILE_PATH
Dies ist der Pfad der generierten Bereitstellungsdatei.

Hinweise

Verwenden Sie diese Aufgabe, um Anwendungen schnell und effizient für Azure IoT Edge zu erstellen, zu testen und bereitzustellen.

Diese Aufgabe unterstützt benutzerdefinierte Variablen. Wenn Sie nicht mit der Verwendung von Variablen in Pipelines vertraut sind, finden Sie weitere Informationen unter Definieren von Variablen.

Beispiele

Erstellen von Modulimages

Im folgenden YAML-Beispiel werden Modulimages erstellt:

- task: AzureIoTEdge@2
  displayName: AzureIoTEdge - Build module images
  inputs:
    action: Build module images
    templateFilePath: deployment.template.json
    defaultPlatform: amd64  

Pushen von Modulimages

Im folgenden YAML-Beispiel werden Modulimages gepusht:

variables:
  azureSubscriptionEndpoint: Contoso
  azureContainerRegistry: contoso.azurecr.io

steps:    
- task: AzureIoTEdge@2
  displayName: AzureIoTEdge - Push module images
  inputs:
    action: Push module images
    containerregistrytype: Azure Container Registry
    azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
    azureContainerRegistry: {"loginServer":"$(azureContainerRegistry)"}
    templateFilePath: deployment.template.json
    defaultPlatform: amd64
    fillRegistryCredential: true

Generieren des Bereitstellungsmanifests

Im folgenden YAML-Beispiel wird ein Bereitstellungsmanifest basierend auf der Vorlagendatei erstellt:

steps:    
- task: AzureIoTEdge@2
  displayName: AzureIoTEdge - Generate deployment manifest
  inputs:
    action: Generate deployment manifest
    templateFilePath: deployment.template.json
    defaultPlatform: amd64
    deploymentManifestOutputPath: $(System.DefaultWorkingDirectory)/config/deployment.json
    validateGeneratedDeploymentManifest: false

Bereitstellen auf IoT Edge-Geräten

Im folgenden YAML-Beispiel werden Modulimages bereitgestellt:

steps:
- task: AzureIoTEdge@2
  displayName: 'Azure IoT Edge - Deploy to IoT Edge devices'
  inputs:
    action: 'Deploy to IoT Edge devices'
    deploymentFilePath: $(System.DefaultWorkingDirectory)/config/deployment.json
    azureSubscription: $(azureSubscriptionEndpoint)
    iothubname: iothubname
    deploymentid: '$(System.TeamProject)-devops-deployment'
    priority: '0'
    deviceOption: 'Single Device'
    deviceId: deviceId

Weitere Beispiele

Schrittweise Beispiele für die Verwendung dieser Aktionen in Azure Pipelines finden Sie in den folgenden Artikeln:

Anforderungen

Anforderung Beschreibung
Pipelinetypen YAML, Klassischer Build, klassische Version
Wird ausgeführt auf Agent, DeploymentGroup
Forderungen Keine
Capabilities Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag.
Befehlseinschränkungen Any
Einstellbare Variablen Any
Agent-Version Alle unterstützten Agent-Versionen.
Aufgabenkategorie Entwickeln