Compartilhar via


AzureIoTEdge@2 – tarefa do Azure IoT Edge v2

Use essa tarefa para criar e implantar imagens de forma rápida e eficiente no Azure IoT Edge.

Essa tarefa dá suporte a variáveis personalizadas. Se você não estiver familiarizado com como usar variáveis em Pipelines, confira Definir variáveis.

Sintaxe

# 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órios. Valores permitidos: Build module images, Push module images, Generate deployment manifest, Deploy to IoT Edge devices. Valor padrão: Build module images.

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

Build module imagescompila apenas módulos (você pode usá-lo para marcar erros de compilação).

Push module images envia módulos por push para o registro de contêiner.

Deploy to IoT Edge devicesimplanta o arquivo de implantação gerado no Hub IoT. (É recomendável colocar a Deploy tarefa no pipeline de lançamento.)


deploymentFilePath - Arquivo de implantação
string. Obrigatório quando action == Deploy to IoT Edge devices. Valor padrão: $(System.DefaultWorkingDirectory)/config/deployment.json.

Seleciona o arquivo json de implantação. Se essa tarefa estiver no release pipeline, você precisará definir o local do arquivo de implantação no artefato. (O valor padrão funciona para a maioria das condições.) Se essa tarefa estiver em um pipeline de build, você deverá especificar o caminho de saída do manifesto de implantação.


azureSubscription - A assinatura do Azure contém Hub IoT
Alias de entrada: connectedServiceNameARM. string. Obrigatório quando action == Deploy to IoT Edge devices.

Seleciona uma assinatura do Azure que contém Hub IoT.


iothubname - Hub IoT nome
string. Obrigatório quando action == Deploy to IoT Edge devices.

Seleciona o Hub IoT.


deploymentid - IoT Edge ID de implantação
string. Obrigatório quando action = Deploy to IoT Edge devices. Valor padrão: $(System.TeamProject)-devops-deployment.

Insira a ID de Implantação do IoT Edge. Se a ID já existir, ela será substituída. Isso tem até 128 letras minúsculas e números e os seguintes caracteres são permitidos: -:+%_#*?!(),=@;'. Para obter mais informações, consulte Implantação de IoT Edge do Azure.


priority - IoT Edge prioridade de implantação
string. Obrigatório quando action = Deploy to IoT Edge devices. Valor padrão: 0.

Define o priority como um inteiro positivo para resolve conflitos de implantação. Quando essa tarefa é direcionada por várias implantações, um dispositivo usará aquela com a prioridade mais alta ou, no caso de duas implantações com a mesma prioridade, a hora de criação mais recente. Para obter mais informações, consulte Implantação de IoT Edge do Azure.


deviceOption - Escolher um/vários dispositivos
string. Obrigatório quando action == Deploy to IoT Edge devices. Valores Permitidos: Single Device e Multiple Devices.

De acordo com as marcas, opta por implantar em um ou vários dispositivos.


deviceId - IoT Edge ID do dispositivo
string. Obrigatório quando deviceOption == Single Device.

Insira o IoT Edge device ID.


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

Insira o target condition dos dispositivos que você deseja implantar. Não use aspas duplas. Exemplo: tags.building=9 e tags.environment='test'. Para obter mais informações, consulte Implantação de IoT Edge do Azure.


containerregistrytype - Tipo de registro de contêiner
string. Obrigatório quando action = Push module images. Valores Permitidos: Azure Container Registry e Generic Container Registry. Valor padrão: Azure Container Registry.

Seleciona um Container Registry Type. Azure Container Registry é para ACR e Generic Container Registry é para registros genéricos, incluindo o docker hub.


dockerRegistryConnection - Conexão do Registro do Docker
Alias de entrada: dockerRegistryEndpoint. string. Obrigatório quando containerregistrytype = Generic Container Registry.

Seleciona uma conexão genérica do Registro do Docker. Isso é necessário para compilar e enviar por push.


azureSubscriptionEndpoint - Assinatura do Azure
string. Opcional. Use quando containerregistrytype = Azure Container Registry.

Seleciona uma assinatura do Azure.


azureContainerRegistry - Registro de Contêiner do Azure
string. Obrigatório quando containerregistrytype = Azure Container Registry.

