【问题标题】:How to use keyvault that is in another bicep module file如何使用另一个二头肌模块文件中的密钥库
【发布时间】:2023-01-26 14:44:35
【问题描述】:

我正在创建一个部署密钥保管库和一些存储帐户的 bicep 文件。但是这些资源在不同的模块文件中。当我尝试将存储帐户连接字符串添加到密钥保管库时,我似乎可以引用密钥保管库。

主二头肌

module resourceKeyVaultModule './modules/keyvault.bicep' = {
  name: 'resourceKeyVaultModuleDeployment'
  params: {
    application: application
    location: location
    environment: environment
    severity: severity
  }
  scope: resourceGroup
}

module resourceStorageAccountModule './modules/storage.bicep' = {
  name: 'resourceStorageAccountModuleDeployment'
  params: {
    application: application
    location: location
    environment: environment
    severity: severity
    keyVault: resourceKeyVaultModule.outputs.name
  }
  scope: resourceGroup
}

密钥库.bicep

// == Key Vault
resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = {
  name: nameKeyVault
  location: location
  tags: {
    location: location
    environment: environment
    severity: severity
  }
  properties: {
    accessPolicies: [
      {
        objectId: ''
        permissions: {
          certificates: [
            'all'
          ]
          keys: [
            'all'
          ]
          secrets: [
            'all'
          ]
          storage: [
            'all'
          ]
        }
        tenantId: ''
      }
    ]
    sku: {
      family: 'A'
      name: 'standard'
    }
    tenantId: ''
  }
}

output name string = keyVault.name

存储.二头肌

param keyVault string

// == Storage Account
resource storageAccount 'Microsoft.Storage/storageAccounts@2022-05-01' = {
  name: nameStorageAccount
  location: location
  tags: {
    location: location
    environment: environment
    severity: severity
  }
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    minimumTlsVersion: 'TLS1_2'
  }
}

resource secretConnectionString 'Microsoft.KeyVault/vaults/secrets@2022-07-01' = {
  name: 'connectionString-storageAccount'
  dependsOn: [keyVault]
  tags: {
    location: location
    environment: environment
    severity: severity
  }
  properties: {
    value: 'DefaultEndpointsProtocol=https;AccountName=${storageAccount.name};AccountKey=${listKeys(storageAccount.id, storageAccount.apiVersion).keys[0].value};EndpointSuffix=${az.environment().suffixes.storage}'
  }
}

dependsOn: [keyVault] 错误:封闭数组需要类型为“module[] | (resource | module) | resource[]”的项目,但提供的项目类型为“string”.bicep(BCP034)

【问题讨论】:

    标签: azure azure-keyvault azure-bicep


    【解决方案1】:

    我认为您正在寻找 existing 关键字。

    要引用未部署在当前 Bicep 文件中的现有资源,请使用 existing 关键字声明该资源。当您部署需要从现有资源获取值的资源时,请使用 existing 关键字。您可以通过其符号名称访问现有资源的属性。

    当使用现有关键字引用时,不会重新部署资源。

    来源:Existing resources in Bicep

    【讨论】:

    • 谢谢,我会在 5 分钟内接受。
    猜你喜欢
    • 1970-01-01
    • 2022-10-13
    • 2021-09-04
    • 1970-01-01
    • 2021-07-26
    • 2021-07-30
    • 1970-01-01
    • 2023-03-10
    • 2022-10-13
    相关资源
    最近更新 更多