Skip to main content
The SQSResourceClient allows you to perform operations on AWS SQS queues, such as sending messages, receiving messages, and deleting messages.

Usage

import { mySQSClient } from "./clients";

// Send a message to a queue
const sendResult = await mySQSClient.invoke(
  "SendMessage",
  {
    QueueUrl: "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue",
    MessageBody: "Hello, SQS!",
  },
  "send-message"
);

if (sendResult.ok) {
  console.log("Message ID:", sendResult.result.data.MessageId);
}

// Receive messages from a queue
const receiveResult = await mySQSClient.invoke(
  "ReceiveMessage",
  {
    QueueUrl: "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue",
    MaxNumberOfMessages: 10,
  },
  "receive-messages"
);

if (receiveResult.ok) {
  console.log("Messages:", receiveResult.result.data.Messages);
}

// Delete a message from a queue
const deleteResult = await mySQSClient.invoke(
  "DeleteMessage",
  {
    QueueUrl: "https://sqs.us-east-1.amazonaws.com/123456789012/my-queue",
    ReceiptHandle: "message-receipt-handle",
  },
  "delete-message"
);

if (deleteResult.ok) {
  console.log("Message deleted");
}

Inputs

The invoke method accepts the following arguments:
command
string
required
The SQS command to execute. Supported commands include "SendMessage", "ReceiveMessage", "DeleteMessage", "ListQueues", "GetQueueAttributes", "SetQueueAttributes".
params
Record<string, unknown>
required
The parameters for the command, matching the AWS SDK input shape (e.g., QueueUrl, MessageBody, ReceiptHandle).
invocationKey
string
required
A unique identifier for this operation.
options
object
Optional configuration object.

Outputs

On success (ok: true), the result object contains:
kind
"queue"
Discriminator for the response type.
command
string
The command that was executed.
data
unknown
The result data from SQS (e.g., the MessageId from a SendMessage call, or Messages from a ReceiveMessage call).