AzureIoTEdge@2 — задача Azure IoT Edge версии 2
Используйте эту задачу для быстрого и эффективного создания и развертывания образов в azure IoT Edge.
Эта задача поддерживает пользовательские переменные. Если вы не знаете, как использовать переменные в конвейерах, см. статью Определение переменных.
Примечание
Эта задача не поддерживает проверку подлинности azure Resource Manager с федерацией удостоверений рабочих процессов.
Синтаксис
# 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.json
azure 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
, то для модулей обхода следует задать значение SampleModule2
SampleModule2
. Оставьте это поле пустым, если вы хотите выполнить сборку всех модулей в .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 см. в следующих статьях:
- Непрерывная интеграция и непрерывное развертывание на устройствах Azure IoT Edge (YAML)
- Непрерывная интеграция и непрерывное развертывание на устройствах Azure IoT Edge (классический редактор)
Требования
Требование | Описание |
---|---|
Типы конвейеров | YAML, классическая сборка, классический выпуск |
Выполняется в | Агент, DeploymentGroup |
Требования | Нет |
Capabilities | Эта задача не удовлетворяет требованиям для последующих задач в задании. |
Ограничения команд | Любой |
Устанавливаемые переменные | Любой |
Версия агента | Все поддерживаемые версии агента. |
Категория задач | Сборка |