AzureIoTEdge@2: tarea de Azure IoT Edge v2
Use esta tarea para compilar e implementar imágenes de forma rápida y eficaz en Azure IoT Edge.
Esta tarea admite variables personalizadas. Si no está familiarizado con el uso de variables en Pipelines, consulte Definición de variables.
Nota
Esta tarea no admite la autenticación de Azure Resource Manager con la federación de identidades de flujo de trabajo.
Sintaxis
# 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).
Entradas
action
- Acción
string
. Obligatorio. Valores permitidos: Build module images
, Push module images
, Generate deployment manifest
, Deploy to IoT Edge devices
. Valor predeterminado: Build module images
.
Selecciona una acción de Azure IoT Edge.
Build module images
solo compila módulos (puede usarlo para comprobar los errores de compilación).
Push module images
inserta módulos en el registro de contenedor.
Deploy to IoT Edge devices
implementa el archivo de implementación generado en IoT Hub. (Se recomienda colocar la Deploy
tarea en la canalización de versión).
deploymentFilePath
- Archivo de implementación
string
. Necesario cuando action == Deploy to IoT Edge devices
. Valor predeterminado: $(System.DefaultWorkingDirectory)/config/deployment.json
.
Selecciona el archivo JSON de implementación.
Si esta tarea está en release pipeline
, debe establecer la ubicación del archivo de implementación en el artefacto. (El valor predeterminado funciona para la mayoría de las condiciones). Si esta tarea se encuentra en una canalización de compilación, debe especificar la ruta de salida del manifiesto de implementación.
azureSubscription
- La suscripción de Azure contiene IoT Hub
Alias de entrada: connectedServiceNameARM
. string
. Necesario cuando action == Deploy to IoT Edge devices
.
Selecciona una suscripción de Azure que contiene IoT Hub.
iothubname
- nombre de IoT Hub
string
. Necesario cuando action == Deploy to IoT Edge devices
.
Selecciona el IoT Hub.
deploymentid
- id. de implementación de IoT Edge
string
. Necesario cuando action = Deploy to IoT Edge devices
. Valor predeterminado: $(System.TeamProject)-devops-deployment
.
Introduce el identificador de implementación de IoT Edge. Si el identificador ya existe, se invalidará.
Tiene hasta 128 letras minúsculas y números, y se permiten los caracteres siguientes: -:+%_#*?!(),=@;'
.
Para más información, consulte Implementación de Azure IoT Edge.
priority
- IoT Edge prioridad de implementación
string
. Necesario cuando action = Deploy to IoT Edge devices
. Valor predeterminado: 0
.
Establece en priority
un entero positivo para resolver conflictos de implementación. Cuando esta tarea se destina a varias implementaciones, un dispositivo usará el que tiene la prioridad más alta o, en el caso de dos implementaciones con la misma prioridad, la hora de creación más reciente.
Para más información, consulte Implementación de Azure IoT Edge.
deviceOption
- Elección de un solo dispositivo o varios
string
. Necesario cuando action == Deploy to IoT Edge devices
. Valores permitidos: Single Device
, Multiple Devices
.
Según las etiquetas, elige implementar en uno o varios dispositivos.
deviceId
- id. de dispositivo de IoT Edge
string
. Necesario cuando deviceOption == Single Device
.
Introduce el IoT Edge device ID
.
targetcondition
- IoT Edge condición de destino del dispositivo
string
. Necesario cuando deviceOption == Multiple Devices
.
Introduce los target condition
dispositivos que desea implementar. No use comillas dobles. Ejemplo: tags.building=9
y tags.environment='test'
.
Para más información, consulte Implementación de Azure IoT Edge.
containerregistrytype
- Tipo de registro de contenedor
string
. Necesario cuando action = Push module images
. Valores permitidos: Azure Container Registry
, Generic Container Registry
. Valor predeterminado: Azure Container Registry
.
Selecciona un Container Registry Type
.
Azure Container Registry
es para ACR y Generic Container Registry
es para registros genéricos, incluido Docker Hub.
dockerRegistryConnection
- Conexión del Registro de Docker
Alias de entrada: dockerRegistryEndpoint
. string
. Necesario cuando containerregistrytype = Generic Container Registry
.
Selecciona una conexión genérica del registro de Docker. Esto es necesario para la compilación y la inserción.
azureSubscriptionEndpoint
- Suscripción de Azure
string
. Opcional. Use cuando containerregistrytype = Azure Container Registry
.
Selecciona una suscripción de Azure.
azureContainerRegistry
- Azure Container Registry
string
. Necesario cuando containerregistrytype = Azure Container Registry
.
Selecciona un Azure Container Registry.
templateFilePath
- Archivo .template.json
string
. Necesario cuando action = Build module images || action = Push module images || action = Generate deployment manifest
. Valor predeterminado: deployment.template.json
.
Ruta de acceso de la solución .template.json
de Azure IoT Edge . Este archivo define los módulos y las rutas en azure IoT Edge solución. El nombre de archivo debe terminar con .template.json
.
defaultPlatform
- Plataforma predeterminada
string
. Necesario cuando action = Build module images || action = Push module images || action = Generate deployment manifest
. Valores permitidos: amd64
, windows-amd64
, arm32v7
, arm64v8
. Valor predeterminado: amd64
.
.template.json
En , puede dejar la plataforma de módulos sin especificar. Para estos módulos, se usará la plataforma predeterminada.
defaultPlatform
- Plataforma predeterminada
string
. Necesario cuando action = Build module images || action = Push module images || action = Generate deployment manifest
. Valores permitidos: amd64
, windows-amd64
y arm32v7
. Valor predeterminado: amd64
.
.template.json
En , puede dejar la plataforma de módulos sin especificar. Para estos módulos, se usará la plataforma predeterminada.
fillRegistryCredential
- Adición de credenciales del Registro al manifiesto de implementación
string
. Necesario cuando action = Push module images
. Valores permitidos: true
, false
. Valor predeterminado: true
.
Agrega la credencial del Registro para insertar imágenes de Docker en el manifiesto de implementación.
deploymentManifestOutputPath
- Ruta de acceso de salida
string
. Necesario cuando action == Generate deployment manifest
. Valor predeterminado: $(System.DefaultWorkingDirectory)/config/deployment.json
.
Ruta de acceso de salida del manifiesto de implementación generado.
validateGeneratedDeploymentManifest
- Validación del esquema del manifiesto de implementación generado
string
. Necesario cuando action = Generate deployment manifest
. Valores permitidos: true
, false
. Valor predeterminado: false
.
Produzca un error en este paso si el manifiesto de implementación generado no pasa la validación del esquema. Busque Azure IoT Edge deployment
en el Almacén de esquemas JSON para buscar el esquema más reciente.
bypassModules
- Omitir módulos
string
. Opcional. Use cuando action = Push module images
.
Selecciona los módulos que no necesita para compilar o insertar en .template.json
, especifica los nombres de módulo y los separa con comas.
Ejemplo: si tiene y en y solo quiere compilar o insertar SampleModule1
, establezca los módulos de omisión como SampleModule2
..template.json
SampleModule2
SampleModule1
Deje esta opción vacía si desea compilar todos los módulos de .template.json
.
Opciones de control de tareas
Todas las tareas tienen opciones de control además de las entradas de tareas. Para obtener más información, vea Opciones de control y propiedades de tareas comunes.
Variables de salida
Esta tarea define las siguientes variables de salida, que puede consumir en pasos, trabajos y fases de bajada.
DEPLOYMENT_FILE_PATH
Esta es la ruta de acceso del archivo de implementación generado.
Comentarios
Use esta tarea para compilar, probar e implementar aplicaciones de forma rápida y eficaz para Azure IoT Edge.
Esta tarea admite variables personalizadas. Si no está familiarizado con cómo usar variables en Pipelines, consulte Definir variables.
Ejemplos
Generar imágenes de módulo
En el siguiente ejemplo de YAML se compilan imágenes de módulo:
- task: AzureIoTEdge@2
displayName: AzureIoTEdge - Build module images
inputs:
action: Build module images
templateFilePath: deployment.template.json
defaultPlatform: amd64
Insertar imágenes de módulo
En el siguiente ejemplo de YAML se insertan imágenes de módulo:
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
Generar el manifiesto de implementación
En el siguiente ejemplo de YAML se crea un manifiesto de implementación basado en el archivo de plantilla:
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
Implementación en dispositivos de IoT Edge
En el siguiente ejemplo de YAML se implementan imágenes de módulo:
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
Más ejemplos
Para obtener ejemplos paso a paso de cómo usar estas acciones en Azure Pipelines, consulte los siguientes artículos:
- Integración e implementación continuas en dispositivos Azure IoT Edge (YAML)
- Integración e implementación continuas en dispositivos Azure IoT Edge (editor clásico)
Requisitos
Requisito | Descripción |
---|---|
Tipos de canalización | YAML, compilación clásica, versión clásica |
Se ejecuta en | Agente, DeploymentGroup |
Peticiones | Ninguno |
Capabilities | Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo. |
Restricciones de comandos | Any |
Variables que se pueden establecer | Any |
Versión del agente | Todas las versiones de agente compatibles. |
Categoría de la tarea: | Build |