Microsoft 提供内置 Azure 策略来审核不符合给定 Python 版本的 Azure 应用服务应用程序:
https://www.azadvertizer.net/azpolicyadvertizer/7008174a-fd10-4ef0-817e-fc820a951d73.html
但是,此策略会审核此字段的值以等于某个版本,并使用连接字符串,例如导致“PYTHON | 3.9”。
Microsoft.Web/sites/config/web.linuxFxVersion
但是,我希望策略能够审核低于低于指定版本的实例。
所以政策要求至少使用3.9或更高版本。低于 3.9 的值应触发策略进行审核/拒绝。
我尝试在存在条件中使用以下逻辑,但是没有运气(空值)。
我希望根据管道 ( | ) 上的分割,数组 ( [1] ) 的第二项将产生版本(即“3.9”)。
{
"value": "[split(field('Microsoft.Web/sites/config/web.linuxFxVersion'),'|')[1]]",
"greaterOrEquals": "[parameters('LinuxPythonVersion')]"
}
经过一些测试,这个存在条件似乎运行良好:
"existenceCondition": {
"anyOf": [
{
"field": "Microsoft.Web/sites/config/web.linuxFxVersion",
"notContains": "PYTHON"
},
{
"allOf": [
{
"field": "Microsoft.Web/sites/config/web.linuxFxVersion",
"greaterOrEquals": "[concat('PYTHON|', parameters('LinuxPythonMajorVersion'), '.', parameters('LinuxPythonMinorVersion'))]"
}
]
}
]
}