azure-devops - Azure Pipeline Release Artefact 链接的 ARM 模板
问题描述
我们将 ARM 模板放在build
代码旁边的文件夹中。在我们的管道中,我们将build
文件夹作为人工制品发布。我们有主模板。
我们想从发布管道运行我们的 ARM 模板,但是我们的主模板找不到我们的链接模板,我们收到以下错误:
##[error]InvalidTemplateSpec:无法解析相对路径“arm-kv/1.0.0.0/azuredeploy.json”。请确保父部署引用外部 URI 或模板规范 ID。使用本地文件创建模板部署时,不能使用 relativePath 属性。
创建的工件的文件夹结构如下;
Builds/
+-- ARM/
+-- parameters/
| +-- azuredeploy-rg-parameters.json ## parameters file
|
+-- arm-kv
| +-- 1.0.0.0/
| +-- azuredeploy.json ##(linked key vault template)
|
|- arm-storage
| +-- 1.0.0.0/
| +-- azuredeploy.json ##(linked storage template)
|
+-- azuredeploy-rg.json ##(main template)
引用子文件夹/模板的正确语法是什么?我们试过了
arm-kv/1.0.0.0/azuredeploy.json
(相对路径)./arm-kv/1.0.0.0/azuredeploy.json
/builds/arm/arm-kv/1.0.0.0/azuredeploy.json
(完整的人工制品路径)
解决方案
当您运行任务时,您可能处于$(System.DefaultWorkingDirectory)
上下文中。这是下载工件的文件夹。请通过添加步骤和列出文件来检查您在那里有什么。
一旦你有了它,将你的 ARM 部署步骤的工作目录更改为$(System.DefaultWorkingDirectory)/builds/arm
(它可能会略有不同,这就是为什么需要前一步来验证路径的原因)。正确设置后,您将进入azuredeploy-rg.json
根目录,并且所有链接的模板都将变得可发现。
推荐阅读
- jpa - java.lang.IllegalStateException:无法加载缓存项
- sql - 添加计算列时,“as”附近的语法不正确
- jdbc - 为什么从 BigDecimal 转换为 DECIMAL 时 impala-jdbc 会抛出异常?
- html - 如何修复拒绝在框架中显示,因为它将'X-Frame-Options'设置为'sameorigin
- node.js - 如何使用nodejs在cassandra中插入媒体文件?
- mysql - Buffio 扫描仪停止从 mysqldump 标准输出读取一半的行
- tensorflow - 我可以使用 tensorflow keras 模型优化工具包对 keras 预训练模型进行修剪吗?
- typescript - 如何在 Angular 6 中生成一个包含所有模块、组件、服务的库并在另一个项目中使用该库
- c# - C# WPF - 任务与多线程,并从中更新 UI 组件
- r - 用条件估算值单元