如何在日志查询中传递手臂模板的参数或变量

时间:2019-12-03 08:57:42

标签: json azure parameters azure-resource-manager arm-template

在Arm模板中处理日志查询时,我坚持如何在日志查询中传递参数值或变量值。

parameters:   
{  
    "resProviderName":     
        {  
          "value": "Microsoft.Storage"      
       }  
} 

例如:

AzureMetrics | where ResourceProvider == **parameters('resProviderName')** | where Resource == 'testacc'  

在这里我遇到一个错误,例如,它以 parameters('resProviderName')作为值,并且没有从该特定参数“ resProviderName”中读取值,我的要求是采用来自参数或变量的值,并且不应该像在上面的查询中那样以 Resource =='testacc'的方式进行硬编码。
我们是否可以选择从日志查询中的参数或变量中读取值? 如果是这样,请在此问题上提供帮助。

1 个答案:

答案 0 :(得分:0)

对此的答案将取决于此查询段是哪个部分以及模板的结构。

您似乎正在尝试在查询中引用资源。如果您想要资源的详细信息,例如它的resourceID(在 resources 部分中),则最好使用众多可用模板resource functions中的一种。当引用在同一模板中部署的资源时,请通过参数提供资源的名称。当引用未部署在同一模板中的资源时,请获取资源ID。

此外,我建议参考this示例中的ARM代码片段,以了解如何将查询构造为自定义变量,而不是相反。根据ARM模板最佳实践,应将变量用于需要在模板中多次使用的值。如果一个值仅使用一次,则硬编码的值会使您的模板更易于阅读。有关更多信息,请查看this文档。

希望这会有所帮助。