Integrate Azure Queue Storage with Service Connector
Article
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.
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);
Add the following dependencies in your pom.xml file:
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.
import com.azure.identity.*;
import com.azure.storage.queue.*;
import com.azure.storage.queue.models.*;
// Uncomment the following lines according to the authentication type.
// for system-managed identity
// DefaultAzureCredential credential = new DefaultAzureCredentialBuilder().build();
// for user-assigned managed identity
// DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
// .managedIdentityClientId(System.getenv("AZURE_STORAGEQUEUE_CLIENTID"))
// .build();
// for service principal
// ClientSecretCredential credential = new ClientSecretCredentialBuilder()
// .clientId(System.getenv("AZURE_STORAGEQUEUE_CLIENTID"))
// .clientSecret(System.getenv("AZURE_STORAGEQUEUE_CLIENTSECRET"))
// .tenantId(System.getenv("AZURE_STORAGEQUEUE_TENANTID"))
// .build();
String endpoint = System.getenv("AZURE_STORAGEQUEUE_RESOURCEENDPOINT");
QueueClient queueClient = new QueueClientBuilder()
.endpoint(endpoint)
.queueName("<queueName>")
.credential(credential)
.buildClient();
The authentication type is not supported by Spring Boot client type.
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.
import os
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
from azure.storage.queue import QueueServiceClient, QueueClient
# Uncomment the following lines according to the authentication type.
# system-assigned managed identity
# cred = ManagedIdentityCredential()
# user-assigned managed identity
# managed_identity_client_id = os.getenv('AZURE_STORAGEQUEUE_CLIENTID')
# cred = ManagedIdentityCredential(client_id=managed_identity_client_id)
# service principal
# tenant_id = os.getenv('AZURE_STORAGEQUEUE_TENANTID')
# client_id = os.getenv('AZURE_STORAGEQUEUE_CLIENTID')
# client_secret = os.getenv('AZURE_STORAGEQUEUE_CLIENTSECRET')
# cred = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
account_url = os.getenv('AZURE_STORAGEQUEUE_RESOURCEENDPOINT')
queue_client = QueueClient(account_url, queue_name='<queue_name>' ,credential=cred)
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.
const { QueueServiceClient } = require("@azure/storage-queue");
import { DefaultAzureCredential,ClientSecretCredential } from "@azure/identity";
// Uncomment the following lines according to the authentication type.
// for system-assigned managed identity
// const credential = new DefaultAzureCredential();
// for user-assigned managed identity
// const clientId = process.env.AZURE_STORAGEQUEUE_CLIENTID;
// const credential = new DefaultAzureCredential({
// managedIdentityClientId: clientId
// });
// for service principal
// const tenantId = process.env.AZURE_STORAGEQUEUE_TENANTID;
// const clientId = process.env.AZURE_STORAGEQUEUE_CLIENTID;
// const clientSecret = process.env.AZURE_STORAGEQUEUE_CLIENTSECRET;
// const credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
const queueServiceClient = new QueueServiceClient(
process.env.AZURE_STORAGEQUEUE_RESOURCEENDPOINT,
credential
);
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);
Add the following dependencies in your pom.xml file:
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.
import com.azure.identity.*;
import com.azure.storage.queue.*;
import com.azure.storage.queue.models.*;
// Uncomment the following lines according to the authentication type.
// for system-managed identity
// DefaultAzureCredential credential = new DefaultAzureCredentialBuilder().build();
// for user-assigned managed identity
// DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
// .managedIdentityClientId(System.getenv("AZURE_STORAGEQUEUE_CLIENTID"))
// .build();
// for service principal
// ClientSecretCredential credential = new ClientSecretCredentialBuilder()
// .clientId(System.getenv("AZURE_STORAGEQUEUE_CLIENTID"))
// .clientSecret(System.getenv("AZURE_STORAGEQUEUE_CLIENTSECRET"))
// .tenantId(System.getenv("AZURE_STORAGEQUEUE_TENANTID"))
// .build();
String endpoint = System.getenv("AZURE_STORAGEQUEUE_RESOURCEENDPOINT");
QueueClient queueClient = new QueueClientBuilder()
.endpoint(endpoint)
.queueName("<queueName>")
.credential(credential)
.buildClient();
The authentication type is not supported by Spring Boot client type.
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.
import os
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
from azure.storage.queue import QueueServiceClient, QueueClient
# Uncomment the following lines according to the authentication type.
# system-assigned managed identity
# cred = ManagedIdentityCredential()
# user-assigned managed identity
# managed_identity_client_id = os.getenv('AZURE_STORAGEQUEUE_CLIENTID')
# cred = ManagedIdentityCredential(client_id=managed_identity_client_id)
# service principal
# tenant_id = os.getenv('AZURE_STORAGEQUEUE_TENANTID')
# client_id = os.getenv('AZURE_STORAGEQUEUE_CLIENTID')
# client_secret = os.getenv('AZURE_STORAGEQUEUE_CLIENTSECRET')
# cred = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
account_url = os.getenv('AZURE_STORAGEQUEUE_RESOURCEENDPOINT')
queue_client = QueueClient(account_url, queue_name='<queue_name>' ,credential=cred)
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.
const { QueueServiceClient } = require("@azure/storage-queue");
import { DefaultAzureCredential,ClientSecretCredential } from "@azure/identity";
// Uncomment the following lines according to the authentication type.
// for system-assigned managed identity
// const credential = new DefaultAzureCredential();
// for user-assigned managed identity
// const clientId = process.env.AZURE_STORAGEQUEUE_CLIENTID;
// const credential = new DefaultAzureCredential({
// managedIdentityClientId: clientId
// });
// for service principal
// const tenantId = process.env.AZURE_STORAGEQUEUE_TENANTID;
// const clientId = process.env.AZURE_STORAGEQUEUE_CLIENTID;
// const clientSecret = process.env.AZURE_STORAGEQUEUE_CLIENTSECRET;
// const credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
const queueServiceClient = new QueueServiceClient(
process.env.AZURE_STORAGEQUEUE_RESOURCEENDPOINT,
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
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);
Add the following dependency in your pom.xml file:
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);
Add the following dependencies in your pom.xml file:
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.
import com.azure.identity.*;
import com.azure.storage.queue.*;
import com.azure.storage.queue.models.*;
// Uncomment the following lines according to the authentication type.
// for system-managed identity
// DefaultAzureCredential credential = new DefaultAzureCredentialBuilder().build();
// for user-assigned managed identity
// DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
// .managedIdentityClientId(System.getenv("AZURE_STORAGEQUEUE_CLIENTID"))
// .build();
// for service principal
// ClientSecretCredential credential = new ClientSecretCredentialBuilder()
// .clientId(System.getenv("AZURE_STORAGEQUEUE_CLIENTID"))
// .clientSecret(System.getenv("AZURE_STORAGEQUEUE_CLIENTSECRET"))
// .tenantId(System.getenv("AZURE_STORAGEQUEUE_TENANTID"))
// .build();
String endpoint = System.getenv("AZURE_STORAGEQUEUE_RESOURCEENDPOINT");
QueueClient queueClient = new QueueClientBuilder()
.endpoint(endpoint)
.queueName("<queueName>")
.credential(credential)
.buildClient();
The authentication type is not supported by Spring Boot client type.
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.
import os
from azure.identity import ManagedIdentityCredential, ClientSecretCredential
from azure.storage.queue import QueueServiceClient, QueueClient
# Uncomment the following lines according to the authentication type.
# system-assigned managed identity
# cred = ManagedIdentityCredential()
# user-assigned managed identity
# managed_identity_client_id = os.getenv('AZURE_STORAGEQUEUE_CLIENTID')
# cred = ManagedIdentityCredential(client_id=managed_identity_client_id)
# service principal
# tenant_id = os.getenv('AZURE_STORAGEQUEUE_TENANTID')
# client_id = os.getenv('AZURE_STORAGEQUEUE_CLIENTID')
# client_secret = os.getenv('AZURE_STORAGEQUEUE_CLIENTSECRET')
# cred = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)
account_url = os.getenv('AZURE_STORAGEQUEUE_RESOURCEENDPOINT')
queue_client = QueueClient(account_url, queue_name='<queue_name>' ,credential=cred)
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.
const { QueueServiceClient } = require("@azure/storage-queue");
import { DefaultAzureCredential,ClientSecretCredential } from "@azure/identity";
// Uncomment the following lines according to the authentication type.
// for system-assigned managed identity
// const credential = new DefaultAzureCredential();
// for user-assigned managed identity
// const clientId = process.env.AZURE_STORAGEQUEUE_CLIENTID;
// const credential = new DefaultAzureCredential({
// managedIdentityClientId: clientId
// });
// for service principal
// const tenantId = process.env.AZURE_STORAGEQUEUE_TENANTID;
// const clientId = process.env.AZURE_STORAGEQUEUE_CLIENTID;
// const clientSecret = process.env.AZURE_STORAGEQUEUE_CLIENTSECRET;
// const credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
const queueServiceClient = new QueueServiceClient(
process.env.AZURE_STORAGEQUEUE_RESOURCEENDPOINT,
credential
);
Next steps
Follow the tutorials listed below to learn more about Service Connector.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see: https://aka.ms/ContentUserFeedback.