You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Bicep将Log Analytics工作区添加到现有AMPLS并解决BCP165错误

解决方案:跨资源组/订阅关联Log Analytics工作区到AMPLS

Bicep 实现方案

错误原因

原代码触发BCP165错误是因为:ampls资源的作用域(另一个资源组/订阅)与主Bicep文件的部署作用域不一致,而amplsScope作为其子资源继承了父资源的作用域,违反了Bicep中「资源计算作用域必须与部署文件作用域匹配」的规则,必须通过模块切换作用域解决。

正确实现步骤

  1. 创建关联模块(ampls-link-law.bicep)
    该模块部署在AMPLS所在的资源组内,负责创建关联资源:

    param amplsName string
    param linkedResourceId string
    param amplsScopeName string
    
    // 引用当前作用域下已存在的AMPLS
    resource ampls 'microsoft.insights/privatelinkscopes@2021-07-01-preview' existing = {
      name: amplsName
    }
    
    // 创建关联资源
    resource amplsScope 'microsoft.insights/privatelinkscopes/scopedresources@2021-07-01-preview' = {
      parent: ampls
      name: amplsScopeName
      properties: {
        linkedResourceId: linkedResourceId
      }
    }
    
  2. 主Bicep文件调用模块
    在主文件中引用Log Analytics工作区,并将模块部署到AMPLS所在的资源组:

    param lawSubId string
    param lawRg string
    param lawName string
    param amplsSubscriptionId string
    param amplsRg string
    param amplsName string
    param amplsScopeName string
    
    // 引用跨订阅/资源组的Log Analytics工作区
    resource law 'Microsoft.OperationalInsights/workspaces@2022-10-01' existing = {
      scope: resourceGroup(lawSubId, lawRg)
      name: lawName
    }
    
    // 调用模块,切换到AMPLS的资源组部署关联
    module linkAmplsLaw './ampls-link-law.bicep' = {
      name: 'link-ampls-law-deployment'
      scope: resourceGroup(amplsSubscriptionId, amplsRg)
      params: {
        amplsName: amplsName
        linkedResourceId: law.id
        amplsScopeName: amplsScopeName
      }
    }
    

Azure CLI 实现方案

# 配置变量
LAW_SUBSCRIPTION="你的Log Analytics订阅ID"
LAW_RG="你的Log Analytics资源组名"
LAW_NAME="你的Log Analytics工作区名"
AMPLS_SUBSCRIPTION="你的AMPLS订阅ID"
AMPLS_RG="你的AMPLS资源组名"
AMPLS_NAME="你的AMPLS名称"
SCOPED_RESOURCE_NAME="自定义关联名称"

# 获取Log Analytics工作区ID
LAW_ID=$(az monitor log-analytics workspace show --subscription $LAW_SUBSCRIPTION --resource-group $LAW_RG --name $LAW_NAME --query id -o tsv)

# 创建关联
az monitor private-link-scope scoped-resource create \
  --subscription $AMPLS_SUBSCRIPTION \
  --resource-group $AMPLS_RG \
  --scope-name $AMPLS_NAME \
  --name $SCOPED_RESOURCE_NAME \
  --linked-resource-id $LAW_ID

PowerShell 实现方案

# 配置变量
$lawSubscriptionId = "你的Log Analytics订阅ID"
$lawResourceGroup = "你的Log Analytics资源组名"
$lawName = "你的Log Analytics工作区名"
$amplsSubscriptionId = "你的AMPLS订阅ID"
$amplsResourceGroup = "你的AMPLS资源组名"
$amplsName = "你的AMPLS名称"
$scopedResourceName = "自定义关联名称"

# 获取Log Analytics工作区ID
Set-AzContext -Subscription $lawSubscriptionId
$lawId = (Get-AzOperationalInsightsWorkspace -ResourceGroupName $lawResourceGroup -Name $lawName).Id

# 创建关联
Set-AzContext -Subscription $amplsSubscriptionId
New-AzMonitorPrivateLinkScopeScopedResource `
  -ResourceGroupName $amplsResourceGroup `
  -ScopeName $amplsName `
  -Name $scopedResourceName `
  -LinkedResourceId $lawId

内容的提问来源于stack exchange,提问作者GetShifting

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 02:17:12