AzureIoTEdge@2 - Attività di Azure IoT Edge v2
Usare questa attività per creare e distribuire immagini in modo rapido ed efficiente in Azure IoT Edge.
Questa attività supporta variabili personalizzate. Se non si ha familiarità con come usare le variabili in Pipelines, vedere Definire le variabili.
Nota
Questa attività non supporta l'autenticazione di Azure Resource Manager con la federazione delle identità del flusso di lavoro.
Sintassi
# 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).
Input
action
- Azione
string
. Obbligatorio. Valori consentiti: Build module images
, Push module images
, Generate deployment manifest
, Deploy to IoT Edge devices
. Valore predefinito: Build module images
.
Seleziona un'azione IoT Edge di Azure.
Build module images
compila solo i moduli (è possibile usarlo per controllare gli errori di compilazione).
Push module images
esegue il push dei moduli nel registro contenitori.
Deploy to IoT Edge devices
distribuisce il file di distribuzione generato in hub IoT. È consigliabile inserire l'attività Deploy
nella pipeline di versione.
deploymentFilePath
- File di distribuzione
string
. Obbligatorio quando action == Deploy to IoT Edge devices
. Valore predefinito: $(System.DefaultWorkingDirectory)/config/deployment.json
.
Seleziona il file JSON di distribuzione.
Se questa attività è in release pipeline
, è necessario impostare il percorso del file di distribuzione nell'artefatto. Il valore predefinito funziona per la maggior parte delle condizioni. Se questa attività si trova in una pipeline di compilazione, è necessario specificare il percorso di output del manifesto della distribuzione.
azureSubscription
- La sottoscrizione di Azure contiene hub IoT
Alias di input: connectedServiceNameARM
. string
. Obbligatorio quando action == Deploy to IoT Edge devices
.
Seleziona una sottoscrizione di Azure che contiene hub IoT.
iothubname
- nome hub IoT
string
. Obbligatorio quando action == Deploy to IoT Edge devices
.
Seleziona il hub IoT.
deploymentid
- ID distribuzione IoT Edge
string
. Obbligatorio quando action = Deploy to IoT Edge devices
. Valore predefinito: $(System.TeamProject)-devops-deployment
.
Inserisce l'ID di distribuzione IoT Edge. Se l'ID esiste già, verrà sottoposto a override.
Sono consentiti fino a 128 lettere minuscole e numeri e i caratteri seguenti: -:+%_#*?!(),=@;'
.
Per altre informazioni, vedere Distribuzione di Azure IoT Edge.
priority
- priorità di distribuzione IoT Edge
string
. Obbligatorio quando action = Deploy to IoT Edge devices
. Valore predefinito: 0
.
Imposta su priority
un numero intero positivo per risolvere i conflitti di distribuzione. Quando questa attività è destinata a più distribuzioni, un dispositivo userà quello con la priorità più alta o, nel caso di due distribuzioni con la stessa priorità, l'ora di creazione più recente.
Per altre informazioni, vedere Distribuzione di Azure IoT Edge.
deviceOption
- Scegliere un dispositivo singolo/multiplo
string
. Obbligatorio quando action == Deploy to IoT Edge devices
. Valori consentiti: Single Device
, Multiple Devices
.
In base ai tag, sceglie di eseguire la distribuzione in uno o più dispositivi.
deviceId
- ID dispositivo IoT Edge
string
. Obbligatorio quando deviceOption == Single Device
.
Inserisce il IoT Edge device ID
.
targetcondition
- IoT Edge condizione di destinazione del dispositivo
string
. Obbligatorio quando deviceOption == Multiple Devices
.
Inserisce l'oggetto target condition
dei dispositivi da distribuire. Non usare virgolette doppie. Esempio: tags.building=9
e tags.environment='test'
.
Per altre informazioni, vedere Distribuzione di Azure IoT Edge.
containerregistrytype
- Tipo di registro contenitori
string
. Obbligatorio quando action = Push module images
. Valori consentiti: Azure Container Registry
, Generic Container Registry
. Valore predefinito: Azure Container Registry
.
Seleziona un oggetto Container Registry Type
.
Azure Container Registry
è per Registro Azure Container ed Generic Container Registry
è per registri generici, incluso l'hub Docker.
dockerRegistryConnection
- Connessione al Registro di sistema Docker
Alias di input: dockerRegistryEndpoint
. string
. Obbligatorio quando containerregistrytype = Generic Container Registry
.
Seleziona una connessione generica al Registro di sistema Docker. Questa operazione è necessaria per la compilazione e il push.
azureSubscriptionEndpoint
- Sottoscrizione di Azure
string
. facoltativo. Usare quando containerregistrytype = Azure Container Registry
.
Seleziona una sottoscrizione di Azure.
azureContainerRegistry
- Registro Azure Container
string
. Obbligatorio quando containerregistrytype = Azure Container Registry
.
Seleziona un Registro Azure Container.
templateFilePath
- File .template.json
string
. Obbligatorio quando action = Build module images || action = Push module images || action = Generate deployment manifest
. Valore predefinito: deployment.template.json
.
Percorso della soluzione .template.json
azure IoT Edge . Questo file definisce i moduli e le route nella soluzione azure IoT Edge. Il nome del file deve terminare con .template.json
.
defaultPlatform
- Piattaforma predefinita
string
. Obbligatorio quando action = Build module images || action = Push module images || action = Generate deployment manifest
. Valori consentiti: amd64
, windows-amd64
, arm32v7
, arm64v8
. Valore predefinito: amd64
.
.template.json
In è possibile lasciare non specificata la piattaforma modules. Per questi moduli verrà usata la piattaforma predefinita.
defaultPlatform
- Piattaforma predefinita
string
. Obbligatorio quando action = Build module images || action = Push module images || action = Generate deployment manifest
. Valori consentiti: amd64
, windows-amd64
, arm32v7
. Valore predefinito: amd64
.
.template.json
In è possibile lasciare non specificata la piattaforma modules. Per questi moduli verrà usata la piattaforma predefinita.
fillRegistryCredential
- Aggiungere credenziali del Registro di sistema al manifesto della distribuzione
string
. Obbligatorio quando action = Push module images
. Valori consentiti: true
, false
. Valore predefinito: true
.
Aggiunge le credenziali del Registro di sistema per il push di immagini Docker al manifesto della distribuzione.
deploymentManifestOutputPath
- Percorso di output
string
. Obbligatorio quando action == Generate deployment manifest
. Valore predefinito: $(System.DefaultWorkingDirectory)/config/deployment.json
.
Percorso di output del manifesto della distribuzione generato.
validateGeneratedDeploymentManifest
- Convalidare lo schema del manifesto della distribuzione generato
string
. Obbligatorio quando action = Generate deployment manifest
. Valori consentiti: true
, false
. Valore predefinito: false
.
Eseguire questo passaggio se il manifesto della distribuzione generato non supera la convalida dello schema. Cercare Azure IoT Edge deployment
in Archivio schemi JSON per trovare lo schema più recente.
bypassModules
- Ignora moduli
string
. facoltativo. Usare quando action = Push module images
.
Seleziona i moduli che non è necessario compilare o eseguire il push in .template.json
, specifica i nomi dei moduli e li separa con le virgole.
Esempio: se si dispone SampleModule1
di e SampleModule2
nell'oggetto .template.json
e si vuole compilare o eseguire il push SampleModule1
solo , impostare i moduli di bypass come SampleModule2
. Lasciare vuoto questo valore se si desidera compilare tutti i moduli in .template.json
.
Opzioni di controllo delle attività
Tutte le attività dispongono di opzioni di controllo oltre ai relativi input attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.
Variabili di output
Questa attività definisce le variabili di output seguenti, che è possibile utilizzare nei passaggi downstream, nei processi e nelle fasi.
DEPLOYMENT_FILE_PATH
Questo è il percorso del file di distribuzione generato.
Commenti
Usare questa attività per compilare, testare e distribuire applicazioni in modo rapido ed efficiente in Azure IoT Edge.
Questa attività supporta variabili personalizzate. Se non si ha familiarità con come usare le variabili in Pipelines, vedere Definire le variabili.
Esempio
Creare immagini del modulo
L'esempio YAML seguente compila le immagini del modulo:
- task: AzureIoTEdge@2
displayName: AzureIoTEdge - Build module images
inputs:
action: Build module images
templateFilePath: deployment.template.json
defaultPlatform: amd64
Eseguire il push delle immagini del modulo
L'esempio YAML seguente esegue il push delle immagini del modulo:
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
Generare il manifesto della distribuzione
L'esempio YAML seguente crea un manifesto di distribuzione basato sul file modello:
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
Distribuire nei dispositivi IoT Edge
L'esempio YAML seguente distribuisce le immagini del modulo:
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
Altri esempi
Per esempi dettagliate su come usare queste azioni in Azure Pipelines, vedere gli articoli seguenti:
- Integrazione continua e distribuzione continua nei dispositivi azure IoT Edge (YAML)
- Integrazione continua e distribuzione continua nei dispositivi Azure IoT Edge (editor classico)
Requisiti
Requisito | Descrizione |
---|---|
Tipi di pipeline | YAML, build classica, versione classica |
Viene eseguito in | Agente, DeploymentGroup |
Richieste | Nessuno |
Capabilities | Questa attività non soddisfa le richieste per le attività successive nel processo. |
Restrizioni dei comandi | Qualsiasi |
Variabili impostabili | Qualsiasi |
Versione agente | Tutte le versioni dell'agente supportate. |
Categoria attività | Compilazione |