Freigeben über


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.

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 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 - 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 IDein.


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 Typeaus. 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.jsonenden.


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 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.jsonkö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.jsonerstellen oder übertragen müssen, gibt die Modulnamen an und trennt sie durch Kommas. Beispiel: Wenn Sie in Ihrer .template.jsonSampleModule1 und SampleModule2 haben und nur SampleModule1erstellen oder pushen möchten, legen Sie die Umgehungsmodule als SampleModule2fest. Lassen Sie dies leer, wenn Sie alle Module in .template.jsonerstellen 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:

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