git - Azure 资源组部署与来自非公共 GIT 的 ARM 链接模板
问题描述
我可以使用来自 New-AzureRmResourceGroupDeployment 的 -TemplateUri 参数指向非公共 GIT 资源(不是 GitHub)吗?
有没有其他方法可以使用 GIT 作为 ARM 模板和链接模板的源(不使用 azure storage 或 azure function hack - 如下所述)?
上述问题的附加信息:
我正在尝试使用 VSTS 构建管道配置一些资源,但是为了这个问题,我将其限制为 powershell New-AzureRmResourceGroupDeployment 命令。
工作场景(无链接模板)
New-AzureRmResourceGroupDeployment -ResourceGroupName RG -TemplateFile path_to_local_template/template.json
如果template.json
没有链接/嵌套模板,则一切正常。当我添加链接模板时,由于链接模板文件的位置未知,它开始失败。这是非常清楚的 - 因为链接模板在我的本地计算机(或代理计算机)上,并且在资源管理器中不可见。
我决定使用 -templateUri 参数(template.json 在 Git repo 中)
New-AzureRmResourceGroupDeployment -ResourceGroupName RG -TemplateUri https://<org>.visualstudio.com/<proj>/_apis/git/repositories/..../items?path=.../template.json
如果我已登录,则指向资源的Git Api链接可以通过浏览器完美运行(所以它是正确的)。
执行上述命令时,我得到(XXX 与提供的 templateUri 完全相同):
##[error]Failed to download the file. URL: XXX . Error: 302: Found
同样,有点明显 - 由于授权重定向。
我发现了来自 Tao Yang 的一篇不错的博客文章,关于做同样的事情,但针对 GitHub。他不得不使用 Aruze 函数作为获取模板 json 的代理来破解它。我想在我的解决方案中避免代理。
另一种方法是为此使用Azure 存储和 SAS 令牌- 因此将模板从 Git 复制到 azure 存储,然后使用 SAS 令牌通过 URL 访问它。我也想避免使用天蓝色存储。
我尝试使用公共令牌template.json
通过 git api 进行访问,如SO 上的答案之一所述,因此模板的 URL 如下所示:
https://name:<token>@<org>.visualstudio.com/<proj>/_apis/git/repositories/..../items?path=.../template.json
但是我仍然收到 302 错误。
当然,如果我让 teplateUri 正常工作,那么下一步就是让它与链接模板一起工作,该模板也应该从 Git 中获取。
解决方案
推荐阅读
- model-view-controller - 实体框架实现代码优先迁移并防止数据丢失
- python-3.x - Sklearn逻辑回归 - 调整截止点
- swt - 有没有办法禁用 SWT TableColumn 中的复选框
- python - Python重命名错误“找不到文件”错误
- linkedin - 无法为 LinkedIn API 版本 V2 获取公司
- sql - 更高级别聚合的总和
- javascript - '...jQuery is not defined' 使用 webpack 但 jQuery 已定义
- python - 如何覆盖 sys.stdin 以复制输入流
- scala - 通过解析 scala spark 中的表达式以编程方式创建新列
- rest-assured - 如何使用放心获取初始 URL 的 Http 状态码?