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

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

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()
    }
}
Другие вопросы по тегам