Как установить период хранения снимка общего доступа к файлам с помощью планировщика службы автоматизации Azure?

Я хочу установить срок хранения моментального снимка общего доступа к файлам с помощью планировщика службы автоматизации Azure. 1. Могу я установить расписание создания и удаления моментального снимка в одном модуле Runbook. (например, создать один снимок сегодня и удалить его через месяц). 2, я хочу получать снимки на каждый день, неделю и месяц, могу ли я выбрать время сохранения. (Например, сохраняйте ежедневный снимок 15 дней, еженедельный снимок 35 дней и ежемесячный снимок 13 месяцев).
3, Если это так сложно, могу ли я выбрать снимки, которые я хочу удалить, как предыдущие 10. Если вы знаете что-нибудь об этом, напишите, пожалуйста, несколько комментариев ниже, большое спасибо.


person Arthur    schedule 17.12.2018    source источник
comment
Не могли бы вы включить в свой вопрос более подробную информацию? Что ты пробовал?   -  person Joy Wang    schedule 17.12.2018
comment
Спасибо, Джой Ван. Я добавляю несколько комментариев, если вы что-то знаете об этом, напишите, пожалуйста, здесь. Еще раз спасибо.   -  person Arthur    schedule 17.12.2018


Ответы (1)


Некоторая информация для вас.

Попробуйте выполнить команду ниже, чтобы создать моментальный снимок, для его рабочей частоты вы можете создать расписание для модуля Runbook.

$connectionName = "AzureRunAsConnection"
try
{
    # Get the connection "AzureRunAsConnection "
    $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName         

    "Logging in to Azure..."
    Add-AzureRmAccount `
        -ServicePrincipal `
        -TenantId $servicePrincipalConnection.TenantId `
        -ApplicationId $servicePrincipalConnection.ApplicationId `
        -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint 
}
catch {
    if (!$servicePrincipalConnection)
    {
        $ErrorMessage = "Connection $connectionName not found."
        throw $ErrorMessage
    } else{
        Write-Error -Message $_.Exception
        throw $_.Exception
    }
}

$SAResourceGroupName="joywebapp"
$StorageAccountName="joystoragev2"
$StorageAccountKey = (Get-AzureRmStorageAccountKey -ResourceGroupName $SAResourceGroupName -AccountName $StorageAccountName).Value[1]
$context=New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey

$share = Get-AzureStorageShare -Context $context -Name "111"
$snapshot = $share.Snapshot()

Удалите снимки, созданные до одного месяца:

$allsnapshots = Get-AzureStorageShare -Context $context | Where-Object { $_.Name -eq "111" -and $_.IsSnapshot -eq $true }


foreach($snapshot in $allsnapshots){
    if($snapshot.SnapshotTime -lt (get-date).AddMonths(-1)){
        $snapshot.Delete()
    }
}
person Joy Wang    schedule 17.12.2018
comment
Большое спасибо, только что я попытался удалить снимки, используя команду, которую вы указали. Но все снимки были удалены, могу я использовать одну оболочку PowerShell для создания снимка, а затем просто удалить его через месяц. - person Arthur; 18.12.2018
comment
И в прошлый раз, когда кто-то поделился командой для создания снимка, есть ли какая-то разница? $ context = New-AzureStorageContext -StorageAccountName your_storage_account -StorageAccountKey your_storage_account_key $ share = Get-AzureStorageShare -Context $ context -Name your_file_share_name $ snapshot = $ share.Snapshot () - person Arthur; 18.12.2018
comment
@Arthur 1. Он должен работать, я тестирую с if($snapshot.SnapshotTime -lt (get-date).AddHours(-1)), чтобы удалить снимки, созданные до часа, он работает нормально, измените AddHours на AddMonths, он должен удалить снимки, созданные до одного месяца. - person Joy Wang; 18.12.2018
comment
@ Joy Wang, Большое спасибо, я тестирую его тоже с одним часом, я объединяю команду создания и удаления в одной оболочке PowerShell, она может работать, но она удалила другой снимок (предыдущий), поэтому я думаю, что это из-за Создать команду (я использовал вашу команду, но есть некоторая ошибка в отношении $ SAResourceGroupName и Value [1], поэтому я использовал простую, которую я опубликовал вверху). - person Arthur; 18.12.2018
comment
@Arthur Не уверен, почему у вас возникла ошибка, у меня все работает нормально, и я тестирую создание и удаление в двух разных модулях Runbook, вы можете попробовать. - person Joy Wang; 18.12.2018
comment
Знаете ли вы, как удалить моментальный снимок встречи, например, просто удалить моментальный снимок через 1 месяц, который я создаю сегодня, но не повлияет на другие снимки, потому что я буду хранить разные снимки с разными периодами хранения. - person Arthur; 18.12.2018
comment
Устал делать их в одном runbook, может хорошо работать. Теперь я хочу изменить команду $ allsnapshots на ту, которую я создал ранее. Но есть ошибка, я плохо разбираюсь в командлетах. Большое спасибо, Джой. - person Arthur; 18.12.2018
comment
@Arthur Это кажется труднодостижимым. Моментальные снимки можно отличить только по SnapshotTime, мой обходной путь - создание моментального снимка и получение его SnapshotTime, нового модуля Runbook с расписанием для его удаления через месяц. - person Joy Wang; 18.12.2018
comment
@Arthur Может быть, вы могли бы задать конкретный вопрос об удалении снимков разными способами в другом посте, если мой ответ будет полезен, не могли бы вы принять его в качестве ответа? - person Joy Wang; 18.12.2018
comment
Привет, у меня есть вопрос, я хочу уточнить у вас. вчера вы сказали, что тестируете с помощью ** if ($ snapshot.SnapshotTime -lt (get-date) .AddHours (-1)), чтобы удалить снимки, созданные до часа, он отлично работает. ** Значит, это означает, что эта команда используется для удаления снимков, созданных до часа, а не для удаления нового, а затем для его удаления через час, верно? Я тестировал и обнаружил, что он удалит все существующие снимки, а не через несколько часов или месяцев. Вы можете это объяснить? Благодарность - person Arthur; 19.12.2018
comment
@Arthur Да, используется для удаления снимков, созданных до часа. Я тестирую создание и удаление в двух разных модулях Runbook, он просто удалит снимки, созданные до часа, а не все снимки экрана. Не знаю, почему вам это пришло в голову. - person Joy Wang; 19.12.2018
comment
жаль, что я сделал ошибку. ты можешь изменить свой ответ? Может быть, лучше сказать Удалить снимки, созданные до одного месяца :, спасибо. - person Arthur; 19.12.2018
comment
@Arthur Done, кажется, разница между ними небольшая. - person Joy Wang; 19.12.2018