Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure 如果条件评估结果不为真,是否可能导致ARM部署失败?_Azure_Arm Template - Fatal编程技术网

Azure 如果条件评估结果不为真,是否可能导致ARM部署失败?

Azure 如果条件评估结果不为真,是否可能导致ARM部署失败?,azure,arm-template,Azure,Arm Template,我正在构建一组ARM模板来部署我的应用程序所需的所有资源,我正在参数文件中指定一个environmentPrefix参数,并在所有资源名称前面加上环境前缀。最终结果是,例如,dev环境中的一个应用程序服务,其基本名称为service1,将获得资源名称dev-service1 给定环境的资源应部署到具有相同环境前缀的资源组中,例如,dev core services 如果RGs名称不是以参数文件environmentPrefix开头,我希望模板部署失败。例如,如果要使用定义environmentP

我正在构建一组ARM模板来部署我的应用程序所需的所有资源,我正在参数文件中指定一个
environmentPrefix
参数,并在所有资源名称前面加上环境前缀。最终结果是,例如,dev环境中的一个应用程序服务,其基本名称为
service1
,将获得资源名称
dev-service1

给定环境的资源应部署到具有相同环境前缀的资源组中,例如,
dev core services

如果RGs名称不是以参数文件
environmentPrefix
开头,我希望模板部署失败。例如,如果要使用定义
environmentPrefix=dev
的参数文件将模板部署到名为
prod core services
的RG中,则部署将失败

我知道我可以在单个资源上放置一个
条件
元素,看起来像这样

“条件”:“[if(startsWith(resourceGroup().name)、concat(parameters('EnvironmentPrefix')、'-')、bool('true')、bool('false'))]”,

但是如果我对所有资源都这样做,模板部署将在它没有实际部署任何东西时说它成功了——因为它们的
条件
元素的计算结果都是false

有没有办法在这种情况下部署失败


(我知道还有其他方法可以安全地执行此操作,例如prod与dev的不同订阅,或者使用具有不同访问权限的不同服务原则进行部署,等等,但这是我目前必须处理的问题:-(

您可以创建一个100%失败的资源,并仅在您的条件失败时部署它,但我认为您应该查看ARM策略,这是创建它们来解决的问题

看看这个问题:

谢谢你的指点。我以前没有深入研究过政策,我会读的。我接受这个答案,因为这可能是做我想做的事情最合适的方式。