Mic*_*ael 1 azure azure-resource-manager azure-blob-storage azure-bicep
所以,我有一个 StorageAccount.bicep
//StorageAccount.bicep
param storageAccountSku string = 'Standard_LRS'
param storageAccountName string
param storageAccountType string = 'StorageV2'
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-08-01' = {
name: storageAccountName
location: location
tags: tags
sku: {
name: storageAccountSku
}
kind: storageAccountType
}
output name string = storageAccount.name
Run Code Online (Sandbox Code Playgroud)
在main.bicep中,它调用StorageAccount.bicep来创建容器。
module storage_account_1 'modules/storageAccount.bicep' = {
name: 'storage_account1'
scope: rg
params: {
storageAccountSku: 'Standard_LRS'
storageAccountType: 'StorageV2'
storageAccountName: 'storage_account1"
}
}
Run Code Online (Sandbox Code Playgroud)
第二个存储帐户
var storageName = toLower('${envType}${rgNameUid}${toLower(app)}')
module storage_account_2 'modules/storageAccount.bicep' = {
name: 'storage_account2'
scope: rg
params: {
storageAccountSku: 'Standard_LRS'
storageAccountType: 'StorageV2'
storageAccountName: storageName
}
}
Run Code Online (Sandbox Code Playgroud)
然后我有另一个 helper.bicep 可以设置或覆盖任何设置。
//helper.bicep
resource my_storage 'Microsoft.Storage/storageAccounts@2022-05-01' existing = {
name: storageName
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何将 blob 容器添加到第二个存储帐户?
我尝试创建 blobContainer.bicep,然后从 main.bicep 调用它。
param storageAccountName string
param storageAccount object
@description('Name of the blob container to deploy.')
param blobContainerNames array
var cleanedContainerNames = [for x in blobContainerNames: toLower(x)]
resource blobContainers 'Microsoft.Storage/storageAccounts/blobServices/containers@2022-05-01' = [for containerName in cleanedContainerNames: {
name: '${storageAccountName}/default/${containerName}'
dependsOn: [
storageAccount
]
properties: {
publicAccess: 'None'
}
}]
output name string = blobContainers.name
Run Code Online (Sandbox Code Playgroud)
但它在以下行中出错,我可以将参数声明为模块来传递吗?
dependsOn: [
storageAccount
]
Run Code Online (Sandbox Code Playgroud)
更新:
我可以做这样的事情吗?
//helper.bicep
resource my_storage 'Microsoft.Storage/storageAccounts@2022-05-01' existing = {
name: storageName
}
//Add the following lines
resource storagecontainer 'Microsoft.Storage/storageAccounts/blobServices/containers@2022-05-01' = {
name: '${storageName}/default/mycontainer'
dependsOn: [
my_storage
]
}
Run Code Online (Sandbox Code Playgroud)
您始终可以在存储模块内添加容器创建:
// StorageAccount.bicep
param storageAccountName string
param location string = resourceGroup().location
param tags object = {}
param storageAccountSku string = 'Standard_LRS'
param storageAccountType string = 'StorageV2'
param containerNames array = []
// Create storage
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-08-01' = {
name: storageAccountName
location: location
tags: tags
sku: {
name: storageAccountSku
}
kind: storageAccountType
}
resource blobService 'Microsoft.Storage/storageAccounts/blobServices@2021-06-01' = {
name: 'default'
parent: storageAccount
}
// Create containers if specified
resource containers 'Microsoft.Storage/storageAccounts/blobServices/containers@2021-06-01' = [for containerName in containerNames: {
parent: blobService
name: !empty(containerNames) ? '${toLower(containerName)}' : 'placeholder'
properties: {
publicAccess: 'None'
metadata: {}
}
}]
output name string = storageAccount.name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3348 次 |
| 最近记录: |