azure 如何使用bicep将父资源名称引用到模块内的资源

tquggr8v  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(143)

如何使用Microsoft bicep代码将父资源名称引用到模块内的资源。
下面的main.bicep文件代码正在工作。

# main.bicep

param apimName string = 'devApim'
param apimLocation string = 'eastus'
param publisherName string = 'danny'
param publisherEmail string = 'danny@gmail.com'

param api_display_name string = 'Test Consumer API'
param api_description         = 'Test API description'
param api_versioningScheme    = 'Segment'

resource devApim_resource 'Microsoft.ApiManagement/service@2021-01-01-preview' = {
  name: apimName
  location: apimLocation
  sku: {
    name: 'Developer'
    capacity: 1
  }
  properties: {
    publisherEmail: publisherEmail
    publisherName: publisherName
  }
}

resource test_api_vs_v1 'Microsoft.ApiManagement/service/apiVersionSets@2021-01-01-preview' = {
// Below reference to first/parent resource is working fine as it's in the same bicep file.
  parent: devApim_resource
  name: 'test_api_vs_name'
  properties: {
    displayName: api_display_name
    description: api_description
    versioningScheme: api_versioningScheme
  }
}

我想把这个main.bicep第二个资源(VersionSet资源)修改成一个模块,就像下面的文件一样。
第一次
现在我如何引用/传递父资源'devApim_resource'(第一个资源)到模块资源test_api_vs_v1(第二个资源)作为使用父资源:devApim_resource在test-api.bicep模块文件中不工作
我对二头肌编码还很陌生。

raogr8fs

raogr8fs1#

有关详细信息,请参阅以下文档:

  • 引用现有资源

您需要将父资源名称作为参数添加到子模块中:

param apimName string

更简单的解决方案是使用父资源生成子资源名称:

resource test_api_vs_v1 'Microsoft.ApiManagement/service/apiVersionSets@2021-01-01-preview' = {
  name: '${apimName}/test_api_vs_name'
  ...
}

也可以引用现有资源,如下所示:

// Reference to the parent resource
resource devApim_resource 'Microsoft.ApiManagement/service@2021-01-01-preview' existing = {
  name: apimName
}

resource test_api_vs_v1 'Microsoft.ApiManagement/service/apiVersionSets@2021-01-01-preview' = {
  parent: devApim_resource 
  name: 'test_api_vs_name'
  ...
}

然后在main.bicep中,可以这样调用chil模块:

module test_api_module 'test-api.bicep' = {
  name: 'test_api'
  params: {
    apimName: devApim_resource.name
    api_display_name: api_display_name
    api_description: api_description
    api_versioningScheme: api_versioningScheme     
  }  
}

相关问题