AzureIoTEdge@2 – Azure IoT Edge v2-Aufgabe
Verwenden Sie diese Aufgabe, um Bilder 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, lesen Sie 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).
Eingänge
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
nur Module erstellt (Sie können es verwenden, um Kompilierungsfehler zu überprüfen).
Push module images
pusht Module an die Containerregistrierung.
Deploy to IoT Edge devices
stellt die generierte Bereitstellungsdatei im IoT Hub bereit. (Es wird empfohlen, die Deploy
Aufgabe in die Releasepipeline zu setzen.)
deploymentFilePath
-
Bereitstellungsdatei
string
. Erforderlich, wenn action == Deploy to IoT Edge devices
. Standardwert: $(System.DefaultWorkingDirectory)/config/deployment.json
.
Wählt die JSON-Bereitstellungsdatei 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
-
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 den 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 lösen. Wenn diese Aufgabe auf mehrere Bereitstellungen ausgerichtet ist, verwendet ein Gerät das Gerät mit der höchsten Priorität oder bei zwei Bereitstellungen mit der gleichen Priorität die neueste Erstellungszeit.
Weitere Informationen finden Sie unter Azure IoT Edge-Bereitstellung.
deviceOption
-
Auswählen eines einzelnen/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 einzelnen oder mehreren Geräten ausgewählt.
deviceId
-
IoT Edge-Geräte-ID
string
. Erforderlich, wenn deviceOption == Single Device
.
Gibt das IoT Edge-device ID
ein.
targetcondition
-
IoT Edge-Gerätezielbedingung
string
. Erforderlich, wenn deviceOption == Multiple Devices
.
Gibt die target condition
von Geräten 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 eine Container Registry Type
aus.
Azure Container Registry
gilt für ACR, und Generic Container Registry
ist für generische Registrierungen einschließlich Docker Hub vorgesehen.
dockerRegistryConnection
-
Docker Registry Connection
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
. Wahlfrei. Wird verwendet, wenn containerregistrytype = Azure Container Registry
.
Wählt ein Azure-Abonnement aus.
azureContainerRegistry
-
Azure Container Registry
string
. Erforderlich, wenn containerregistrytype = Azure Container Registry
.
Gibt eine Azure-Containerregistrierung an. Dieser Wert sollte im json
Format angegeben werden.
azureContainerRegistry: '{"loginServer": "contoso.azurecr.io"}
templateFilePath
-
.template.json Datei-
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 der Azure IoT Edge-Lösung. Der Dateiname muss mit .template.json
enden.
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 spezifiziert 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
, arm32v7
. Standardwert: amd64
.
In Ihrem .template.json
können Sie die Modulplattform nicht spezifiziert 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 für das Pushen von Docker-Images an 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 keine Schemaüberprüfung übergibt. Suchen Sie Azure IoT Edge deployment
in JSON-Schemaspeicher-, um das neueste Schema zu finden.
bypassModules
-
Umgehungsmodul(n)
string
. Wahlfrei. Wird verwendet, wenn action = Push module images
.
Wählt die Module aus, die Sie nicht in .template.json
erstellen oder übertragen müssen, gibt die Modulnamen an und trennt sie durch Kommas.
Beispiel: Wenn Sie in Ihrer .template.json
SampleModule1
und SampleModule2
haben und nur SampleModule1
erstellen oder pushen möchten, legen Sie die Umgehungsmodule als SampleModule2
fest. Lassen Sie dies leer, wenn Sie alle Module in .template.json
erstellen möchten.
Aufgabensteuerungsoptionen
Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerelementoptionen und allgemeinen Aufgabeneigenschaften.
Ausgabevariablen
Mit dieser Aufgabe werden die folgenden Ausgabevariablendefiniert, die Sie in nachgeschalteten Schritten, Aufträgen und Phasen verwenden können.
DEPLOYMENT_FILE_PATH
Dies ist der Pfad der generierten Bereitstellungsdatei.
Bemerkungen
Verwenden Sie diese Aufgabe, um Anwendungen schnell und effizient in 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, lesen Sie 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 Modulbilder verschoben:
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:
- kontinuierliche Integration und kontinuierliche Bereitstellung auf Azure IoT Edge-Geräten (YAML)
- kontinuierliche Integration und kontinuierliche Bereitstellung auf Azure IoT Edge-Geräten (klassischem Editor)
Anforderungen
Anforderung | BESCHREIBUNG |
---|---|
Pipelinetypen | YAML, Classic Build, Classic Release |
Läuft auf | Agent, DeploymentGroup |
Anforderungen | Nichts |
Funktionen | Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag. |
Befehlseinschränkungen | Jegliche |
Settable-Variablen | Jegliche |
Agentversion | Alle unterstützten Agentversionen. |
Vorgangskategorie | Bauen |