gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 00:39:16 26 4
gpt4 key购买 nike

我有一个 ARM 模板,除其他资源外,它还创建一个托管 Web 作业的网站和一个属于调度程序一部分的作业。我已成功通过 ARM 模板配置了除身份验证之外的所有内容。

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

最佳答案

我找到了一个能帮助我完成大部分任务的答案;您可以将请求的 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 属性来解决此问题,该属性是一个uri 属性的同级,如下所示

“身份验证”:{
“类型”:“基本”,
“用户名”:“[list(resourceId('Microsoft.Web/sites/config',变量('webSiteName'),'publishingcredentials'),'2016-08-01').properties.publishingUserName]”,
“密码”:“[列表(resourceId('Microsoft.Web/sites/config',变量('webSiteName'),'发布凭据'),'2016-08-01').properties.publishingPassword]”
}

关于azure - 在 ARM 模板中检索网站部署凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40684609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com