天蓝色的物联网边缘部署模板中的变量

时间:2020-06-17 10:53:22

标签: azure-iot-edge

在Azure Iot边缘部署模板json中,我看到一个名为MODULES.SampleModuleMODULES.SampleModule.json的变量。 link就是一个例子。在iotedge repository中有JSON模式。但是我找不到可用于azure部署模板json中的变量的参考文档。

  1. 变量MODULES.SampleModule从哪里填充?
  2. 是否有关于Azure部署模板变量的参考文档?

2 个答案:

答案 0 :(得分:1)

对于部署模板,每个变量都必须采用此语法 ${var_name}。 运行部署文件生成时,变量将替换为同名的宿主环境变量。

例如,我的 deployment.template.json 中有 ${CONTAINER_REGISTRY_USERNAME} 和 ${CONTAINER_REGISTRY_PASSWORD}。在我的主机上, CONTAINER_REGISTRY_USERNAME 和 CONTAINER_REGISTRY_PASSWORD 集具有环境变量。当任务运行时,它们被替换。

要使其在管道中工作,您必须在主机上添加环境变量。在 AzureDevOps 中,您必须创建一个库 (https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops&tabs=yaml)。

在您的管道中,您可以使用此任务进行生成:

- task: AzureIoTEdge@2
  displayName: 'Generate deployment manifest - amd64'
  inputs:
     action: 'Generate deployment manifest'
     templateFilePath: 'EdgeModule/deployment.template.json'
     defaultPlatform: 'amd64'
     deploymentManifestOutputPath: '$(System.DefaultWorkingDirectory)/config/deployment-amd64.json'
     validateGeneratedDeploymentManifest: 'true'
     fillRegistryCredential: 'true'

我有一个带有默认 iotedge 模板的 github 项目,包括用于单元测试、代码覆盖、构建和推送映像、生成部署清单和部署到 iothub 的完整管道。

https://github.com/MaxThom/IoTEdgeModule-Template

祝你好运:)

答案 1 :(得分:0)

该项目是使用Visual Studio Code IoT Edge扩展(https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.azure-iot-tools)构建的。它是用于生成实际IoT Edge部署文件的模板。当扩展程序从此模板创建部署文件时,它将用所需的值替换这些变量。这是未公开的实现细节,因此没有文档说明。