azure 如何通过二头肌将日志分析工作区添加到现有的amps

juzqafwq  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(91)

后台

我们有一个中心辐射拓扑。在集线器中,有一个已经连接了日志分析工作区的amps,该工作区也存在于集线器中。这个管用所有的资源都是通过二头肌增加。

新增日志分析工作区

在一个新的分支中,我添加了一个日志分析工作区。正如文档所述,您应该将其添加到现有的amps中。

二头肌

我已经创建了一个新的二头肌模块,

resource law 'Microsoft.OperationalInsights/workspaces@2022-10-01' existing = {
  scope: resourceGroup(lawSubId, lawRg)
  name: lawName
}

resource ampls 'microsoft.insights/privatelinkscopes@2021-07-01-preview' existing = {
  scope: resourceGroup(amplsSubscriptionId, amplsRg)
  name: amplsName
}

// deploy ampls scoped resources
resource amplsScope 'microsoft.insights/privatelinkscopes/scopedresources@2021-07-01-preview' = {
  parent: ampls
  name: amplsScopeName
  properties: {
    linkedResourceId: law.id
  }
}

所以法律和amps资源已经存在了,我想添加一个新的范围,这样amps和法律就联系起来了。

错误

在上面的设置中,我得到以下错误:

Error BCP165: A resource's computed scope must match that of the Bicep file for it to be deployable. This resource's scope is computed from the "scope" property value assigned to ancestor resource "ampls". You must use modules to deploy resources to a different scope.

但是,当我试图移动现有的amps资源,使amplsScope现在是模块中的部署时,我得到了一个错误,即父类型是string而不是“privatelinkscopes”。

请求

有人知道如何在Bicep中实现这一点吗?当我通过Azure DevOps管道部署这个时,我也会很高兴使用Azure CLI示例,或者如果没有其他选择,则使用powershell。
如果有什么信息遗漏了就告诉我。

wkftcu5l

wkftcu5l1#

部署的范围需要与正在部署的资源的范围相匹配:不能在模块中指定amps的作用域

resource law 'Microsoft.OperationalInsights/workspaces@2022-10-01' existing = {
  scope: resourceGroup(lawSubId, lawRg)
  name: lawName
}

resource ampls 'microsoft.insights/privatelinkscopes@2021-07-01-preview' existing = {
  name: amplsName
}

// deploy ampls scoped resources
resource amplsScope 'microsoft.insights/privatelinkscopes/scopedresources@2021-07-01-preview' = {
  parent: ampls
  name: amplsScopeName
  properties: {
    linkedResourceId: law.id
  }
}

然后你可以像这样调用你的模块:

az deployment group create --resource-group <ampls-rg>

如果此模块是更大部署的一部分,则可以在调用模块时指定范围:

// main.bicep

module approvePrivateEndpoint 'modules/ampls-scoped-resource.bicep' = {
  name: 'ampls-scoped-resource'
  scope: resourceGroup(amplsSubscriptionId, amplsRg)
  params: {
    amplsName: ''
    amplsScopeName: ''
    lawName: ''
    lawRg: ''
    lawSubId: ''
  }
}

相关问题