Seleciona um Registro de Contêiner do Azure.


templateFilePath - Arquivo .template.json
string. Obrigatório quando action = Build module images || action = Push module images || action = Generate deployment manifest. Valor padrão: deployment.template.json.

O caminho da solução .template.jsonde IoT Edge do Azure. Esse arquivo define os módulos e as rotas na solução de IoT Edge do Azure. O nome do arquivo deve terminar com .template.json.


defaultPlatform - Plataforma padrão
string. Obrigatório quando action = Build module images || action = Push module images || action = Generate deployment manifest. Valores permitidos: amd64, windows-amd64, arm32v7, arm64v8. Valor padrão: amd64.

Em seu .template.json, você pode deixar a plataforma de módulos não especificada. Para esses módulos, a plataforma padrão será usada.


defaultPlatform - Plataforma padrão
string. Obrigatório quando action = Build module images || action = Push module images || action = Generate deployment manifest. Valores permitidos: amd64, windows-amd64, arm32v7. Valor padrão: amd64.

Em seu .template.json, você pode deixar a plataforma de módulos não especificada. Para esses módulos, a plataforma padrão será usada.


fillRegistryCredential - Adicionar credencial do Registro ao manifesto de implantação
string. Obrigatório quando action = Push module images. Valores Permitidos: true e false. Valor padrão: true.

Adiciona a credencial do Registro para enviar imagens do Docker por push ao manifesto de implantação.


deploymentManifestOutputPath - Caminho de saída
string. Obrigatório quando action == Generate deployment manifest. Valor padrão: $(System.DefaultWorkingDirectory)/config/deployment.json.

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


validateGeneratedDeploymentManifest - Validar o esquema do manifesto de implantação gerado
string. Obrigatório quando action = Generate deployment manifest. Valores Permitidos: true e false. Valor padrão: false.

Falha nesta etapa se o manifesto de implantação gerado não passar na validação de esquema. Pesquise Azure IoT Edge deployment no Repositório de Esquemas JSON para encontrar o esquema mais recente.


bypassModules - Ignorar módulos
string. Opcional. Use quando action = Push module images.

Seleciona os módulos que você não precisa criar ou enviar por push, .template.jsonespecifica os nomes dos módulos e os separa com vírgulas. Exemplo: se você tiver SampleModule1 e SampleModule2 em seu .template.json e quiser apenas compilar ou efetuar push SampleModule1, defina os módulos de bypass como SampleModule2. Deixe isso vazio se quiser criar todos os módulos no .template.json.


Opções de controle da tarefa

Todas as tarefas têm opções de controle além de suas entradas de tarefa. Para obter mais informações, consulte Opções de controle e propriedades comuns da tarefa.

Variáveis de saída

Essa tarefa define as variáveis de saída a seguir, que você pode consumir em etapas downstream, trabalhos e estágios.

DEPLOYMENT_FILE_PATH
Esse é o caminho do arquivo de implantação gerado.

Comentários

Use essa tarefa para compilar, testar e implantar aplicativos de maneira rápida e eficiente no Azure IoT Edge.

Essa tarefa dá suporte a variáveis personalizadas. Se você não estiver familiarizado com como usar variáveis em Pipelines, consulte Definir variáveis.

Exemplos

Criar imagens de módulo

O exemplo do YAML a seguir cria imagens de módulo:

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

Efetuar push de imagens de módulo

O exemplo do YAML a seguir envia imagens 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

Gerar o manifesto de implantação

O exemplo do YAML a seguir cria um manifesto de implantação com base no arquivo 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

Implantar em dispositivos IoT Edge

O exemplo do YAML a seguir implanta imagens 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

Mais exemplos

Para obter exemplos passo a passo de como usar essas ações no Azure Pipelines, confira os seguintes artigos:

Requisitos

Requisito Descrição
Tipos de pipeline YAML, build clássico, versão clássica
Executa em Agent, DeploymentGroup
Demandas Nenhum
Funcionalidades Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho.
Restrições de comando Qualquer
Variáveis configuráveis Qualquer
Versão do agente Todas as versões do agente com suporte.
Categoria da tarefa Build