Backup Azure Storage met een Azure Functions in 3 stappen

-

Bij Luminis ontwikkelen we veel Cloud Native oplossingen in Azure, maar er was geen gemakkelijke manier om backups te maken voor Azure Storage Accounts. Dus hebben we een NuGet package gemaakt.

In deze blog laten we zien hoe dit werkt in combinatie met een Azure Function in 3 gemakkelijke stappen.

1. Maak een timer trigger

Voeg een nieuwe timer trigger toen aan je bestaande project, als je Visual Studio gebruikt kan je rechts likken op je bestaande functie app en dan kiezen voor “Add” en dan “New Azure Function”.

FunctionName("Function1")]
public static void Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer, ILogger log)
{
     log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
}

Als je nog geen Functie app hebt staat in dit artikel beschreven hoe je deze kan maken.

2. Installeer de NuGet package

Installeer de NuGet package in je project, door middel van het NuGet venster of met de Visual Studio package manager:

Install-Package Luminis.AzureStorageBackup -Version 1.6.0

3. Configureer de backup

Het enige wat nu nog nodig is is om de library te configureren, zodat hij weet waar naar toe en waar vandaan de backups gemaakt moeten worden.

[FunctionName("Function1")]
public static async Task Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer, ILogger log, ExecutionContext context)
{
    var sourceAccountName = Environment.GetEnvironmentVariable("BackupSourceAccountName");
    var sourceKey = Environment.GetEnvironmentVariable("BackupSourceAccountKey");

    var backupAzureStorage = new Luminis.AzureStorageBackup.BackupAzureStorage(sourceAccountName, sourceKey, log, context.FunctionAppDirectory);

    var destinationAccountName = Environment.GetEnvironmentVariable("BackupDestinationAccountName");
    var destinationKey = Environment.GetEnvironmentVariable("BackupDestinationAccountKey");
    var destinationContainerName = Environment.GetEnvironmentVariable("BackupDestinationContainer");

    // Backup Tables
    await backupAzureStorage.BackupAzureTablesToBlobStorage("table1,table2", destinationAccountName, destinationKey, destinationContainerName, "tables");

    // Backup Blobs
    await backupAzureStorage.BackupBlobStorage("container1,container2", destinationAccountName, destinationKey, destinationContainerName, "blobs");
}

Voor meer informatie kijk op de GitHub pagina.

 

Wil je mee weten over hoe je met Azure Functions kan werken en nog veel meer bekijken onze training over Microservices met Azure Functions van de Luminis Academy.