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.

Tento úkol podporuje vlastní proměnné. Pokud nevíte, jak používat proměnné v Pipelines, přečtěte si definování proměnných.

Syntaxe

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

Vstupy

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

Vybere akci Azure IoT Edge.

Build module images pouze sestavuje moduly (můžete ho 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 Hubu. (Doporučujeme vložit Deploy úlohu do kanálu verze.)


souboru nasazení deploymentFilePath -
string. Požadováno při 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 buildu, musíte zadat výstupní cestu manifestu nasazení.


azureSubscription - předplatné Azure obsahuje IoT Hubu
Vstupní alias: connectedServiceNameARM. string. Požadováno při action == Deploy to IoT Edge devices.

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


iothubname - název ioT Hubu
string. Požadováno při action == Deploy to IoT Edge devices.

Vybere IoT Hub.


ID nasazení deploymentid - IoT Edge
string. Požadováno při action = Deploy to IoT Edge devices. Výchozí hodnota: $(System.TeamProject)-devops-deployment.

Zadává ID nasazení IoT Edge. Pokud ID již existuje, přepíše se. To má 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 - prioritu nasazení IoT Edge
string. Požadováno při action = Deploy to IoT Edge devices. Výchozí hodnota: 0.

Nastaví priority na kladné celé číslo pro řešení konfliktů nasazení. Pokud se na tuto úlohu zaměřuje více nasazení, použije zařízení ten, který má nejvyšší prioritu, nebo v případě dvou nasazení se stejnou prioritou čas posledního vytvoření. Další informace najdete v tématu nasazení Azure IoT Edge.


deviceOption - Zvolit jednoho nebo více zařízení
string. Požadováno při action == Deploy to IoT Edge devices. Povolené hodnoty: Single Device, Multiple Devices.

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


deviceId - ID zařízení IoT Edge
string. Požadováno při deviceOption == Single Device.

Vstupy device IDIoT Edge .


targetcondition - cílové podmínky zařízení IoT Edge
string. Požadováno při deviceOption == Multiple Devices.

Zadává target condition 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. Požadováno při 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 určená pro obecné registry, včetně docker hubu.


dockerRegistryConnection - připojení registru Dockeru
Vstupní alias: dockerRegistryEndpoint. string. Požadováno při containerregistrytype = Generic Container Registry.

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


azureSubscriptionEndpoint - předplatného Azure
string. Volitelný. Používá se při containerregistrytype = Azure Container Registry.

Vybere předplatné Azure.


azureContainerRegistry - služby Azure Container Registry
string. Požadováno při containerregistrytype = Azure Container Registry.

Určuje službu Azure Container Registry. Tato hodnota by měla být zadána ve formátu json.

azureContainerRegistry: '{"loginServer": "contoso.azurecr.io"}

souboru templateFilePath - .template.json
string. Požadováno při action = Build module images || action = Push module images || action = Generate deployment manifest. Výchozí hodnota: deployment.template.json.

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


výchozí platformy defaultPlatform -
string. Požadováno při action = Build module images || action = Push module images || action = Generate deployment manifest. Povolené hodnoty: amd64, windows-amd64, arm32v7arm64v8. Výchozí hodnota: amd64.

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


výchozí platformy defaultPlatform -
string. Požadováno při action = Build module images || action = Push module images || action = Generate deployment manifest. Povolené hodnoty: amd64, windows-amd64, arm32v7. Výchozí hodnota: amd64.

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


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

Přidá přihlašovací údaje registru pro nabízení imagí Dockeru do manifestu nasazení.


deploymentManifestOutputPath - výstupní cesta
string. Požadováno při 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. Požadováno při action = Generate deployment manifest. Povolené hodnoty: true, false. Výchozí hodnota: false.

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


bypassModules - vynechat moduly
string. Volitelný. Používá se při action = Push module images.

Vybere moduly, které nepotřebujete sestavovat ani vkládat do .template.json, určuje názvy modulů a odděluje je čárkami. Příklad: Pokud máte ve svém SampleModule1SampleModule2 a .template.json a chcete vytvořit nebo odeslat pouze SampleModule1, nastavíte moduly obejití jako SampleModule2. Pokud chcete sestavit všechny moduly v .template.json, ponechte toto prázdné.


Možnosti ovládání úloh

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

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 vygenerovaného souboru nasazení.

Poznámky

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

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

Příklady

Vytváření 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 nasdílí image modulů:

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í na základě 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é sestavení, klasická verze
Běží na Agent, skupina nasazení
požadavky Žádný
možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
omezení příkazů Jakýkoliv
nastavitelné proměnné Jakýkoliv
Verze agenta Všechny podporované verze agenta.
Kategorie úkolu Stavět