API Azure REST - восстановление Создание / обновление управляемого экземпляра SQL из API - PullRequest
0 голосов
/ 18 марта 2019

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

Мой URL выглядит так:

https://management.azure.com/subscriptions/<subscription ID>/resourceGroups/<Resouce Group Name>/providers/Microsoft.Sql/managedInstances/<Managed Instance Name>/databases/<Database Name>?api-version=2017-03-01-preview

Мой запрос выглядит так:

{
    "location" : "southcentralus", 
    "properties" : {
        "createMode" : "RestoreExternalBackup",
        "storageContainerSasToken" : "<SAS Token>",
        "storageContainerUri" : "<Storage Container Uri>",
        "collation": "SQL_Latin1_General_CP1_CI_AS"
    }
}

Когда я отправляю запрос, я получаю 202 (Принято). Тем не менее, когда я запрашиваю статус запроса, используя возвращенный заголовок местоположения, мне выдают Внутреннюю ошибку сервера и идентификатор отслеживания, который я не могу понять, откуда идти дальше.

Я уверен, что мой запрос действителен согласно документам. Я предоставляю поля, которые они помечают как (условно) обязательные для данного createMode, и мой запрос, похоже, соответствует примеру из документации.

То, что мне нравится, это то, что я не могу указать, какой файл резервной копии восстановить в этом запросе. Если мой токен SAS неверен, возвращается ошибка типа проверки, поэтому я считаю, что это правильно. У меня есть этот запрос, работающий с createMode PointInTimeRestore, но это больше обходного пути на данный момент.

edit: Дополнительная информация: Базу данных можно успешно восстановить с помощью Sql Mgmt Studio. PointInTimeRestore, который, казалось, работал, на самом деле не работает. Это делает это дальше, но в конечном итоге ошибки также.

...