gpt4 book ai didi

azure - 有没有办法确保 ARM 模板中的字符串不会太长

转载 作者:行者123 更新时间:2023-12-02 06:19:18 24 4
gpt4 key购买 nike

我正在使用 ARM 模板在我们的 Web 应用程序上创建部署槽,并且在定义主机名绑定(bind)时似乎遇到了问题。我从 Azure 中提取了一个模板,然后将其修改为使用变量,但是当我部署时出现错误:

Too many (2) hostnames in the default DNS zone. Limit is 1.

经过一番调查,我发现 Azure 将分配的自定义域截断为 [domain-name-up-to-40-characters]-staging.azurewebsites.net,这意味着域名不匹配。所以我在我的 ARM 模板中尝试了以下操作:

"type": "Microsoft.Web/sites/slots/hostNameBindings",
"apiVersion": "[variables('myWebapp').apiVersion]",
"name": "[concat(variables('myWebapp').name, '/staging/', substring(variables('myWebapp').name, 0, 40), '-staging', parameters('domain'))]",

这可以解决问题,但前提是应用程序的名称包含 40 个字符或更多。当名称低于该名称时,我收到此错误消息:

The index and length parameters must refer to a location within the string. The index parameter: '0', the length parameter:  '40', the length of the string parameter: '38'

查看文档,如果字符串较短,substring() 将会失败,但我真的很想让 ARM 模板处理这样的事情,而不是对应用程序的名称进行限制。我错过了一些合理的解决方法吗?我想使用条件参数来检查 length() 可能会起作用,但这会使模板膨胀一点。

最佳答案

我认为这是最接近的:

if(greater(length(your-parameter-goes-here), 40), do-substring, return-original-value)

关于azure - 有没有办法确保 ARM 模板中的字符串不会太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57375060/

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