Delen via


AzureIoTEdge@2 - Azure IoT Edge v2-taak

Gebruik deze taak om installatiekopieën snel en efficiënt te bouwen en te implementeren in Azure IoT Edge.

Deze taak ondersteunt aangepaste variabelen. Zie Variabelen definiëren als u niet bekend bent met het gebruik van variabelen in pijplijnen.

Notitie

Deze taak biedt geen ondersteuning voor Azure Resource Manager-verificatie met werkstroomidentiteitsfederatie.

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

Invoerwaarden

action - Actie
string. Vereist. Toegestane waarden: Build module images, Push module images, Generate deployment manifest, Deploy to IoT Edge devices. Standaardwaarde: Build module images.

Selecteert een Azure IoT Edge actie.

Build module images bouwt alleen modules (u kunt deze gebruiken om compilatiefouten te controleren).

Push module images pusht modules naar het containerregister.

Deploy to IoT Edge devicesimplementeert het gegenereerde implementatiebestand in IoT Hub. (We raden u aan de Deploy taak in de release-pijplijn te plaatsen.)


deploymentFilePath - Implementatiebestand
string. Vereist wanneer action == Deploy to IoT Edge devices. Standaardwaarde: $(System.DefaultWorkingDirectory)/config/deployment.json.

Selecteert het JSON-bestand voor de implementatie. Als deze taak zich in release pipelinebevindt, moet u de locatie van het implementatiebestand instellen in artefact. (De standaardwaarde werkt voor de meeste voorwaarden.) Als deze taak zich in een build-pijplijn bevindt, moet u het uitvoerpad voor het implementatiemanifest opgeven.


azureSubscription - Azure-abonnement bevat IoT Hub
Invoeralias: connectedServiceNameARM. string. Vereist wanneer action == Deploy to IoT Edge devices.

Selecteert een Azure-abonnement dat IoT Hub bevat.


iothubname - IoT Hub naam
string. Vereist wanneer action == Deploy to IoT Edge devices.

Selecteert de IoT Hub.


deploymentid - IoT Edge-implementatie-id
string. Vereist wanneer action = Deploy to IoT Edge devices. Standaardwaarde: $(System.TeamProject)-devops-deployment.

Hiermee wordt de IoT Edge-implementatie-id. Als de id al bestaat, wordt deze overschreven. Dit heeft maximaal 128 kleine letters en cijfers en de volgende tekens zijn toegestaan: -:+%_#*?!(),=@;'. Zie Azure IoT Edge-implementatie voor meer informatie.


priority - IoT Edge implementatieprioriteit
string. Vereist wanneer action = Deploy to IoT Edge devices. Standaardwaarde: 0.

Stelt de priority in op een positief geheel getal om implementatieconflicten op te lossen. Wanneer deze taak is gericht op meerdere implementaties, gebruikt een apparaat de taak met de hoogste prioriteit of, in het geval van twee implementaties met dezelfde prioriteit, de laatste aanmaaktijd. Zie Azure IoT Edge-implementatie voor meer informatie.


deviceOption - Eén/meerdere apparaten kiezen
string. Vereist wanneer action == Deploy to IoT Edge devices. Toegestane waarden: Single Device, Multiple Devices.

Op basis van tags kiest u ervoor om te implementeren op één of meerdere apparaten.


deviceId - IoT Edge apparaat-id
string. Vereist wanneer deviceOption == Single Device.

Hiermee wordt de IoT Edge . device ID


targetcondition - IoT Edge apparaatdoelvoorwaarde
string. Vereist wanneer deviceOption == Multiple Devices.

Hiermee wordt de target condition van apparaten die u wilt implementeren, opgegeven. Gebruik geen dubbele aanhalingstekens. Voorbeeld: tags.building=9 en tags.environment='test'. Zie Azure IoT Edge-implementatie voor meer informatie.


containerregistrytype - Type containerregister
string. Vereist wanneer action = Push module images. Toegestane waarden: Azure Container Registry, Generic Container Registry. Standaardwaarde: Azure Container Registry.

Selecteert een Container Registry Type. Azure Container Registry is voor ACR en Generic Container Registry is voor algemene registers, waaronder Docker Hub.


dockerRegistryConnection - Docker-registerverbinding
Invoeralias: dockerRegistryEndpoint. string. Vereist wanneer containerregistrytype = Generic Container Registry.

Selecteert een algemene Docker-registerverbinding. Dit is vereist voor bouwen en pushen.


azureSubscriptionEndpoint - Azure-abonnement
string. Optioneel. Gebruik wanneer containerregistrytype = Azure Container Registry.

Selecteert een Azure-abonnement.


