Azure IoT Edge 任务
Azure DevOps Services
使用此任务可快速高效地生成、测试和部署应用程序,以 Azure IoT 的边缘。
此任务支持自定义变量。 如果不熟悉如何在管道中使用变量,请参阅 定义变量。
生成模块映像
| parameters | 说明 |
|---|---|
action 操作 |
(必需) 选择 Azure IoT 边缘操作,在本例中为 "生成模块映像"。 默认值:生成模块映像。 |
templateFilePath .template.json 文件 |
需要 () Azure IoT 的边缘解决方案文件的路径。 此文件定义 Azure IoT Edge 解决方案中的模块和路由。 文件名必须以. template 结尾。 默认值: deployment。 |
defaultPlatform 默认平台 |
(所需的) 在你的模板 json 文件中,可以不指定模块平台,在这种情况下,将使用默认平台。 默认值: amd64。 |
以下 YAML 示例生成模块映像:
- task: AzureIoTEdge@2
displayName: AzureIoTEdge - Build module images
inputs:
action: Build module images
templateFilePath: deployment.template.json
defaultPlatform: amd64
推送模块映像
| parameters | 说明 |
|---|---|
action 操作 |
(必需) 选择 Azure IoT 边缘操作,在此示例中,推送模块映像。 默认值:生成模块映像。 |
containerregistrytype 容器注册表类型 |
(必需) 容器注册表的类型,可能是 Azure Container Registry 注册表位于 Azure 中或 Generic Container Registry 其他注册表中(如 docker 中心)。 有关详细信息,请参阅 容器注册表类型。 默认值: Azure 容器注册表。 |
templateFilePath .template.json 文件 |
需要 () Azure IoT 的边缘解决方案文件的路径。 此文件定义 Azure IoT Edge 解决方案中的模块和路由。 文件名必须以. template 结尾。 默认值: deployment。 |
defaultPlatform 默认平台 |
(所需的) 在你的模板 json 文件中,可以不指定模块平台,在这种情况下,将使用默认平台。 默认值: amd64。 |
fillRegistryCredential 向部署清单添加注册表凭据 |
需要 () 将 Docker 映像的注册表凭据添加到部署清单。 默认值: true。 |
bypassModules 旁路模块 (s) |
(可选) 指定模块 (s) ,无需在文件中以逗号分隔的模块名称列表生成或推送。 例如,如果文件中有两个模块 "SampleModule1,SampleModule2",并且想要生成或仅推送 SampleModule1,请将 SampleModule2 指定为旁路模块 (s) 。 留空以生成或推送所有模块。 位于 Azure Pipelines web UI 的 "高级" 部分。 |
以下 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
生成部署清单
| parameters | 说明 |
|---|---|
action 操作 |
(必需) 选择 Azure IoT 边缘操作,在此示例中,将生成部署清单。 默认值:生成模块映像。 |
templateFilePath .template.json 文件 |
需要 () Azure IoT 的边缘解决方案文件的路径。 此文件定义 Azure IoT Edge 解决方案中的模块和路由。 文件名必须以. template 结尾。 默认值: deployment。 |
defaultPlatform 默认平台 |
(所需的) 在你的模板 json 文件中,可以不指定模块平台,在这种情况下,将使用默认平台。 默认值: amd64。 |
deploymentManifestOutputPath 输出路径 |
(所需) 生成的部署清单的输出路径。 默认值: $ (System.defaultworkingdirectory) /config/deployment.json。 |
validateGeneratedDeploymentManifest 验证生成的部署清单的架构 |
(必需的) 在生成的部署清单未通过架构验证时,此步骤将失败。 可在JSON 架构存储中搜索 Azure IoT Edge 部署以查找最新的架构。 默认值:false。 |
以下 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 设备
| parameters | 说明 |
|---|---|
action 操作 |
(必需) 选择 Azure IoT 边缘操作,在此示例中,将部署到 IoT Edge 设备。 默认值:生成模块映像。 |
deploymentFilePath 部署文件 |
(必需) 选择部署 JSON 文件。 如果此任务在发布管道中,则必须在项目中指定部署文件的位置 (默认值适用于大多数情况) 。 如果此任务在生成管道中,则必须指定部署清单输出路径。 默认值: $ (System.defaultworkingdirectory) /config/deployment.json。 |
connectedServiceNameARM Azure 订阅包含 IoT 中心 |
(必需) 选择包含 IoT 中心的 Azure 订阅 参数别名: azureSubscription |
iothubname IoT 中心名称 |
(必需) 选择 IoT 中心 |
deviceOption 选择单个/多个设备 |
(必需) 选择部署到单个设备,或选择使用标记指定到多个设备。 |
deviceId IoT Edge 设备 ID |
如果设备选项为 "单一设备") 指定 IoT Edge 设备 ID,则 ("必需"。 |
targetcondition IoT Edge 设备目标条件 |
如果设备选项是多个设备,则 (必需的) 指定要部署到的设备的目标条件。 例如,tags = 9 和 tags。环境 = "test"。 不要包含双引号。 更多详细信息。 |
deploymentid IoT Edge 部署 ID |
需要 () 输入 IoT Edge 部署 ID。 如果 ID 已存在,它将被重写。 最多128小写字母、数字和字符 - : + % _ # * ? ! ( ) , = @ ; 。 更多详细信息。 位于 Web UI Azure Pipelines高级部分。 默认值: $ (System.TeamProject) -devops-deployment。 |
priority IoT Edge部署优先级 |
(必需) 用于解决部署冲突的正整数。 当设备被多个部署作为目标时,它将使用优先级最高的部署;如果两个部署具有相同的优先级,则使用具有最新创建时间的设备。 位于 Web UI Azure Pipelines高级部分。 默认值:0。 |
以下 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 容器注册表
| parameters | 说明 |
|---|---|
containerregistrytype 容器注册表类型 |
(必需) 为 ACR Azure 容器注册表通用注册表(包括 Docker 中心)选择"通用容器注册表"。 |
azureSubscriptionEndpoint Azure 订阅 |
(为必需,如果 containerregistrytype = Azure 容器注册表) 选择 Azure 订阅。 |
azureContainerRegistry Azure 容器注册表 |
(必需) 选择Azure 容器注册表。 |
其他容器注册表
| parameters | 说明 |
|---|---|
| containerregistrytype 容器注册表类型 |
(必需) 为 ACR Azure 容器注册表通用注册表(包括 Docker 中心)选择"通用容器注册表"。 |
| dockerRegistryEndpoint Docker 注册表连接 |
(必需) 选择通用 Docker 注册表连接。 生成和推送所需的 参数别名: dockerRegistryConnection |
示例
有关如何在 Azure Pipelines 中使用这些操作的分步示例,请参阅以下文章:
开源
此任务开放源代码上GitHub。 欢迎提供反馈和建议。