Поделиться через


AzureIoTEdge@2 — задача Azure IoT Edge версии 2

Используйте эту задачу для быстрого и эффективного создания и развертывания образов в azure IoT Edge.

Эта задача поддерживает пользовательские переменные. Если вы не знаете, как использовать переменные в конвейерах, см. статью Определение переменных.

Синтаксис

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

Входные данные

action - Действий
string. Обязательный. Допустимые значения: Build module images, Push module images, Generate deployment manifest, Deploy to IoT Edge devices. Значение по умолчанию: Build module images.

Выбирает действие azure IoT Edge.

Build module imagesтолько создает модули (их можно использовать для проверка ошибок компиляции).

Push module images отправляет модули в реестр контейнеров.

Deploy to IoT Edge devicesразвертывает созданный файл развертывания в Центр Интернета вещей. (Мы рекомендуем поместить Deploy задачу в конвейер выпуска.)


deploymentFilePath - Файл развертывания
string. Требуется, если action == Deploy to IoT Edge devices. Значение по умолчанию: $(System.DefaultWorkingDirectory)/config/deployment.json.

Выбирает JSON-файл развертывания. Если эта задача находится в release pipeline, необходимо задать расположение файла развертывания в артефакте. (Значение по умолчанию работает для большинства условий.) Если эта задача находится в конвейере сборки, необходимо указать выходной путь манифеста развертывания.


azureSubscription - Подписка Azure содержит Центр Интернета вещей
Входной псевдоним: connectedServiceNameARM. string. Требуется, если action == Deploy to IoT Edge devices.

Выбирает подписку Azure, содержащую Центр Интернета вещей.


iothubname - имя Центр Интернета вещей
string. Требуется, если action == Deploy to IoT Edge devices.

Выбирает Центр Интернета вещей.


deploymentid - идентификатор развертывания IoT Edge
string. Требуется, если action = Deploy to IoT Edge devices. Значение по умолчанию: $(System.TeamProject)-devops-deployment.

Вводит идентификатор развертывания IoT Edge. Если идентификатор уже существует, он будет переопределен. Он содержит до 128 строчных букв и цифр, и допускаются следующие символы: -:+%_#*?!(),=@;'. Дополнительные сведения см. в статье Развертывание azure IoT Edge.


priority - приоритет развертывания IoT Edge
string. Требуется, если action = Deploy to IoT Edge devices. Значение по умолчанию: 0.

Задает положительное priority целое число для разрешения конфликтов развертывания. Если эта задача предназначена для нескольких развертываний, устройство будет использовать одно с наивысшим приоритетом или, в случае двух развертываний с одинаковым приоритетом, последнее время создания. Дополнительные сведения см. в статье Развертывание azure IoT Edge.


deviceOption - Выбор одного или нескольких устройств
string. Требуется, если action == Deploy to IoT Edge devices. Допустимые значения: Single Device, Multiple Devices.

В соответствии с тегами выбирает развертывание на одном или нескольких устройствах.


deviceId - IoT Edge идентификатор устройства
string. Требуется, если deviceOption == Single Device.

Вводит IoT Edge device ID.


targetcondition - IoT Edge целевое условие устройства
string. Требуется, если deviceOption == Multiple Devices.

target condition Вводит данные устройств, которые вы хотите развернуть. Не используйте двойные кавычки. Пример: tags.building=9 и tags.environment='test'. Дополнительные сведения см. в статье Развертывание azure IoT Edge.


containerregistrytype - Тип реестра контейнеров
string. Требуется, если action = Push module images. Допустимые значения: Azure Container Registry, Generic Container Registry. Значение по умолчанию: Azure Container Registry.

Выбирает .Container Registry Type Azure Container Registry — для ACR, а Generic Container Registry — для универсальных реестров, включая docker hub.


dockerRegistryConnection - Подключение к реестру Docker
Входной псевдоним: dockerRegistryEndpoint. string. Требуется, если containerregistrytype = Generic Container Registry.

Выбирает универсальное подключение к реестру Docker. Это необходимо для сборки и отправки.


azureSubscriptionEndpoint - Подписка Azure
string. Необязательный элемент. Используйте при containerregistrytype = Azure Container Registry.

