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.

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 devicesdistribuisce 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.jsonazure 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.jsonIn è 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.jsonIn è 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 SampleModule1solo , 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:

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