Partilhar via


AzureIoTEdge@2 - Tarefa do Azure IoT Edge v2

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

Esta tarefa suporta variáveis personalizadas. Se você não estiver familiarizado com como usar variáveis em Pipelines, consulte 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).

Insumos

action - Ação
string. Obrigatório. 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 do Azure IoT Edge.

Build module images apenas constrói módulos (você pode usá-lo para verificar erros de compilação).

Push module images envia módulos para o registro do contêiner.

Deploy to IoT Edge devices implanta o arquivo de implantação gerado no Hub IoT. (Recomendamos colocar a tarefa Deploy no pipeline de lançamento.)


deploymentFilePath - do arquivo de implantação
string. Necessá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 em 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 compilação, você deverá especificar o caminho de saída do manifesto de implantação.


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

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


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

Seleciona o Hub IoT.


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

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


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

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


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

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


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

Introduz o IoT Edge device ID.


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

Introduz o target condition de dispositivos que pretende implementar. Não use aspas duplas. Exemplo: tags.building=9 e tags.environment='test'. Para obter mais informações, consulte de implantaçã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 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 hub docker.


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

Seleciona uma conexão de registro genérica do Docker. Isso é necessário para construir e empurrar.


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

Seleciona uma assinatura do Azure.


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

Especifica um Registro de Contêiner do Azure. Este valor deve ser especificado no formato json.

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

templateFilePath - .template.json arquivo
string. Necessá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 Azure IoT Edge .template.json. Este arquivo define os módulos e rotas na solução Azure IoT Edge. O nome do arquivo deve terminar com .template.json.


defaultPlatform - Plataforma padrão
string. Necessá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.

No 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. Necessário quando action = Push module images. Valores permitidos: true, false. Valor padrão: true.

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


deploymentManifestOutputPath - Caminho de saída
string. Necessá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. Necessário quando action = Generate deployment manifest. Valores permitidos: true, false. Valor padrão: false.

Falha nesta etapa se o manifesto de implantação gerado não passar na validação do esquema. Pesquise Azure IoT Edge deployment em de Armazenamento de Esquema JSON para encontrar o esquema mais recente.


bypassModules - Módulo(s) de bypass
string. Opcional. Use quando action = Push module images.

Seleciona o(s) módulo(s) que você não precisa criar ou enviar por push .template.json, especifica 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 construir ou enviar SampleModule1, defina os módulos de bypass como SampleModule2. Deixe isso vazio se você gostaria de construir todos os módulos em .template.json.


Opções de controlo de tarefas

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

Variáveis de saída

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

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

Observações

Use esta tarefa para criar, testar e implantar aplicativos de forma rápida e eficiente no Azure IoT Edge.

Esta tarefa suporta 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 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  

Enviar imagens do módulo

O exemplo de 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 manifesto de implantação

O exemplo de 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

Implementar em dispositivos IoT Edge

O exemplo de 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, consulte os seguintes artigos:

Requerimentos

Requisito Descrição
Tipos de pipeline YAML, Construção clássica, Versão clássica
Funciona em Agente, DeploymentGroup
Exigências Nenhum
Capacidades Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes no trabalho.
Restrições de comando Qualquer
Variáveis configuráveis Qualquer
Versão do agente Todas as versões de agente suportadas.
Categoria de tarefa Construir