Выбирает подписку Azure.


azureContainerRegistry - Реестр контейнеров Azure
string. Требуется, если containerregistrytype = Azure Container Registry.

Выбирает Реестр контейнеров Azure.


templateFilePath - Файл .template.json
string. Требуется, если action = Build module images || action = Push module images || action = Generate deployment manifest. Значение по умолчанию: deployment.template.json.

Путь к решению .template.jsonazure IoT Edge . Этот файл определяет модули и маршруты в решении Azure IoT Edge. Имя файла должно заканчиваться на .template.json.


defaultPlatform - Платформа по умолчанию
string. Требуется, если action = Build module images || action = Push module images || action = Generate deployment manifest. Допустимые значения: amd64, windows-amd64, arm32v7, arm64v8. Значение по умолчанию: amd64.

.template.jsonВ можно оставить платформу модулей неуказанным. Для этих модулей будет использоваться платформа по умолчанию.


defaultPlatform - Платформа по умолчанию
string. Требуется, если action = Build module images || action = Push module images || action = Generate deployment manifest. Допустимые значения: amd64, windows-amd64, arm32v7. Значение по умолчанию: amd64.

.template.jsonВ можно оставить платформу модулей неуказанным. Для этих модулей будет использоваться платформа по умолчанию.


fillRegistryCredential - Добавление учетных данных реестра в манифест развертывания
string. Требуется, если action = Push module images. Допустимые значения: true, false. Значение по умолчанию: true.

Добавляет учетные данные реестра для отправки образов Docker в манифест развертывания.


deploymentManifestOutputPath - Путь вывода
string. Требуется при .action == Generate deployment manifest Значение по умолчанию: $(System.DefaultWorkingDirectory)/config/deployment.json.

Выходной путь созданного манифеста развертывания.


validateGeneratedDeploymentManifest - Проверка схемы созданного манифеста развертывания
string. Требуется при .action = Generate deployment manifest Допустимые значения: true, false. Значение по умолчанию: false.

Не удастся выполнить этот шаг, если созданный манифест развертывания не прошел проверку схемы. Выполните поиск Azure IoT Edge deployment в хранилище схем JSON , чтобы найти последнюю схему.


bypassModules - Обход модулей
string. Необязательный элемент. Используйте при action = Push module images.

Выбирает модули, которые не нужно создавать или отправлять в .template.json, задает имена модулей и разделяет их запятыми. Пример. Если у вас есть SampleModule1 и в и .template.json вы хотите только выполнить сборку или отправку SampleModule1, то для модулей обхода следует задать значение SampleModule2SampleModule2 . Оставьте это поле пустым, если вы хотите выполнить сборку всех модулей в .template.json.


Параметры управления задачами

Помимо входных данных, все задачи имеют параметры управления. Дополнительные сведения см. в разделе Параметры управления и общие свойства задачи.

Выходные переменные

Эта задача определяет следующие выходные переменные, которые можно использовать в последующих шагах, заданиях и этапах.

DEPLOYMENT_FILE_PATH
Это путь к созданному файлу развертывания.

Комментарии

Используйте эту задачу для быстрого и эффективного создания, тестирования и развертывания приложений в Azure IoT Edge.

Эта задача поддерживает пользовательские переменные. Если вы не знакомы с использованием переменных в конвейерах, см. раздел Определение переменных.

Примеры

Сборка образов модулей

В следующем примере YAML создаются образы модулей:

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

Отправка образов модулей

Следующий пример YAML отправляет образы модулей:

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

Создание манифеста развертывания

В следующем примере YAML создается манифест развертывания на основе файла шаблона:

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

Развертывание на устройствах IoT Edge

В следующем примере YAML развертываются образы модулей:

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

Дополнительные примеры

Пошаговые примеры использования этих действий в Azure Pipelines см. в следующих статьях:

Требования

Требование Описание
Типы конвейеров YAML, классическая сборка, классический выпуск
Выполняется в Агент, DeploymentGroup
Требования Нет
Capabilities Эта задача не удовлетворяет требованиям для последующих задач в задании.
Ограничения команд Любой
Устанавливаемые переменные Любой
Версия агента Все поддерживаемые версии агента.
Категория задач Сборка