New-AzureStorageContainer: удаленный сервер возвратил ошибку: (403) Запрещено в powershell - PullRequest
0 голосов
/ 25 мая 2018

Проблема

Я начинаю работу с хранилищем BLOB-объектов Azure, поэтому выполнил это руководство , чтобы начать работу.Я пытаюсь подключиться к эмулятору хранилища локально, и я использую Powershell, чтобы попытаться создать новый контейнер, но когда я использую следующий скрипт

$context = New-AzureStorageContext -StorageAccountName "devstoreaccount1" -StorageAccountKey "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
New-AzureStorageContainer "sascontainer" -Permission Off -Context $context
$now = Get-Date
New-AzureStorageContainerSASToken -Name "sascontainer" -Permission rwdl -ExpiryTime $now.AddHours(-1.0) -Context $context -FullUri

, я получаю это сообщение:

New-AzureStorageContainer: удаленный сервер возвратил ошибку: (403) Запрещено.Код состояния HTTP: 403 - Сообщение об ошибке HTTP: серверу не удалось аутентифицировать запрос.Убедитесь, что значение заголовка авторизации сформировано правильно, включая подпись.

Что я сделал

  • проверил azureStorageEmulator.exe.config

<accounts> <account name="devstoreaccount1" authKey="Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==" /> </accounts>

  • бит поиска вернул this , что заставило меня проверить время, в которое установлен мой эмулятор (сделатьчто я назвал http://127.0.0.1:10000/devstoreaccount1/sascontainer).Ответ был ошибкой, но это показывает, что эмулятор настроен на время UTC, что на 1 час меньше времени моего компьютера, что я учел в своем сценарии

  • Скачать обозреватель хранилища Microsoft Azure иуспешно подключен через этот инструмент.Я попытался найти что-то полезное в этом инструменте, чтобы помочь мне, но не смог сделать это

Вопрос Как подключиться к эмулятору хранилища Azure через* 1042 PowerShell *

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

У меня была такая же проблема, но я нашел решение в вашем описании проблемы.Все, что мне для этого нужно, - это настроить время (выключить, а затем включить автоматическую настройку времени).

В моем случае тот же сценарий PowerShell, который работал вчера, перестал работать сегодня.Что изменилось?На самом деле, я только что перезагрузил свой ноутбук и вошел в свою учетную запись Ubuntu, а затем перезагрузился обратно в Windows.Это сдвигает время на несколько часов.Я знаю об этой ошибке, но обычно я не забочусь об этом.Но при работе с онлайн-сервисами это может привести к таким проблемам с аутентификацией.

0 голосов
/ 25 мая 2018

Для доступа к эмулятору хранилища мы можем использовать New-AzureStorageContext -Local или New-AzureStorageContext -ConnectionString "UseDevelopmentStorage=true".

Более подробно мы также можем установить -ConnectionString с

"DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;"

Указав только StorageAccountName иStorageAccountKey, как вы сделали, это посетить http://devstoreaccount1.blob.core.windows.net онлайн.Потому что по умолчанию конечной точкой службы является <http|https>://<account-name>.<service-name>.core.windows.net, а при локальной разработке - http://127.0.0.1:1000<0-2>/devstoreaccount1.См. руководство , которое вы упомянули.

И ссылку на powershell документ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...