Azure Storage Queues Sample Code
This document provides sample code demonstrating common operations with Azure Storage Queues. Azure Queues is a service that provides message queuing for reliable application development on a massive scale.
Prerequisites
Before running these samples, ensure you have:
- An Azure Storage Account.
- The Azure Storage SDK for your chosen language installed.
- Connection string or account key for your storage account.
Note: For security best practices, avoid hardcoding connection strings directly in your code. Consider using environment variables, Azure Key Vault, or managed identities.
1. Creating a Queue
This code snippet shows how to create a new queue in Azure Storage.
using Azure.Storage.Queues;
string connectionString = "YOUR_AZURE_STORAGE_CONNECTION_STRING";
string queueName = "my-sample-queue";
// Create a QueueClient object
QueueClient queueClient = new QueueClient(connectionString, queueName);
try
{
// Create the queue if it doesn't exist
queueClient.CreateIfNotExists();
Console.WriteLine($"Queue '{queueName}' created successfully.");
}
catch (Exception ex)
{
Console.WriteLine($"Error creating queue: {ex.Message}");
}
2. Sending a Message
Learn how to send messages to an Azure Storage Queue.
from azure.storage.queue import QueueClient
connection_string = "YOUR_AZURE_STORAGE_CONNECTION_STRING"
queue_name = "my-sample-queue"
# Instantiate a QueueClient
queue_client = QueueClient.from_connection_string(connection_string, queue_name)
try:
# Send a message
message_content = "This is my first message!"
queue_client.send_message(message_content)
print(f"Message '{message_content}' sent to queue '{queue_name}'.")
except Exception as ex:
print(f"Error sending message: {ex}")
Tip: You can send messages up to 64 KB in size. For larger payloads, consider using Azure Blob Storage and storing a reference to the blob in the queue message.
3. Receiving and Deleting a Message
This section demonstrates how to retrieve a message, process it, and then delete it from the queue.
const { QueueClient } = require("@azure/storage-queue");
const connectionString = "YOUR_AZURE_STORAGE_CONNECTION_STRING";
const queueName = "my-sample-queue";
async function receiveAndDeleteMessage() {
const queueClient = new QueueClient(connectionString, queueName);
try {
// Receive a message
const receiveResult = await queueClient.receiveMessage();
if (receiveResult.receivedMessage) {
const message = receiveResult.receivedMessage;
console.log(`Received message: ${message.messageText}`);
// Process the message here...
// Delete the message after processing
await queueClient.deleteMessage(message.messageId, message.popReceipt);
console.log("Message deleted.");
} else {
console.log("No messages in the queue.");
}
} catch (error) {
console.error("Error receiving or deleting message:", error);
}
}
receiveAndDeleteMessage();
4. Peeking at Messages
Peek at the next message in the queue without making it invisible.
import com.azure.storage.queue.QueueClient;
import com.azure.storage.queue.models.PeekMessageItem;
public class QueuePeekSample {
public static void main(String[] args) {
String connectionString = "YOUR_AZURE_STORAGE_CONNECTION_STRING";
String queueName = "my-sample-queue";
QueueClient queueClient = new QueueClient(connectionString, queueName);
try {
PeekMessageItem peekedMessage = queueClient.peekMessage();
if (peekedMessage != null) {
System.out.println("Peeked message: " + peekedMessage.getMessageText());
} else {
System.out.println("Queue is empty.");
}
} catch (Exception e) {
System.err.println("Error peeking message: " + e.getMessage());
}
}
}
Explore More Scenarios: View Full SDK Documentation