在ARM模板中检索网站部署凭据

时间:2016-11-18 19:25:22

标签: azure arm-template

我有一个ARM模板,除其他资源外,还创建一个托管webjob的网站和一个作为调度程序一部分的作业。我已经设法通过ARM模板配置所有配置,除了身份验证。

当作业需要运行时,它会创建一个HTTP请求,该请求应该启动webjob。不幸的是,webjob从未启动过。如果我进入Azure门户并更新作业的设置(操作设置)并配置基本身份验证(使用部署凭据),一切都按预期开始工作,但我不确定如何从ARM模板检索这些凭据。我可以运行一次,创建网站,获取凭据然后更新ARM模板,但这首先打败了我正在构建ARM模板的全部原因。

1 个答案:

答案 0 :(得分:4)

我找到了一个让我大部分回答的答案;您可以将请求的Uri设置为list(resourceId('Microsoft.Web/sites/config', variables('webSiteName'), 'publishingcredentials'), '2016-08-01').properties.scmUri。您还需要合并路径的其余部分(例如/api/triggeredwebjobs/{webjobname}/run

上面代码生成的Uri包含基本身份验证凭据,并且在某些时候解析并且用户名和密码从Uri中取出,因此它们在Azure门户中不可见,并且身份验证是设置为'基本',凭据设置为提取的值。

但是,我的Uri在末尾附加了查询字符串,以将参数传递到webjob中。在部署过程中,查询字符串被破坏(问号被转义为%3F,如果您的参数值中有任何转义字符,它们将被取消转义。

我设法解决这个问题,将字符串拼接在一起构成Uri(不使用scmUri属性),然后设置authentication属性,这是{{1}的兄弟属性看起来像下面的

uri

相关问题