Partilhar via


AzureIoTEdge@2 - Tarefa do Azure IoT Edge v2

Utilize esta tarefa para criar e implementar imagens de forma rápida e eficiente no Azure IoT Edge.

Esta tarefa suporta variáveis personalizadas. Se não estiver familiarizado com a utilização de variáveis em Pipelines, veja Definir variáveis.

Syntax

# 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 - Ação
string. Obrigatório. Valores permitidos: Build module images, Push module images, Generate deployment manifest, Deploy to IoT Edge devices. Valor predefinido: Build module images.

Seleciona uma ação de IoT Edge do Azure.

Build module images só cria módulos (pode utilizá-lo para verificar erros de compilação).

Push module images envia módulos para o registo de contentor.

Deploy to IoT Edge devicesimplementa o ficheiro de implementação gerado para Hub IoT. (Recomendamos que coloque a Deploy tarefa no pipeline de versão.)


deploymentFilePath - Ficheiro de implementação
string. Necessário quando action == Deploy to IoT Edge devices. Valor predefinido: $(System.DefaultWorkingDirectory)/config/deployment.json.

Seleciona o ficheiro json de implementação. Se esta tarefa estiver no release pipeline, terá de definir a localização do ficheiro de implementação no artefacto. (O valor predefinido funciona para a maioria das condições.) Se esta tarefa estiver num pipeline de compilação, tem de especificar o caminho de saída do manifesto de implementação.


azureSubscription - A subscrição do Azure contém Hub IoT
Alias de entrada: connectedServiceNameARM. string. Necessário quando action == Deploy to IoT Edge devices.

Seleciona uma subscrição do Azure que contém Hub IoT.


iothubname - Hub IoT nome
string. Necessário quando action == Deploy to IoT Edge devices.

Seleciona o Hub IoT.


deploymentid - IoT Edge ID de implementação
string. Necessário quando action = Deploy to IoT Edge devices. Valor predefinido: $(System.TeamProject)-devops-deployment.

Introduz o ID de Implementação do IoT Edge. Se o ID já existir, será substituído. Tem até 128 letras minúsculas e números e são permitidos os seguintes carateres: -:+%_#*?!(),=@;'. Para obter mais informações, veja Implementação do Azure IoT Edge.


priority - IoT Edge prioridade de implementação
string. Necessário quando action = Deploy to IoT Edge devices. Valor predefinido: 0.

Define o priority como um número inteiro positivo para resolver conflitos de implementação. Quando esta tarefa é direcionada por várias implementações, um dispositivo utilizará o com a prioridade mais alta ou, no caso de duas implementações com a mesma prioridade, a hora de criação mais recente. Para obter mais informações, veja Implementação do Azure IoT Edge.


deviceOption - Escolher dispositivo único/múltiplo
string. Necessário quando action == Deploy to IoT Edge devices. Valores permitidos: Single Device, Multiple Devices.

De acordo com as etiquetas, opta por implementar em dispositivos individuais ou múltiplos.


deviceId - ID do dispositivo IoT Edge
string. Necessário quando deviceOption == Single Device.

Introduz o IoT Edge device ID.


targetcondition - IoT Edge condição de destino do dispositivo
string. Necessário quando deviceOption == Multiple Devices.

Introduz os target condition dispositivos que pretende implementar. Não utilize aspas duplas. Exemplo: tags.building=9 e tags.environment='test'. Para obter mais informações, veja Implementação do Azure IoT Edge.


containerregistrytype - Tipo de registo de contentor
string. Necessário quando action = Push module images. Valores permitidos: Azure Container Registry, Generic Container Registry. Valor predefinido: Azure Container Registry.

Seleciona um Container Registry Type. Azure Container Registry destina-se ao ACR e Generic Container Registry destina-se a registos genéricos, incluindo o docker Hub.


dockerRegistryConnection - Ligação do Registo do Docker
Alias de entrada: dockerRegistryEndpoint. string. Necessário quando containerregistrytype = Generic Container Registry.

Seleciona uma ligação genérica do registo do Docker. Isto é necessário para compilar e emitir.


azureSubscriptionEndpoint - Subscrição do Azure
string. Opcional. Utilize quando containerregistrytype = Azure Container Registry.

Seleciona uma subscrição do Azure.


