Создание контейнера хранения из контекста ARM
Я пытаюсь настроить новую группу ресурсов с учетной записью хранения и контейнером. Все шаги работают, кроме контейнерной части. Из интернет-ресурсов я прочитал, что эта функциональность API не перенесена на новые командлеты ARM - есть ли обходные пути?
Попытка № 1
Login-AzureRmAccount
Set-AzureRmContext -SubscriptionName "Visual Studio Professional"
$resourceGroup = "MyResourceGroup4"
$location = "West Europe"
New-AzureRmResourceGroup -Name $resourceGroup -Location $location
Write-Host "Created resource group"
New-AzureRmStorageAccount -ResourceGroupName $resourceGroup -AccountName "xzcczxda" -Type Standard_RAGRS -Location $location -AccessTier Cool -Kind BlobStorage
New-AzureStorageContainer -Name "images" -Permission Off
Ошибка:
Контейнер хранения New-Azure. Термин "Контейнер хранения New-Azure" не распознается как имя командлета, функции, файла сценария или работоспособной программы. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку.
Попытка № 2 (на основании этого)
так же, как и раньше, но добавление Import-Module AzureRM.Storage
и используя New-AzureRmStorageContainer
вместо.
Ошибка:
Контейнер хранения New-AzureRm. Термин "Контейнер хранения New-AzureRm" не распознается как имя командлета, функции, файла сценария или работоспособной программы. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку.
Попытка № 3 (на основании этого и этого)
Login-AzureRmAccount
Set-AzureRmContext -SubscriptionName "Visual Studio Professional"
$resourceGroup = "MyResourceGroup9"
$location = "West Europe"
$storageAccountName = "teststorageaccount"
New-AzureRmResourceGroup -Name $resourceGroup -Location $location
Write-Host "Created resource group"
New-AzureRmStorageAccount -ResourceGroupName $resourceGroup -AccountName $storageAccountName -Type Standard_RAGRS -Location $location -AccessTier Cool -Kind BlobStorage
Write-Host "Fetching storage account information"
$storageKey = (Get-AzureStorageKey -StorageAccountName $storageAccountName).Primary
$storageContext = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageKey
New-AzureStorageContainer -Name "images" -Permission Off -Context $storageContext
Ошибка:
Get-AzureStorageKey: ResourceNotFound: Учетная запись хранения "teststorageaccount" не найдена. New-AzureStorageContext: невозможно проверить аргумент для параметра "StorageAccountKey". Аргумент нулевой или пустой. Укажите аргумент, который не является пустым или пустым, а затем повторите команду. Контейнер хранения New-Azure. Термин "Контейнер хранения New-Azure" не распознается как имя командлета, функции, файла сценария или работоспособной программы. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку.
Попытка № 4 (на основании этого)
Login-AzureRmAccount
Set-AzureRmContext -SubscriptionName "Visual Studio Professional"
$resourceGroup = "MyResourceGroup10"
$location = "West Europe"
$storageAccountName = "dasdaaadmb"
New-AzureRmResourceGroup -Name $resourceGroup -Location $location
Write-Host "Created resource group"
New-AzureRmStorageAccount -ResourceGroupName $resourceGroup -AccountName $storageAccountName -Type Standard_RAGRS -Location $location -AccessTier Cool -Kind BlobStorage
Write-Host "Fetching storage account information"
$storageKey = (Get-AzureRmStorageAccountKey -Name $storageAccountName -ResourceGroupName $resourceGroup).Value[0]
$storageContext = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageKey
New-AzureStorageContainer -Name "images" -Permission Off -Context $storageContext
Ошибка:
Контейнер хранения New-Azure. Термин "Контейнер хранения New-Azure" не распознается как имя командлета, функции, файла сценария или работоспособной программы. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку.
Попытка № 5 (на основании этого)
Login-AzureRmAccount
Set-AzureRmContext -SubscriptionName "Visual Studio Professional"
$resourceGroup = "MyResourceGroup11"
$location = "West Europe"
$storageAccountName = "addadadsadad"
New-AzureRmResourceGroup -Name $resourceGroup -Location $location
Write-Host "Created resource group"
New-AzureRmStorageAccount -ResourceGroupName $resourceGroup -AccountName $storageAccountName -Type Standard_RAGRS -Location $location -AccessTier Cool -Kind BlobStorage
Set-AzureRmCurrentStorageAccount -StorageAccountName $storageAccountName -ResourceGroupName $resourceGroup
New-AzureStorageContainer -Name "images" -Permission Off
Ошибка:
Контейнер хранения New-Azure. Термин "Контейнер хранения New-Azure" не распознается как имя командлета, функции, файла сценария или работоспособной программы. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку.
На данный момент у меня нет идей. Как я могу создать контейнер для хранения из контекста ARM? Кажется, это указывает на то, что проблема заключается в том, что я смешиваю ASM и ARM, которые, как я надеялся, были бы решены путем передачи контекста (см. Попытку 3 и 4).
1 ответ
Кредит идет в @GauravMantri для выяснения этого!
Когда я все слово набираю, все работает отлично. Я адаптировал свой оригинальный сценарий, и он работал без проблем.
После этого я посмотрел, из чего состоят две строки.
void Main()
{
var correct = "New-AzureStorageContainer -Name \"images\" -Permission Off -Context $storageContext";
var wrong = "New-AzureStorageContainer -Name \"images\" -Permission Off -Context $storageContext";
for (var i = 0; i < Math.Max(correct.Length, wrong.Length); i++)
{
Console.Write("correct: " + (int) correct[i]);
Console.WriteLine("\twrong: " + (int) wrong[i]);
}
}
Я подчеркнул, где две строки расходятся.
Что подводит меня к этому вопросу: "Что такое код символа HTML 8203?" С магическим ответом " Это символ Unicode 'ZERO WIDTH SPACE" (U+200B)".