首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问/转换模块输出到二头肌中的特定对象?

如何访问/转换模块输出到二头肌中的特定对象?
EN

Stack Overflow用户
提问于 2021-10-15 12:18:11
回答 1查看 1.1K关注 0票数 3

我的二头肌下面正在返回钥匙库。我喜欢访问父二头肌键库中的属性/函数。但不知道如何实现时,使用它作为一个模块。

  1. 我有keyvault.bicep
代码语言:javascript
复制
    resource kv 'Microsoft.KeyVault/vaults@2019-09-01' existing = {
         name: kvName
         scope: resourceGroup(subscriptionId, kvResourceGroup )
       }
       output kv1 object=kv
  1. 我有parent.bicep (其中keyvault.bicep作为模块包括)
代码语言:javascript
复制
   module kv './keyvault.bicep' = {
     name: 'get Secrets'
     params: {
       subscriptionId: subscriptionId
       kvResourceGroup: resourceGroupName
       kvName: keyVaultName
     }
   }
   var pwd= kv.outputs.kv1.getSecret('key')
  1. 但是getSecret方法在父母二头肌中是未知的。

请建议如何进行?

EN

回答 1

Stack Overflow用户

发布于 2021-10-17 22:23:38

简单地说,这是不被支持的。

parent.bicep文件中,kv是模块引用,而不是资源。为了正确理解父-子资源层次结构,Bicep需要父属性值中正确父类型的资源引用。

因此,有人建议简化资源引用:

假设您有创建密钥库的keyvault.bicep模块

代码语言:javascript
复制
resource kv 'Microsoft.KeyVault/vaults@2019-09-01' = {
  name: kvName
  ...
}

output name string = kv.name

在parent.bicep中,您可以获得这样的密钥库的引用:

代码语言:javascript
复制
module kvModule './keyvault.bicep' = {
  name: 'key-vault-${keyVaultName}'
  params: {
    kvName: keyVaultName
    ...
  }
}

resource kv 'Microsoft.KeyVault/vaults@2019-09-01' existing = {
  name: kvModule.outputs.name
}

在您的示例中,很少有如下内容:

  • 密钥库模块只获得对密钥库的引用,因此您不需要真正的模块,只需在parent.bicep文件中直接引用密钥库即可。
  • getSecret函数是一个非常特殊的函数,您只能使用它将安全参数传递给另一个模块:从Azure密钥库返回一个秘密。getSecret函数只能在Microsoft.KeyVault/vaults资源上调用。使用此函数将秘密传递给Bicep模块的安全字符串参数。该函数只能与具有@secure()装饰器的参数一起使用。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69584597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档