Skip to content

Shuttle/Shuttle.Esb.AzureStorageQueues

Repository files navigation

Azure Storage Queues

PM> Install-Package Shuttle.Esb.AzureStorageQueues

In order to make use of the AzureStorageQueue you will need access to an Azure Storage account or use the Azurite emulator for local Azure Storage development.

You may want to take a look at how to get started with Azure Queue storage using .NET.

Configuration

The URI structure is azuresq://configuration-name/queue-name.

If ConnectionString is specified the StorageAccount setting will be ignored. Well StorageAccount is specified the DefaultAzureCredential will be used to authenticate.

services.AddAzureStorageQueues(builder =>
{
    var azureStorageQueueOptions = new AzureStorageQueueOptions
    {
        StorageAccount = "devstoreaccount1",
        ConnectionString = "UseDevelopmentStorage=true",
        MaxMessages = 20,
        VisibilityTimeout = null
    };

    azureStorageQueueOptions.Configure += (sender, args) =>
    {
        Console.WriteLine($"[event] : Configure / Uri = '{((IQueue)sender).Uri}'");
    };

    builder.AddOptions("azure", azureStorageQueueOptions);
});

The Configure event args arugment exposes the QueueClientOptions directly for any specific options that need to be set.

The default JSON settings structure is as follows:

{
  "Shuttle": {
    "AzureStorageQueues": {
      "azure": {
        "StorageAccount": "devstoreaccount1",
        "ConnectionString": "UseDevelopmentStorage=true",
        "MaxMessages": 32,
        "VisibilityTimeout": "00:00:30"
      }
    }
  }
}

Options

Segment / Argument Default Description
StorageAccount The name of the storage.
ConnectionString The Azure Storage Queue endpoint to connect to.
MaxMessages 32 Specifies the number of messages to fetch from the queue.
VisibilityTimeout null

About

Azure Storage Queue implementation for use with Shuttle.Esb.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages