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.
Observação
Essa tarefa não dá suporte à autenticação de Resource Manager do Azure com federação de identidade de fluxo de trabalho.
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 images
compila 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 devices
implanta 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.json
de 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.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 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:
- Integração contínua e implantação contínua em dispositivos Azure IoT Edge (YAML)
- Integração contínua e implantação contínua em dispositivos Azure IoT Edge (editor clássico)
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 |