gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 23:12:46 24 4
gpt4 key购买 nike

如何使用 Microsoft bicep 代码将父资源名称引用到模块内的资源。

下面的 main.bicep 文件代码正在运行。

# main.bicep

param apimName string = 'devApim'
param apimLocation string = 'eastus'
param publisherName string = 'danny'
param publisherEmail string = '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4521242b2b3c052228242c296b262a28" rel="noreferrer noopener nofollow">[email protected]</a>'

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 资源)修改为如下文件所示的模块。

# main.bicep

param apimName string = 'devApim'
param apimLocation string = 'eastus'
param publisherName string = 'danny'
param publisherEmail string = '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0b6f6a6565724b6c666a626725686466" rel="noreferrer noopener nofollow">[email protected]</a>'

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
}
}

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

}

}

# test-api.bicep file

param api_display_name string
param api_description string
param api_versioningScheme string

resource test_api_vs_v1 'Microsoft.ApiManagement/service/apiVersionSets@2021-01-01-preview' = {
// Below reference to first/parent resource is not working.
//parent: devApim_resource

name: 'test_api_vs_name'
properties: {
displayName: api_display_name
description: api_description
versioningScheme: api_versioningScheme
}
}

现在如何将父资源“devApim_resource”(第一个资源)引用/传递到模块资源 test_api_vs_v1(第二个资源)中,因为使用父资源:devApim_resource 在 test-api.bicep 模块文件中不起作用

我对二头肌编码非常陌生。

最佳答案

找到此文档以了解更多详细信息:

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

param apimName string

然后您可以像这样引用现有资源:

// 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
}
}

关于azure - 如何使用 bicep 将父资源名称引用到模块内的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69245544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com