New-AzWebAppBackup: операция вернула недопустимый код состояния «неверный запрос» - PullRequest
1 голос
/ 18 января 2020

Когда я пытаюсь выполнить Azure Резервное копирование службы приложений через Azure Powershell с New-AzWebAppBackup командлетом, как описано здесь:

https://docs.microsoft.com/en-us/powershell/module/az.websites/New-AzWebAppBackup?view=azps-3.3.0

Я получаю следующее сообщение об ошибке:

PS Azure:\> New-AzWebAppBackup -ResourceGroupName "MyResourceGroup" -Name "MyWebApp" -StorageAccountUrl "https://mystorageaccount.file.core.windows.net/"
New-AzWebAppBackup : Operation returned an invalid status code 'BadRequest'
At line:1 char:1
+ New-AzWebAppBackup -ResourceGroupName "MyResourceGroup" -Name " ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : CloseError: (:) [New-AzWebAppBackup], DefaultErrorResponseException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.WebApps.Cmdlets.WebApps.NewAzureWebAppBackup

Azure Powershell Screenshot

Кто-нибудь знает, что мне не хватает? Я благодарен за любой совет. Большое спасибо.

1 Ответ

1 голос
/ 19 января 2020

Здравствуйте и добро пожаловать в Stack Overflow!

Надеюсь, ваше веб-приложение удовлетворяет предварительным требованиям для создания резервной копии. Для функции резервного копирования и восстановления требуется, чтобы план службы приложений был на уровне Standard или Premium . Подробные сведения см. В Требования и ограничения .

Первоначально я получил ту же ошибку при выполнении командлета. Однако передача переключателя -debug с помощью командлета помогла мне лучше понять ошибку:

{
 "ErrorEntity": {
 "ExtendedCode": "04205",
 "MessageTemplate": "The provided URI is not a SAS URL for a container (it needs to be https and it has to have 2 segments).",
 "Parameters": [],
 "Code": "BadRequest",
 "Message": "The provided URI is not a SAS URL for a container (it needs to be https and it has to have 2 segments)."
}

Параметр -StorageAccountUrl ожидает передачи URL-адреса SAS (см. this do c). URL-адрес SAS для вашей учетной записи хранения имеет формат:

sasurl=https://$storagename.blob.core.windows.net/$container$sastoken

Чтобы сгенерировать токен SAS, выполните следующее:

# Retrieve one of the Storage Account keys
$key = (Get-AzStorageAccountKey -ResourceGroupName "<rg-name>" -AccountName "<storage-account-name>").Value[0]

# Populate the Storage Account context
$ctx = New-AzureStorageContext -StorageAccountName "<storage-account-name>" -StorageAccountKey $key

# Generate the SAS token
$sastoken = New-AzureStorageContainerSASToken -Name "<container-name>" -Permission rwdl -Context $ctx

# Generate the SAS URL
$sasurl = "https://<storage-account-name>.blob.core.windows.net/<container-name>$sastoken"

# Create a backup
New-AzureRmWebAppBackup -ResourceGroupName "<rg-name>" -Name "<app-name>" -StorageAccountUrl $sas -BackupName "<backup-name>"

В случае успешного выполнения вышеуказанных команд вы должны создать резервная копия. Ответ будет выглядеть примерно так: webapp backup

Надеюсь, это поможет!

...