Skip to content

Azure Durable Functions and Azure WebJobs lets you write stateful functions in a serverless environment. The primary use case for Durable Functions is simplifying complex, stateful coordination problems in serverless applications.

Notifications You must be signed in to change notification settings

matjazbravc/BackupFolder-AzureFunction-Demo

Repository files navigation

Backup folder with usage of Azure Durable Function

Durable Functions is an extension of Azure Functions and Azure WebJobs that lets you write stateful functions in a serverless environment. The primary use case for Durable Functions is simplifying complex, stateful coordination problems in serverless applications.

This application demonstrate following functionalities:

  • usage of Azure durable functions,
  • dependency injection with Autofac (inspired by Holger Leichsenring Blog Post),
  • logging with Serilog sink to Azure Table storage,
  • using Table storage as an temporary repository,
  • copying files to blobs

Because of cross function communication limitations I've used Table Storage as an temporary repository for list of all files to be backed up. Sure, there is a number of ways to do this but I've choose Table Storage.

Prerequisites

To create and deploy functions, you also need:

  • An active Azure subscription. If you don't have an Azure subscription, free accounts are available.
  • An Azure Storage account. To create a storage account, see Create a storage account.

Let's get started!

First, you have to enter your Azure storage account connection string (and other settings) into local.settings.json:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "AzureWebJobsDashboard": "UseDevelopmentStorage=true",
    "Logging.Storage.TableName": "BackupFolderLog",
    "BackupFolder.TableName": "BackupFolder",
    "BackupFolder.ContainerName": "backupfolder",
    "StorageAccount.ConnectionString": "UseDevelopmentStorage=true"
  }
}

P.S. More about how to test Azure functions locally you can read here.

Second, if you use development storage you have to setup Azure Storage Emulator. See Use the Azure storage emulator for development and testing and Configuring and Using the Storage Emulator with Visual Studio.

Third, build solution and run it with local Azure Functions runtime:

And when function is finished, you should receive succeed status:

Finally test it with Postman:

Results you can check easy with excellent Azure Storage Explorer (you can download it for free):

Enjoy!

Licence

Licenced under MIT. Contact me on LinkedIn.

About

Azure Durable Functions and Azure WebJobs lets you write stateful functions in a serverless environment. The primary use case for Durable Functions is simplifying complex, stateful coordination problems in serverless applications.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages