gpt4 book ai didi

azure - 在 Bicep 或 ARM 中,如何检测策略规则部分中仅为空格的参数值?

转载 作者:行者123 更新时间:2023-12-03 06:23:10 24 4
gpt4 key购买 nike

我正在使用 Bicep,但我了解旧的 ARM JSON 语法,足以在有人知道一个但不知道另一个的情况下适应解决方案。不管怎样,我可以通过在我的一个policyRule对象中执行此操作来轻松判断参数值是否为空字符串:

policyRule: {
if: {
{
field: '[concat(\'tags[\', parameters(\'tagName\'), \']\')]'
equals: ''
}
}
...rest of rule and then statement
}

或使用 exists: false 测试存在性

但是我如何检查该值是否只是一堆空格,例如 "" ?我尝试将 field: value 修改为:

[trim(concat(\'tags[\', parameters(\'tagName\'), \']\'))]

但它似乎不起作用。我仍然可以输入一堆空格并使其通过验证。

最佳答案

Trim 仅删除前导和尾随空白,我也给出了与您使用的相同的空白。

这将从参数值中删除任何前导或尾随空格,然后再检查参数值是否为空。如果参数值仅包含空格字符,trim 函数会将其转换为空字符串,从而触发 equals: " 条件并使策略检查失败。

policyRule: { 
if: {
{
field: '[trim(concat(\'tags[\', parameters(\'tagName\'), \']\'))]'
equals: ''
}
}
}

但是,您需要将 replace 函数与正则表达式结合使用,以删除参数值中的所有空白字符。

您可以修改策略规则,如下所示:

policyRule: {
if: {
{
field: '[replace(concat(\'tags[\', parameters(\'tagName\'), \']\'), \'\\s\', \'\')]'
equals: ''
}
}
}

关于azure - 在 Bicep 或 ARM 中,如何检测策略规则部分中仅为空格的参数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75744720/

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