Sdílet prostřednictvím


AzureIoTEdge@2 – úloha Azure IoT Edge v2

Pomocí této úlohy můžete rychle a efektivně vytvářet a nasazovat image do Azure IoT Edge.

Tato úloha podporuje vlastní proměnné. Pokud nevíte, jak používat proměnné v kanálech, přečtěte si téma Definování proměnných.

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).

Vstupy

action - Akce
string. Povinná hodnota. Povolené hodnoty: Build module images, Push module images, Generate deployment manifest, Deploy to IoT Edge devices. Výchozí hodnota: Build module images.

Vybere akci Azure IoT Edge.

Build module images pouze sestavuje moduly (můžete je použít ke kontrole chyb kompilace).

Push module images nasdílí moduly do registru kontejneru.

Deploy to IoT Edge devicesnasadí vygenerovaný soubor nasazení do IoT Hub. (Doporučujeme umístit Deploy úlohu do kanálu verze.)


deploymentFilePath - Soubor nasazení
string. Vyžaduje se, když action == Deploy to IoT Edge devices. Výchozí hodnota: $(System.DefaultWorkingDirectory)/config/deployment.json.

Vybere soubor JSON nasazení. Pokud je tato úloha v release pipeline, musíte nastavit umístění souboru nasazení v artefaktu. (Výchozí hodnota funguje pro většinu podmínek.) Pokud je tato úloha v kanálu sestavení, musíte zadat výstupní cestu manifestu nasazení.


azureSubscription - Předplatné Azure obsahuje IoT Hub
Vstupní alias: connectedServiceNameARM. string. Vyžaduje se, když action == Deploy to IoT Edge devices.

Vybere předplatné Azure, které obsahuje IoT Hub.


iothubname - název IoT Hub
string. Vyžaduje se, když action == Deploy to IoT Edge devices.

Vybere IoT Hub.


deploymentid - ID nasazení IoT Edge
string. Vyžaduje se, když action = Deploy to IoT Edge devices. Výchozí hodnota: $(System.TeamProject)-devops-deployment.

Zadá ID nasazení IoT Edge. Pokud ID již existuje, bude přepsáno. Obsahuje až 128 malých písmen a číslic a jsou povoleny následující znaky: -:+%_#*?!(),=@;'. Další informace najdete v tématu Nasazení azure IoT Edge.


priority - priorita nasazení IoT Edge
string. Vyžaduje se, když action = Deploy to IoT Edge devices. Výchozí hodnota: 0.

priority Nastaví hodnotu na kladné celé číslo, aby se vyřešily konflikty nasazení. Pokud je tato úloha cílená na více nasazení, zařízení použije to s nejvyšší prioritou nebo v případě dvou nasazení se stejnou prioritou nejnovější čas vytvoření. Další informace najdete v tématu Nasazení azure IoT Edge.


deviceOption - Volba jednoho nebo více zařízení
string. Vyžaduje se, když action == Deploy to IoT Edge devices. Povolené hodnoty: Single Device, Multiple Devices.

Podle značek se rozhodne nasadit na jedno nebo více zařízení.


deviceId - IoT Edge ID zařízení
string. Vyžaduje se, když deviceOption == Single Device.

Zadá IoT Edge device ID.


targetcondition - IoT Edge cílová podmínka zařízení
string. Vyžaduje se, když deviceOption == Multiple Devices.

target condition Zadá zařízení, která chcete nasadit. Nepoužívejte dvojité uvozovky. Příklad: tags.building=9 a tags.environment='test'. Další informace najdete v tématu Nasazení azure IoT Edge.


containerregistrytype - Typ registru kontejneru
string. Vyžaduje se, když action = Push module images. Povolené hodnoty: Azure Container Registry, Generic Container Registry. Výchozí hodnota: Azure Container Registry.

Vybere .Container Registry Type Azure Container Registry je pro ACR a Generic Container Registry je pro obecné registry, včetně Docker Hubu.


dockerRegistryConnection - Připojení registru Dockeru
Vstupní alias: dockerRegistryEndpoint. string. Vyžaduje se, když containerregistrytype = Generic Container Registry.

Vybere obecné připojení registru Dockeru. To se vyžaduje pro sestavení a nasdílení změn.


azureSubscriptionEndpoint - Předplatné Azure
string. Nepovinný parametr. Použijte, když containerregistrytype = Azure Container Registry.

Vybere předplatné Azure.


azureContainerRegistry - Azure Container Registry
string. Vyžaduje se, když containerregistrytype = Azure Container Registry.

