19

我从 Azure 上的资源组导出了 Azure 资源管理器 JSON 模板。我在生成的文件中看到一堆标签,例如:

"tags": {
    "hidden-link:/subscriptions/[my-subscription-id-here]/resourceGroups/[my-resource-group]/providers/Microsoft.Sql/servers/[my-database-server-name]/databases/[my-database-name]": "Resource"
},

我可以找到的唯一文档来自Using tags to Organize your Azure resources,其中说:

您可能会看到以“hidden-”和“link:”开头的标签。这些是内部标签,您应该忽略并避免更改。

问题是我将要将此资源模板部署到与 ID 硬编码到标签中的订阅完全不同的订阅。硬编码订阅 ID 在此标签中的任何含义都将丢失。我可以安全地删除这个标签吗?这是什么意思,部署后如何使用?

4

3 回答 3

21

只是为了帮助阻止其他人在沮丧中浪费几个小时:

不要从为 Application Insights 中的 Web 测试生成的 ARM 模板中删除这些标签。

我想知道我是否真的需要这些标签,因为它们非常特定于我用来创建模板的资源。阅读此答案后,我认为没有必要,因此我删除了它们并立即忘记了删除它们。

然后部署开始失败,并出现非常描述性的错误:

{
 "code": "BadRequest",
 "message": "{
   "code": "BadRequest",
   "message": "Bad Request\",
   "innererror": 
    {
       "diagnosticcontext": "d657bd3b-6b5f-4b24-8963-c2e9ac76a65b\",
       "time": "2019-02-05T13:37:23.6473698Z"
    }
}

放回“隐藏链接”似乎可以解决问题。

使脚本更具可重用性的另一种方法是指定“隐藏链接”,如下所示:

"tags": { "[concat('hidden-link:', resourceId('Microsoft.Insights/components', parameters('appInsightsName')))]": "Resource" }

applicationInsightName包含 ApplicationInsight 实例名称的变量在哪里

于 2019-02-11T13:55:26.663 回答
10

这些标签用于关联相关资源。它们用于填充链接资源部分。删除标签将阻止资源显示为链接资源,但不会影响任何功能。

在此处输入图像描述

于 2016-07-26T14:41:22.690 回答
-3

Azure 资源管理器 (ARM) 标记对于 Azure 资源或 Azure 资源组是可选的。

您可以安全地删除任何标签,而不会影响您的 ARM 部署。

于 2016-07-26T13:40:37.543 回答