azureContainerRegistry - Azure Container Registry
string. Necessário quando containerregistrytype = Azure Container Registry.

Seleciona uma Azure Container Registry.


templateFilePath - Ficheiro .template.json
string. Necessário quando action = Build module images || action = Push module images || action = Generate deployment manifest. Valor predefinido: deployment.template.json.

O caminho da solução .template.jsonde IoT Edge do Azure. Este ficheiro define os módulos e rotas na solução de IoT Edge do Azure. O nome do ficheiro tem de terminar com .template.json.


defaultPlatform - Plataforma predefinida
string. Necessário quando action = Build module images || action = Push module images || action = Generate deployment manifest. Valores permitidos: amd64, windows-amd64, arm32v7, arm64v8. Valor predefinido: amd64.

No seu .template.json, pode deixar a plataforma de módulos não especificada. Para estes módulos, será utilizada a plataforma predefinida.


defaultPlatform - Plataforma predefinida
string. Necessário quando action = Build module images || action = Push module images || action = Generate deployment manifest. Valores permitidos: amd64, , windows-amd64arm32v7. Valor predefinido: amd64.

No seu .template.json, pode deixar a plataforma de módulos não especificada. Para estes módulos, será utilizada a plataforma predefinida.


fillRegistryCredential - Adicionar credenciais de registo ao manifesto de implementação
string. Necessário quando action = Push module images. Valores permitidos: true, false. Valor predefinido: true.

Adiciona a credencial de registo para enviar imagens do Docker para o manifesto de implementação.


deploymentManifestOutputPath - Caminho de saída
string. Necessário quando action == Generate deployment manifest. Valor predefinido: $(System.DefaultWorkingDirectory)/config/deployment.json.

O caminho de saída do manifesto de implementação gerado.


validateGeneratedDeploymentManifest - Validar o esquema do manifesto de implementação gerado
string. Necessário quando action = Generate deployment manifest. Valores permitidos: true, false. Valor predefinido: false.

Falhar este passo se o manifesto de implementação gerado não passar na validação do esquema. Procure Azure IoT Edge deployment no Arquivo de Esquemas JSON para encontrar o esquema mais recente.


bypassModules - Ignorar módulo(s)
string. Opcional. Utilize quando action = Push module images.

Seleciona os módulos que não precisa de criar ou emitir em .template.json, especifica os nomes dos módulos e separa-os com vírgulas. Exemplo: se tiver SampleModule1 e no e .template.json quiser criar ou emitir SampleModule1apenas , defina os módulos de ignorar como SampleModule2SampleModule2 . Deixe isto vazio se quiser criar todos os módulos no .template.json.


Opções de controlo de tarefas

Todas as tarefas têm opções de controlo para além das entradas de tarefas. Para obter mais informações, veja Opções de controlo e propriedades de tarefas comuns.

Variáveis de saída

Esta tarefa define as seguintes variáveis de saída, que pode consumir em passos, tarefas e fases a jusante.

DEPLOYMENT_FILE_PATH
Este é o caminho do ficheiro de implementação gerado.

Observações

Utilize esta tarefa para criar, testar e implementar aplicações de forma rápida e eficiente no Azure IoT Edge.

Esta tarefa suporta variáveis personalizadas. Se não estiver familiarizado com a utilização de variáveis em Pipelines, veja Definir variáveis.

Exemplos

Criar imagens do módulo

O exemplo yaml seguinte compila imagens do módulo:

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

Enviar imagens do módulo

O exemplo yaml seguinte emite imagens do 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

Gerar manifesto de implementação

O exemplo YAML seguinte cria um manifesto de implementação com base no ficheiro de modelo:

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

Implementar em dispositivos IoT Edge

O exemplo yaml seguinte implementa imagens do 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

Mais exemplos

Para obter exemplos passo a passo sobre como utilizar estas ações nos Pipelines do Azure, veja os seguintes artigos:

Requisitos

Requisito Description
Tipos de pipeline YAML, Compilação clássica, Versão clássica
É executado em Agent, DeploymentGroup
Exigências Nenhuma
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes na tarefa.
Restrições de comandos Qualquer
Variáveis de definição Qualquer
Versão do agente Todas as versões de agente suportadas.
Categoria da tarefa Compilação