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