Создание контейнера хранения из контекста 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-​Azure​Storage​Container -Name "images" -Permission Off

Ошибка:

Контейнер хранения New-Azure. Термин "Контейнер хранения New-Azure" не распознается как имя командлета, функции, файла сценария или работоспособной программы. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку.

Попытка № 2 (на основании этого)

так же, как и раньше, но добавление Import-Module AzureRM.Storage и используя New-​AzureRm​Storage​Container вместо.

Ошибка:

Контейнер хранения 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-​Azure​Storage​Container -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-​Azure​Storage​Container -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-​Azure​Storage​Container -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-​Azure​Storage​Container -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)".

Другие вопросы по тегам