azureContainerRegistry - Azure Container Registry
string. Vereist wanneer containerregistrytype = Azure Container Registry.

Selecteert een Azure Container Registry.


templateFilePath - .template.json-bestand
string. Vereist wanneer action = Build module images || action = Push module images || action = Generate deployment manifest. Standaardwaarde: deployment.template.json.

Het pad van azure IoT Edge-oplossing .template.json. Dit bestand definieert de modules en routes in azure IoT Edge oplossing. De bestandsnaam moet eindigen op .template.json.


defaultPlatform - Standaardplatform
string. Vereist wanneer action = Build module images || action = Push module images || action = Generate deployment manifest. Toegestane waarden: amd64, windows-amd64, arm32v7, arm64v8. Standaardwaarde: amd64.

In uw .template.jsonkunt u het modulesplatform niet opgegeven laten. Voor deze modules wordt het standaardplatform gebruikt.


defaultPlatform - Standaardplatform
string. Vereist wanneer action = Build module images || action = Push module images || action = Generate deployment manifest. Toegestane waarden: amd64, windows-amd64, arm32v7. Standaardwaarde: amd64.

In uw .template.jsonkunt u het modulesplatform niet opgegeven laten. Voor deze modules wordt het standaardplatform gebruikt.


fillRegistryCredential - Registerreferentie toevoegen aan implementatiemanifest
string. Vereist wanneer action = Push module images. Toegestane waarden: true, false. Standaardwaarde: true.

Hiermee voegt u de registerreferentie toe voor het pushen van Docker-installatiekopieën naar het implementatiemanifest.


deploymentManifestOutputPath - Uitvoerpad
string. Vereist wanneer action == Generate deployment manifest. Standaardwaarde: $(System.DefaultWorkingDirectory)/config/deployment.json.

Het uitvoerpad van het gegenereerde implementatiemanifest.


validateGeneratedDeploymentManifest - Het schema van het gegenereerde implementatiemanifest valideren
string. Vereist wanneer action = Generate deployment manifest. Toegestane waarden: true, false. Standaardwaarde: false.

Mislukt deze stap als het gegenereerde implementatiemanifest niet voldoet aan de schemavalidatie. Zoek Azure IoT Edge deployment in JSON Schema Store om het meest recente schema te vinden.


bypassModules - Module(s) overslaan
string. Optioneel. Gebruik wanneer action = Push module images.

Selecteert de module(s) die u niet hoeft te bouwen of pushen in .template.json, geeft de modulenamen op en scheidt deze met komma's. Voorbeeld: als u en SampleModule2 in uw .template.json hebt SampleModule1 en u alleen wilt bouwen of pushenSampleModule1, stelt u de bypass-modules in als SampleModule2. Laat dit leeg als u alle modules in .template.jsonwilt bouwen.


Opties voor taakbeheer

Alle taken hebben besturingsopties naast hun taakinvoer. Zie Besturingsopties en algemene taakeigenschappen voor meer informatie.

Uitvoervariabelen

Deze taak definieert de volgende uitvoervariabelen, die u kunt gebruiken in downstreamstappen, taken en fasen.

DEPLOYMENT_FILE_PATH
Dit is het pad naar het gegenereerde implementatiebestand.

Opmerkingen

Gebruik deze taak om toepassingen snel en efficiënt te bouwen, testen en implementeren in Azure IoT Edge.

Deze taak ondersteunt aangepaste variabelen. Zie Variabelen definiëren als u niet bekend bent met het gebruik van variabelen in pijplijnen.

Voorbeelden

Installatiekopieën van modules bouwen

In het volgende YAML-voorbeeld worden moduleinstallatiekopieën gebouwd:

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

Installatiekopieën van pushmodules

In het volgende YAML-voorbeeld worden moduleinstallatiekopieën gepusht:

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

Implementatiemanifest genereren

In het volgende YAML-voorbeeld wordt een implementatiemanifest gemaakt op basis van het sjabloonbestand:

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

Implementeren naar IoT Edge-apparaten

In het volgende YAML-voorbeeld worden module-installatiekopieën geïmplementeerd:

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

Meer voorbeelden

Zie de volgende artikelen voor stapsgewijze voorbeelden van het gebruik van deze acties in Azure Pipelines:

Vereisten

Vereiste Beschrijving
Pijplijntypen YAML, klassieke build, klassieke release
Wordt uitgevoerd op Agent, DeploymentGroup
Eisen Geen
Functies Deze taak voldoet niet aan eventuele vereisten voor volgende taken in de taak.
Opdrachtbeperkingen Alle
Instelbare variabelen Alle
Agentversie Alle ondersteunde agentversies.
Taakcategorie Build