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.
Nota
Esta tarefa não suporta a autenticação Resource Manager do Azure com a federação de identidade do fluxo de trabalho.
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 devices
implementa 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.json
de 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-amd64
arm32v7
. 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 SampleModule1
apenas , defina os módulos de ignorar como SampleModule2
SampleModule2
. 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:
- Integração contínua e implementação contínua em dispositivos do Azure IoT Edge (YAML)
- Integração contínua e implementação contínua em dispositivos IoT Edge do Azure (editor clássico)
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 |