Share via


AzureIoTEdge@2 - Tâche Azure IoT Edge v2

Utilisez cette tâche pour créer et déployer des images rapidement et efficacement sur Azure IoT Edge.

Cette tâche prend en charge les variables personnalisées. Si vous n’êtes pas familiarisé avec l’utilisation des variables dans Pipelines, consultez Définir des variables.

Syntaxe

# 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).

Entrées

action - Action
string. Obligatoire. Valeurs autorisées : Build module images, Push module images, Generate deployment manifest, Deploy to IoT Edge devices. Valeur par défaut : Build module images.

Sélectionne une action Azure IoT Edge.

Build module imagesgénère uniquement des modules (vous pouvez les utiliser pour case activée erreurs de compilation).

Push module images envoie des modules au registre de conteneurs.

Deploy to IoT Edge devicesdéploie le fichier de déploiement généré sur IoT Hub. (Nous vous recommandons de placer la Deploy tâche dans le pipeline de mise en production.)


deploymentFilePath - Fichier de déploiement
string. Nécessaire lorsque action == Deploy to IoT Edge devices. Valeur par défaut : $(System.DefaultWorkingDirectory)/config/deployment.json.

Sélectionne le fichier json de déploiement. Si cette tâche se trouve dans release pipeline, vous devez définir l’emplacement du fichier de déploiement dans l’artefact. (La valeur par défaut fonctionne pour la plupart des conditions.) Si cette tâche se trouve dans un pipeline de build, vous devez spécifier le chemin de sortie du manifeste de déploiement.


azureSubscription - L’abonnement Azure contient des IoT Hub
Alias d’entrée : connectedServiceNameARM. string. Nécessaire lorsque action == Deploy to IoT Edge devices.

Sélectionne un abonnement Azure qui contient IoT Hub.


iothubname - IoT Hub nom
string. Nécessaire lorsque action == Deploy to IoT Edge devices.

Sélectionne le IoT Hub.


deploymentid - ID de déploiement IoT Edge
string. Nécessaire lorsque action = Deploy to IoT Edge devices. Valeur par défaut : $(System.TeamProject)-devops-deployment.

Entre l’ID de déploiement IoT Edge. Si l’ID existe déjà, il sera remplacé. Cela comporte jusqu’à 128 lettres minuscules et chiffres, et les caractères suivants sont autorisés : -:+%_#*?!(),=@;'. Pour plus d’informations, consultez Déploiement d’Azure IoT Edge.


priority - priorité de déploiement IoT Edge
string. Nécessaire lorsque action = Deploy to IoT Edge devices. Valeur par défaut : 0.

Définit sur priority un entier positif pour résoudre les conflits de déploiement. Lorsque cette tâche est ciblée par plusieurs déploiements, un appareil utilise celui qui a la priorité la plus élevée ou, dans le cas de deux déploiements avec la même priorité, l’heure de création la plus récente. Pour plus d’informations, consultez Déploiement d’Azure IoT Edge.


deviceOption - Choisir un ou plusieurs appareils
string. Nécessaire lorsque action == Deploy to IoT Edge devices. Valeurs autorisées : Single Device, Multiple Devices.

En fonction des étiquettes, choisit de déployer sur un ou plusieurs appareils.


deviceId - ID d’appareil IoT Edge
string. Nécessaire lorsque deviceOption == Single Device.

Entre le IoT Edge device ID.


targetcondition - IoT Edge condition cible de l’appareil
string. Nécessaire lorsque deviceOption == Multiple Devices.

Entre les target condition appareils que vous souhaitez déployer. N’utilisez pas de guillemets doubles. Exemple : tags.building=9 et tags.environment='test'. Pour plus d’informations, consultez Déploiement d’Azure IoT Edge.


containerregistrytype - Type de registre de conteneurs
string. Nécessaire lorsque action = Push module images. Valeurs autorisées : Azure Container Registry, Generic Container Registry. Valeur par défaut : Azure Container Registry.

Sélectionne un Container Registry Type. Azure Container Registry est pour ACR et Generic Container Registry est pour les registres génériques, y compris docker hub.


dockerRegistryConnection - Connexion au Registre Docker
Alias d’entrée : dockerRegistryEndpoint. string. Nécessaire lorsque containerregistrytype = Generic Container Registry.

Sélectionne une connexion de registre Docker générique. Cela est requis pour la génération et l’envoi push.


azureSubscriptionEndpoint - Abonnement Azure
string. facultatif. Utilisez quand containerregistrytype = Azure Container Registry.

