如何在ARM输出中访问迭代值?

时间:2019-10-03 07:22:06

标签: azure

我正在研究ARM模板。实际上,我必须一次将两个资源部署到我的Azure帐户中。为此,我在遵循document之后使用了copyindex()概念,并能够成功地部署它们。现在,我试图通过使用ARM中的“输出”概念来显示已部署资源的名称。但是由于资源部署的循环,导致以下错误。

"DeploymentOutputEvaluationFailed",
"message": "Unable to evaluate template outputs: 'alertName'. Please see error details and deployment operations. Please see https://aka.ms/arm-debug for usage details.",
"details": [
    {
        "code": "DeploymentOutputEvaluationFailed",
        "target": "alertName",
        "message": "The template output 'alertName' is not valid: The language expression property 'alertMetricType' can't be evaluated.."
    }
]

您能否建议我“如何获取copyindex()循环的值作为ARM输出会话值”

1 个答案:

答案 0 :(得分:0)

例如,我建议像这样引用它,因为您需要对每个模板组装一个数组,以获取前一个模板的输出,并将其与自己的输出连接起来,然后打印结果。

  "parameters": {
        "state": {
            "value": []
        }
    }


    "parameters": {
        "state": {
            "value": "[reference(concat('loop', copyIndex())).outputs.state.value]"
        }
    }

然后在输出中调用它:

"outputs": {
    "state": {
        "type": "array",
        "value": "[concat(parameters('state'), array(stuff_out))]"
}