在Azure Iot边缘部署模板json中,我看到一个名为MODULES.SampleModule
或MODULES.SampleModule.json
的变量。 link就是一个例子。在iotedge repository中有JSON模式。但是我找不到可用于azure部署模板json中的变量的参考文档。
MODULES.SampleModule
从哪里填充?答案 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部署文件的模板。当扩展程序从此模板创建部署文件时,它将用所需的值替换这些变量。这是未公开的实现细节,因此没有文档说明。