#azure #powershell #azure-container-service #soft-delete #recover
#azure #powershell #azure-container-service #мягкое удаление #восстановить
Вопрос:
Я пытаюсь восстановить удаленные с помощью программы контейнеры в учетную запись хранилища в Microsoft Azure с помощью Azure Powershell.
На самом деле на портале мы можем сделать это вручную, но я не нашел решения с помощью команд powershell, я просто нашел решение, восстановив контейнеры до предыдущего времени, поэтому он также восстанавливает удаленные большие двоичные объекты, но он по-прежнему не восстанавливает удаленные контейнеры.
Ответ №1:
Я попытался найти метод для восстановления контейнера напрямую, но, похоже, его не существует.
Существует обходной путь с использованием Powershell для вызова Rest API.
PUT https://myaccount.blob.core.windows.net/destinationcontainer?restype=containeramp;comp=undelete
Это пример кода:
# login
Connect-AzAccount
# get accessToken
$resource = "https://storage.azure.com"
$context = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile.DefaultContext
$accessToken = [Microsoft.Azure.Commands.Common.Authentication.AzureSession]::Instance.AuthenticationFactory.Authenticate($context.Account, $context.Environment, $context.Tenant.Id.ToString(), $null, [Microsoft.Azure.Commands.Common.Authentication.ShowDialog]::Never, $null, $resource).AccessToken
#request REST API
$uri = "{Request URI}"
Invoke-RestMethod -Method 'Put' -Uri $uri -Headers @{ Authorization = "Bearer " $accessToken }
Вам нужно добавить заголовки запросов, чтобы это работало.