Compartir a través de


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.

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 devicesimplementa 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.jsonde 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.jsonEn , 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.jsonEn , 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.jsonSampleModule2SampleModule1 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:

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