Integrate Azure Queue Storage with Service Connector

This page shows supported authentication methods and clients, and shows sample code you can use to connect Azure Queue Storage to other cloud services using Service Connector. You might still be able to connect to Azure Queue Storage in other programming languages without using Service Connector. This page also shows default environment variable names and values (or Spring Boot configuration) you get when you create the service connection.

Supported compute services

Service Connector can be used to connect the following compute services to Azure Queue Storage:

  • Azure App Service
  • Azure Functions
  • Azure Container Apps
  • Azure Spring Apps

Supported authentication types and client types

The table below shows which combinations of authentication methods and clients are supported for connecting your compute service to Azure Queue Storage using Service Connector. A “Yes” indicates that the combination is supported, while a “No” indicates that it is not supported.

Client type System-assigned managed identity User-assigned managed identity Secret / connection string Service principal
.NET Yes Yes Yes Yes
Java Yes Yes Yes Yes
Java - Spring Boot No No Yes No
Node.js Yes Yes Yes Yes
Python Yes Yes Yes Yes

This table indicates that all combinations of client types and authentication methods are supported, except for the Java - Spring Boot client type, which only supports the Secret / connection string method. All other client types can use any of the authentication methods to connect to Azure Queue Storage using Service Connector.

Default environment variable names or application properties and sample code

Use the connection details below to connect compute services to Queue Storage. For each example below, replace the placeholder texts <account name>, <account-key>, <client-ID>, <client-secret>, <tenant-ID>, and <storage-account-name> with your own account name, account key, client ID, client secret, tenant ID and storage account name. For more information about naming conventions, check the Service Connector internals article.

System-assigned managed identity

Default environment variable name Description Example value
AZURE_STORAGEQUEUE_RESOURCEENDPOINT Queue storage endpoint https://<storage-account-name>.queue.core.windows.net/

Sample code

Refer to the steps and code below to connect to Azure Queue Storage using a system-assigned managed identity.

  1. Install dependency.

    dotnet add package Azure.Storage.Queues
    dotnet add package Azure.Identity
    
  2. Authenticate using Azure.Identity and get the Azure Queue Storage endpoint from the environment variables added by Service Connector. When using the code below, uncomment the part of the code snippet for the authentication type you want to use.

    using Azure.Storage.Queues;
    using Azure.Identity;    
    
    // Uncomment the following lines according to the authentication type.
    // system-assigned managed identity
    // var credential = new DefaultAzureCredential();
    
    // user-assigned managed identity
    // var credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_STORAGEQUEUE_CLIENTID");
    //     });
    
    // service principal 
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_STORAGEQUEUE_TENANTID");
    // var clientId = Environment.GetEnvironmentVariable("AZURE_STORAGEQUEUE_CLIENTID");
    // var clientSecret = Environment.GetEnvironmentVariable("AZURE_STORAGEQUEUE_CLIENTSECRET");
    // var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
    
    Uri queueUri = new Uri(Environment.GetEnvironmentVariable("AZURE_STORAGEQUEUE_RESOURCEENDPOINT"));
    QueueClient queue = new QueueClient(queueUri, credential);
    

User-assigned managed identity

Default environment variable name Description Example value
AZURE_STORAGEQUEUE_RESOURCEENDPOINT Queue storage endpoint https://<storage-account-name>.queue.core.windows.net/
AZURE_STORAGEQUEUE_CLIENTID Your client ID <client-ID>

Sample code