Sélectionne un abonnement Azure.


azureContainerRegistry - Azure Container Registry
string. Nécessaire lorsque containerregistrytype = Azure Container Registry.

Sélectionne un Azure Container Registry.


templateFilePath - Fichier .template.json
string. Nécessaire lorsque action = Build module images || action = Push module images || action = Generate deployment manifest. Valeur par défaut : deployment.template.json.

Chemin d’accès d’Azure IoT Edge solution .template.json. Ce fichier définit les modules et les itinéraires dans Azure IoT Edge solution. Le nom de fichier doit se terminer .template.jsonpar .


defaultPlatform - Plateforme par défaut
string. Nécessaire lorsque action = Build module images || action = Push module images || action = Generate deployment manifest. Valeurs autorisées : amd64, windows-amd64, arm32v7, arm64v8. Valeur par défaut : amd64.

Dans votre .template.json, vous pouvez laisser la plateforme de modules non spécifiée. Pour ces modules, la plateforme par défaut sera utilisée.


defaultPlatform - Plateforme par défaut
string. Nécessaire lorsque action = Build module images || action = Push module images || action = Generate deployment manifest. Valeurs autorisées : amd64, windows-amd64, arm32v7. Valeur par défaut : amd64.

Dans votre .template.json, vous pouvez laisser la plateforme de modules non spécifiée. Pour ces modules, la plateforme par défaut sera utilisée.


fillRegistryCredential - Ajouter des informations d’identification du Registre au manifeste de déploiement
string. Nécessaire lorsque action = Push module images. Valeurs autorisées : true, false. Valeur par défaut : true.

Ajoute les informations d’identification du Registre pour envoyer des images Docker au manifeste de déploiement.


deploymentManifestOutputPath - Chemin de sortie
string. Nécessaire lorsque action == Generate deployment manifest. Valeur par défaut : $(System.DefaultWorkingDirectory)/config/deployment.json.

Chemin de sortie du manifeste de déploiement généré.


validateGeneratedDeploymentManifest - Valider le schéma du manifeste de déploiement généré
string. Nécessaire lorsque action = Generate deployment manifest. Valeurs autorisées : true, false. Valeur par défaut : false.

Échouez à cette étape si le manifeste de déploiement généré ne passe pas la validation du schéma. Recherchez Azure IoT Edge deployment dans le magasin de schémas JSON pour trouver le schéma le plus récent.


bypassModules - Contourner le ou les modules
string. facultatif. Utilisez quand action = Push module images.

Sélectionne le ou les modules que vous n’avez pas besoin de générer ou d’envoyer (push) dans .template.json, spécifie les noms des modules et les sépare par des virgules. Exemple : si vous avez SampleModule1 et SampleModule2 dans votre .template.json et que vous souhaitez uniquement générer ou envoyer (push SampleModule1) , vous définissez les modules de contournement sur SampleModule2. Laissez ce vide si vous souhaitez générer tous les modules dans .template.json.


Options de contrôle de la tâche

Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâches. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.

Variables de sortie

Cette tâche définit les variables de sortie suivantes, que vous pouvez utiliser dans les étapes, les travaux et les étapes en aval.

DEPLOYMENT_FILE_PATH
Il s’agit du chemin d’accès du fichier de déploiement généré.

Notes

Utilisez cette tâche pour générer, tester et déployer des applications rapidement et efficacement sur Azure IoT Edge.

Cette tâche prend en charge les variables personnalisées. Si vous n’êtes pas familiarisé avec l’utilisation des variables dans les pipelines, consultez Définir des variables.

Exemples

Générer les images de module

L’exemple YAML suivant génère des images de module :

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

Envoyer les images de module

L’exemple YAML suivant envoie (push) des images de module :

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

Générer le manifeste de déploiement

L’exemple YAML suivant crée un manifeste de déploiement basé sur le fichier de modèle :

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

Déployer sur des appareils IoT Edge

L’exemple YAML suivant déploie des images de module :

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

Autres exemples

Pour obtenir des exemples pas à pas montrant comment utiliser ces actions dans Azure Pipelines, consultez les articles suivants :

Spécifications

Condition requise Description
Types de pipelines YAML, build classique, version classique
S’exécute sur Agent, DeploymentGroup
Demandes Aucun
Capabilities Cette tâche ne répond à aucune demande pour les tâches suivantes dans le travail.
Restrictions de commande Quelconque
Variables paramétrables Quelconque
Version de l’agent Toutes les versions d’agent prises en charge.
Catégorie de la tâche Build