Compartir vía


AzureIoTEdge@2: tarea 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 cómo usar variables en Canalizaciones, consulte definir variables.

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

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 tarea Deploy en la canalización de versión).


archivo de implementación de deploymentFilePath -
string. Obligatorio 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 está en una canalización de compilación, debe especificar la ruta de acceso de salida del manifiesto de implementación.


azureSubscription - suscripción de Azure contiene de IoT Hub
Alias de entrada: connectedServiceNameARM. string. Obligatorio cuando action == Deploy to IoT Edge devices.

Selecciona una suscripción de Azure que contiene IoT Hub.


iothubname - nombre de IoT Hub
string. Obligatorio cuando action == Deploy to IoT Edge devices.

Selecciona IoT Hub.


deploymentid - de identificador de implementación de IoT Edge
string. Obligatorio 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á. Esto tiene hasta 128 letras minúsculas y números, y se permiten los siguientes caracteres: -:+%_#*?!(),=@;'. Para más información, consulte implementación de Azure IoT Edge.


priority - de prioridad de implementación de IoT Edge
string. Obligatorio cuando action = Deploy to IoT Edge devices. Valor predeterminado: 0.

Establece el priority en un entero positivo para resolver conflictos de implementación. Cuando varias implementaciones tienen como destino esta tarea, 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 - Elegir una o varias de dispositivo
string. Obligatorio 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 - de identificador de dispositivo IoT Edge
string. Obligatorio cuando deviceOption == Single Device.

Introduce el device IDde IoT Edge.


targetcondition - condición de destino del dispositivo IoT Edge
string. Obligatorio cuando deviceOption == Multiple Devices.

Introduce la target condition de 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.


tipo de registro de contenedor de containerregistrytype -
string. Obligatorio 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 - de conexión del Registro de Docker
Alias de entrada: dockerRegistryEndpoint. string. Obligatorio cuando containerregistrytype = Generic Container Registry.

Selecciona una conexión genérica del Registro de Docker. Esto es necesario para la compilación e inserción.


azureSubscriptionEndpoint - de suscripción de Azure
string. Opcional. Use cuando containerregistrytype = Azure Container Registry.

Selecciona una suscripción de Azure.


azureContainerRegistry - azure Container Registry
string. Obligatorio cuando containerregistrytype = Azure Container Registry.

Especifica una instancia de Azure Container Registry. Este valor debe especificarse en formato json.

azureContainerRegistry: '{"loginServer": "contoso.azurecr.io"}

de archivos de templateFilePath - .template.json
string. Obligatorio 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 de Azure IoT Edge .template.json. Este archivo define los módulos y las rutas de la solución de Azure IoT Edge. El nombre de archivo debe terminar con .template.json.


defaultPlatform - de plataforma predeterminada
string. Obligatorio cuando action = Build module images || action = Push module images || action = Generate deployment manifest. Valores permitidos: amd64, windows-amd64, arm32v7, arm64v8. Valor predeterminado: amd64.

En la .template.json, puede dejar sin especificar la plataforma de módulos. Para estos módulos, se usará la plataforma predeterminada.


defaultPlatform - de plataforma predeterminada
string. Obligatorio cuando action = Build module images || action = Push module images || action = Generate deployment manifest. Valores permitidos: amd64, windows-amd64, arm32v7. Valor predeterminado: amd64.

En la .template.json, puede dejar sin especificar la plataforma de módulos. Para estos módulos, se usará la plataforma predeterminada.


fillRegistryCredential - Agregar credenciales del Registro al manifiesto de implementación
string. Obligatorio 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. Obligatorio cuando action == Generate deployment manifest. Valor predeterminado: $(System.DefaultWorkingDirectory)/config/deployment.json.

Ruta de acceso de salida del manifiesto de implementación generado.


validateGeneratedDeploymentManifest - Validar el esquema del manifiesto de implementación generado
string. Obligatorio 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 almacén de esquemas JSON para buscar el esquema más reciente.


módulos de omisión de bypassModules -
string. Opcional. Use cuando action = Push module images.

Selecciona los módulos que no es necesario compilar o insertar en .template.json, especifica los nombres de módulo y los separa con comas. Ejemplo: si tiene SampleModule1 y SampleModule2 en la .template.json y solo quiere compilar o insertar SampleModule1, establezca los módulos de omisión como SampleModule2. Deje esto vacío si desea compilar todos los módulos en .template.json.


Opciones de control de tareas

Todas las tareas tienen opciones de control además de sus entradas de tarea. Para obtener más información, consulte 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.

Observaciones

Use esta tarea para compilar, probar e implementar aplicaciones 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 canalizaciones, consulte Definir variables.

Ejemplos

Generar imágenes de módulo

En el ejemplo de YAML siguiente 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 ejemplo de YAML siguiente 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 ejemplo de YAML siguiente 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 ver ejemplos paso a paso sobre cómo usar estas acciones en Azure Pipelines, consulte los siguientes artículos:

Requisitos

Requisito Descripción
Tipos de canalización YAML, compilación clásica, versión clásica
Se ejecuta en Agente, DeploymentGroup
demandas Ninguno
funcionalidades de Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo.
restricciones de comandos Cualquiera
variables settable Cualquiera
Versión del agente Todas las versiones de agente admitidas.
Categoría de tarea Construir