Vybere Azure Container Registry.


templateFilePath - Soubor .template.json
string. Vyžaduje se, když action = Build module images || action = Push module images || action = Generate deployment manifest. Výchozí hodnota: deployment.template.json.

Cesta řešení .template.jsonAzure IoT Edge . Tento soubor definuje moduly a trasy v řešení Azure IoT Edge. Název souboru musí končit na .template.json.


defaultPlatform - Výchozí platforma
string. Vyžaduje se, když action = Build module images || action = Push module images || action = Generate deployment manifest. Povolené hodnoty: amd64, windows-amd64, arm32v7, arm64v8. Výchozí hodnota: amd64.

V nástroji .template.jsonmůžete platformu modulů ponechat nezadanou. Pro tyto moduly se použije výchozí platforma.


defaultPlatform - Výchozí platforma
string. Vyžaduje se, když action = Build module images || action = Push module images || action = Generate deployment manifest. Povolené hodnoty: amd64, windows-amd64, arm32v7. Výchozí hodnota: amd64.

V nástroji .template.jsonmůžete platformu modulů ponechat nezadanou. Pro tyto moduly se použije výchozí platforma.


fillRegistryCredential - Přidání přihlašovacích údajů registru do manifestu nasazení
string. Vyžaduje se, když action = Push module images. Povolené hodnoty: true, false. Výchozí hodnota: true.

Přidá přihlašovací údaje registru pro vložení imagí Dockeru do manifestu nasazení.


deploymentManifestOutputPath - Výstupní cesta
string. Vyžaduje se, když action == Generate deployment manifest. Výchozí hodnota: $(System.DefaultWorkingDirectory)/config/deployment.json.

Výstupní cesta vygenerovaného manifestu nasazení.


validateGeneratedDeploymentManifest - Ověření schématu vygenerovaného manifestu nasazení
string. Vyžaduje se, když action = Generate deployment manifest. Povolené hodnoty: true, false. Výchozí hodnota: false.

Tento krok selže, pokud vygenerovaný manifest nasazení neprojde ověřením schématu. Vyhledejte Azure IoT Edge deployment v úložišti schémat JSON nejnovější schéma.


bypassModules - Vynechat moduly
string. Nepovinný parametr. Použijte, když action = Push module images.

Vybere moduly, které nepotřebujete sestavovat ani nasdílovat .template.json, určuje názvy modulů a odděluje je čárkami. Příklad: Pokud máte SampleModule1 v souboru a SampleModule2 a chcete pouze sestavovat nebo nasdílovat SampleModule1, pak nastavíte moduly obejití jako SampleModule2.template.json . Pokud chcete sestavovat všechny moduly v .template.json, nechte toto prázdné.


Možnosti ovládání úloh

Všechny úlohy mají kromě vstupů také možnosti ovládání. Další informace najdete v tématu Možnosti ovládacích prvků a běžné vlastnosti úlohy.

Výstupní proměnné

Tato úloha definuje následující výstupní proměnné, které můžete využívat v podřízených krocích, úlohách a fázích.

DEPLOYMENT_FILE_PATH
Toto je cesta k vygenerovanému souboru nasazení.

Poznámky

Pomocí této úlohy můžete rychle a efektivně sestavovat, testovat a nasazovat aplikace do Azure IoT Edge.

Tato úloha podporuje vlastní proměnné. Pokud nevíte, jak používat proměnné v kanálech, přečtěte si téma Definování proměnných.

Příklady

Sestavení imagí modulů

Následující příklad YAML sestaví image modulů:

- task: AzureIoTEdge@2
  displayName: AzureIoTEdge - Build module images
  inputs:
    action: Build module images
    templateFilePath: deployment.template.json
    defaultPlatform: amd64  

Nabízení imagí modulů

Následující příklad YAML vloží image modulu:

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

Generování manifestu nasazení

Následující příklad YAML vytvoří manifest nasazení založený na souboru šablony:

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

Nasazení do zařízení IoT Edge

Následující příklad YAML nasadí image modulů:

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

Další příklady

Podrobné příklady použití těchto akcí v Azure Pipelines najdete v následujících článcích:

Požadavky

Požadavek Popis
Typy kanálů YAML, klasický build, klasická verze
Běží na Agent, DeploymentGroup
Požadavky Žádné
Možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
Omezení příkazů Všechny
Nastavitelné proměnné Všechny
Verze agenta Všechny podporované verze agenta.
Kategorie úloh Sestavení