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.
Poznámka
Tato úloha nepodporuje ověřování azure Resource Manager s federací identit pracovního postupu.
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 devices
nasadí 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.json
Azure 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.json
můž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.json
můž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:
- Kontinuální integrace a průběžné nasazování do zařízení Azure IoT Edge (YAML)
- Kontinuální integrace a průběžné nasazování do zařízení Azure IoT Edge (klasický editor)
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í |