ResourceID 函数没有生成正确的资源 ID?
ResourceID function not generating correct resource ID?
我有一个奇怪的问题,我有一个简单的 ARM 模板,将 activity 日志发送到日志分析工作区,应该很简单,我的代码如下
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "String"
}
},
"resources": [
{
"type": "Microsoft.Insights/diagnosticSettings",
"apiVersion": "2017-05-01-preview",
"name": "send activity log to workspace",
"dependsOn": [],
"properties": {
"workspaceId": "[resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspaceName'))]",
"logs": [
{
"category": "Administrative",
"enabled": true
},
{
"category": "Alert",
"enabled": true
},
{
"category": "Autoscale",
"enabled": true
},
{
"category": "Policy",
"enabled": true
},
{
"category": "Recommendation",
"enabled": true
},
{
"category": "ResourceHealth",
"enabled": true
},
{
"category": "Security",
"enabled": true
},
{
"category": "ServiceHealth",
"enabled": true
}
]
}
}
]
}
但是在输入我的 workspaceName 参数和 运行 部署后,它一直抱怨找不到工作空间。
"message": "资源
'/subscriptions/0000000-0000-0000-0000-0000000000000/providers/microsoft.operationalinsights/workspaces/cstackhub-mcslog-analytics'
不存在。"
(我用0000替换了实际的sub id)
我知道工作区在那里,奇怪的是如果我查看资源浏览器并查看该工作区 ID,我可以看到它实际上是
"/subscriptions/0000000-0000-0000-0000-0000000000000/resourcegroups/cstackhub-sharedsvcs-rg/providers/microsoft.operationalinsights/workspaces/cstackhub-mcslog-analytics"
所以资源 ID 中似乎缺少 resourcegroups/cstackhub-sharedsvs-rg 是问题所在,问题是为什么资源 ID 函数没有给我正确的资源 ID?我一直在其他模板中使用完全相同的资源 ID 函数,没有任何问题
从邮件的外观来看,您似乎正在部署到订阅(New-AzDeployment
或 New-AzSubscriptionDeployment
)而不是资源组(New-AzResourceGroupDeployment
)。
部署到订阅时,函数 resourceId()
将 return
/subscriptions/{subscriptionId}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
部署到资源组时,函数 returns
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
我有一个奇怪的问题,我有一个简单的 ARM 模板,将 activity 日志发送到日志分析工作区,应该很简单,我的代码如下
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"workspaceName": {
"type": "String"
}
},
"resources": [
{
"type": "Microsoft.Insights/diagnosticSettings",
"apiVersion": "2017-05-01-preview",
"name": "send activity log to workspace",
"dependsOn": [],
"properties": {
"workspaceId": "[resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspaceName'))]",
"logs": [
{
"category": "Administrative",
"enabled": true
},
{
"category": "Alert",
"enabled": true
},
{
"category": "Autoscale",
"enabled": true
},
{
"category": "Policy",
"enabled": true
},
{
"category": "Recommendation",
"enabled": true
},
{
"category": "ResourceHealth",
"enabled": true
},
{
"category": "Security",
"enabled": true
},
{
"category": "ServiceHealth",
"enabled": true
}
]
}
}
]
}
但是在输入我的 workspaceName 参数和 运行 部署后,它一直抱怨找不到工作空间。
"message": "资源 '/subscriptions/0000000-0000-0000-0000-0000000000000/providers/microsoft.operationalinsights/workspaces/cstackhub-mcslog-analytics' 不存在。"
(我用0000替换了实际的sub id) 我知道工作区在那里,奇怪的是如果我查看资源浏览器并查看该工作区 ID,我可以看到它实际上是 "/subscriptions/0000000-0000-0000-0000-0000000000000/resourcegroups/cstackhub-sharedsvcs-rg/providers/microsoft.operationalinsights/workspaces/cstackhub-mcslog-analytics"
所以资源 ID 中似乎缺少 resourcegroups/cstackhub-sharedsvs-rg 是问题所在,问题是为什么资源 ID 函数没有给我正确的资源 ID?我一直在其他模板中使用完全相同的资源 ID 函数,没有任何问题
从邮件的外观来看,您似乎正在部署到订阅(New-AzDeployment
或 New-AzSubscriptionDeployment
)而不是资源组(New-AzResourceGroupDeployment
)。
部署到订阅时,函数 resourceId()
将 return
/subscriptions/{subscriptionId}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
部署到资源组时,函数 returns
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}