Как установить период хранения моментального снимка общего доступа к файлам с помощью планировщика Azure Automation? - PullRequest
0 голосов
/ 17 декабря 2018

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

1 Ответ

0 голосов
/ 17 декабря 2018

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

Попробуйте команду ниже, чтобы создать снимок, для его рабочей частоты вы могли бы создать расписание для 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()
    }
}
...