#azure #powershell
#azure #powershell
Вопрос:
Я пытаюсь создать контейнер внутри учетной записи хранилища, используя следующие инструкции:
New-AzResourceGroup -Name $rg_bk -Location $Region -Tag @{CompanyName = $Customer_Name }
$StorageAccountName = "bacpacssa$(Get-Random)"
New-AzStorageAccount -ResourceGroupName $rg_bk -Name $StorageAccountName -Location $Region -SkuName Standard_GRS -Tag @{CompanyName = $Customer_Name } -Kind BlobStorage -AccessTier Cool
$storageKey = (Get-AzStorageAccountKey -ResourceGroupName $rg_bk -Name $StorageAccountName).Value
$StorageContext = New-AzStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $storageKey
$ContainerName = "databasesbacpac$(Get-Random)"
New-AzStorageContainer -Name $ContainerName -Context $StorageContext -Permission Off
но я также получаю следующую ошибку
New-AzStorageContext : Cannot convert 'System.Object[]' to the type 'System.String' required by parameter 'StorageAccountKey'. Specified method is not supported.
Комментарии:
1. это
'System.Object[]'
означает, что у вас есть коллекция, а не один объект. попробуйте проверить $Var, чтобы увидеть, что он содержит … а затем попробуйте выполнить итерацию через него.
Ответ №1:
Эта строка:
$storageKey = (Get-AzStorageAccountKey -ResourceGroupName $rg_bk -Name $StorageAccountName).Value
Возвращает два объекта, поэтому вы получаете значение для каждого из них в массиве. Ваш следующий командлет ( New-AzStorageContext
) требует одно значение для -StorageAccountKey
значения.
Если вы просто хотите использовать первый, вы можете исправить это следующим образом.
$storageKey = (Get-AzStorageAccountKey -ResourceGroupName $rg_bk -Name $StorageAccountName)[0].Value
Это означает, что вы будете использовать значение только из key1
. Если вы хотите использовать key2, вы можете изменить его на [1]
.