我需要在BICEP部署期间更新DNS区域。该区域已存在于另一个资源组中。
我知道我应该能够拉取不同RG中的现有资源,但我尝试的方法不起作用。
方法一:
此报告错误
“资源的计算范围必须与Bicep文件的计算范围匹配,才能部署。此资源的作用域是根据分配给祖先资源“zone”的“scope”属性值计算的。您必须使用模块将资源部署到不同的作用域。bicep(BCP 165)”
resource zone 'Microsoft.Network/dnsZones@2023-07-01-preview' existing = {
name: 'xxxx-xxxx.com'
scope:resourceGroup('xxxx-Bicep-xxxx-Deploy1')
}
resource record 'Microsoft.Network/dnsZones/CNAME@2023-07-01-preview' = {
name: 'cname update'
parent: zone
properties: {
TTL: 1200
CNAMERecord:{
cname:'record'
}
}
}
所以我用了一个模块。
方法二:
此报告错误:
此表达式用于对“Microsoft.Network/dnsZones/CNAME”类型的“parent”属性的赋值,该属性需要一个可在部署开始时计算的值。getthezone的属性可以在开始时计算包括“name”.bicep(BCP 120)
文件1
module getthezone 'getdnszone.bicep' = {
name: 'zoneget'
}
resource record 'Microsoft.Network/dnsZones/CNAME@2023-07-01-preview' = {
name: 'cname update'
parent: getthezone.outputs.thezone
properties: {
TTL: 1200
CNAMERecord:{
cname:'tuemp'
}
}
}
文件2
resource zone 'Microsoft.Network/dnsZones@2023-07-01-preview' existing = {
name: 'xxx-xxxx.xxx'
scope:resourceGroup('xxxx-Bicep-xxxx-Deploy1')
}
output thezone object = zone
如果我将文件2的输出更改为string并使用它,我会得到错误:
此表达式用于对“Microsoft.Network/dnsZones/CNAME”类型的“parent”属性的赋值,这需要一个可以在部署开始时计算的值。getthezone的属性可以在开始时计算包括“name”.bicep(BCP 120)
我错过了什么。如何使用BICEP更新另一个资源组中的DNS记录?
1条答案
按热度按时间rur96b6h1#
试试这个
文件1
文件2