SQS
Full SQS emulation including standard queues, FIFO queues with deduplication, dead-letter queues, message attributes, and visibility timeouts.
Supported Operations
- CreateQueue, DeleteQueue, ListQueues, GetQueueUrl, GetQueueAttributes, SetQueueAttributes
- SendMessage, SendMessageBatch, ReceiveMessage, DeleteMessage, DeleteMessageBatch
- ChangeMessageVisibility, PurgeQueue
- TagQueue, UntagQueue, ListQueueTags
- FIFO queues with MessageGroupId and MessageDeduplicationId
Usage
var sqs = new AmazonSQSClient(
new BasicAWSCredentials("test", "test"),
new AmazonSQSConfig { ServiceURL = "http://localhost:4566" });
// Create queue
var queue = await sqs.CreateQueueAsync("my-queue");
// Send message
await sqs.SendMessageAsync(new SendMessageRequest
{
QueueUrl = queue.QueueUrl,
MessageBody = "Hello from MicroStack",
});
// Receive message
var messages = await sqs.ReceiveMessageAsync(new ReceiveMessageRequest
{
QueueUrl = queue.QueueUrl,
MaxNumberOfMessages = 10,
});
foreach (var msg in messages.Messages)
{
Console.WriteLine(msg.Body);
await sqs.DeleteMessageAsync(queue.QueueUrl, msg.ReceiptHandle);
}FIFO Queues
var fifo = await sqs.CreateQueueAsync(new CreateQueueRequest
{
QueueName = "my-queue.fifo",
Attributes = new Dictionary<string, string>
{
["FifoQueue"] = "true",
["ContentBasedDeduplication"] = "true",
},
});
await sqs.SendMessageAsync(new SendMessageRequest
{
QueueUrl = fifo.QueueUrl,
MessageBody = "ordered message",
MessageGroupId = "group-1",
});
MicroStack