Refer to the steps and code below to connect to Azure Queue Storage using a user-assigned managed identity.

  1. Install dependency.

    dotnet add package Azure.Storage.Queues
    dotnet add package Azure.Identity
    
  2. Authenticate using Azure.Identity and get the Azure Queue Storage endpoint from the environment variables added by Service Connector. When using the code below, uncomment the part of the code snippet for the authentication type you want to use.

    using Azure.Storage.Queues;
    using Azure.Identity;    
    
    // Uncomment the following lines according to the authentication type.
    // system-assigned managed identity
    // var credential = new DefaultAzureCredential();
    
    // user-assigned managed identity
    // var credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_STORAGEQUEUE_CLIENTID");
    //     });
    
    // service principal 
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_STORAGEQUEUE_TENANTID");
    // var clientId = Environment.GetEnvironmentVariable("AZURE_STORAGEQUEUE_CLIENTID");
    // var clientSecret = Environment.GetEnvironmentVariable("AZURE_STORAGEQUEUE_CLIENTSECRET");
    // var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
    
    Uri queueUri = new Uri(Environment.GetEnvironmentVariable("AZURE_STORAGEQUEUE_RESOURCEENDPOINT"));
    QueueClient queue = new QueueClient(queueUri, credential);
    

Connection string

SpringBoot client type

Application properties Description Example value
spring.cloud.azure.storage.account Queue storage account name <storage-account-name>
spring.cloud.azure.storage.access-key Queue storage account key <account-key>
spring.cloud.azure.storage.queue.account-name Queue storage account name for Spring Cloud Azure version above 4.0 <storage-account-name>
spring.cloud.azure.storage.queue.account-key Queue storage account key for Spring Cloud Azure version above 4.0 <account-key>
spring.cloud.azure.storage.queue.endpoint Queue storage endpoint for Spring Cloud Azure version above 4.0 https://<storage-account-name>.queue.core.windows.net/

Other client types

Default environment variable name Description Example value
AZURE_STORAGEQUEUE_CONNECTIONSTRING Queue storage connection string DefaultEndpointsProtocol=https;AccountName=<account-name>;AccountKey=<account-key>;EndpointSuffix=core.windows.net

Sample code

Refer to the steps and code below to connect to Azure Queue Storage using a connection string.

  1. Install dependency.

    dotnet add package Azure.Storage.Queues
    
  2. Get the connection string from the environment variable added by Service Connector.

    using Azure.Storage.Queues;
    
    var connectionString = Environment.GetEnvironmentVariable("AZURE_STORAGEQUEUE_CONNECTIONSTRING");
    QueueServiceClient service = new QueueServiceClient(connectionString);
    

Service principal

Default environment variable name Description Example value
AZURE_STORAGEQUEUE_RESOURCEENDPOINT Queue storage endpoint https://<storage-account-name>.queue.core.windows.net/
AZURE_STORAGEQUEUE_CLIENTID Your client ID <client-ID>
AZURE_STORAGEQUEUE_CLIENTSECRET Your client secret <client-secret>
AZURE_STORAGEQUEUE_TENANTID Your tenant ID <tenant-ID>

Sample code

Refer to the steps and code below to connect to Azure Queue Storage using a service principal.

  1. Install dependency.

    dotnet add package Azure.Storage.Queues
    dotnet add package Azure.Identity
    
  2. Authenticate using Azure.Identity and get the Azure Queue Storage endpoint from the environment variables added by Service Connector. When using the code below, uncomment the part of the code snippet for the authentication type you want to use.

    using Azure.Storage.Queues;
    using Azure.Identity;    
    
    // Uncomment the following lines according to the authentication type.
    // system-assigned managed identity
    // var credential = new DefaultAzureCredential();
    
    // user-assigned managed identity
    // var credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_STORAGEQUEUE_CLIENTID");
    //     });
    
    // service principal 
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_STORAGEQUEUE_TENANTID");
    // var clientId = Environment.GetEnvironmentVariable("AZURE_STORAGEQUEUE_CLIENTID");
    // var clientSecret = Environment.GetEnvironmentVariable("AZURE_STORAGEQUEUE_CLIENTSECRET");
    // var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
    
    Uri queueUri = new Uri(Environment.GetEnvironmentVariable("AZURE_STORAGEQUEUE_RESOURCEENDPOINT"));
    QueueClient queue = new QueueClient(queueUri, credential);
    

Next steps

Follow the tutorials listed below to learn more about Service Connector.