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.
Hinweis
Diese Aufgabe unterstützt keine Azure Resource Manager-Authentifizierung mit Workflowidentitätsverbund.
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 devices
stellt 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 pipeline
befindet, 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 ID
ein.
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.json
kö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.json
kö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.json
mü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 SampleModule1
möchten, legen Sie die Umgehungsmodule auf SampleModule2
fest. Lassen Sie diese leer, wenn Sie alle Module in .template.json
erstellen 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:
- Continuous Integration und Continuous Deployment für Azure IoT Edge-Geräte (YAML)
- Continuous Integration und Continuous Deployment für Azure IoT Edge-Geräte (klassischer Editor)
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 |