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.
Notes
Cette tâche ne prend pas en charge l’authentification Azure Resource Manager avec la fédération d’identité de workflow.
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 images
gé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 devices
dé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.json
par .
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 :
- Intégration continue et déploiement continu sur les appareils Azure IoT Edge (YAML)
- Intégration continue et déploiement continu sur des appareils Azure IoT Edge (éditeur classique)
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 |