npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

node-red-contrib-aws-sqs-variable

v1.0.1

Published

Node-RED nodes for AWS SQS send/receive with flexible credentials

Downloads

29

Readme

node-red-contrib-aws-sqs-variable

A production-ready Node-RED node for AWS SQS operations that sends and receives messages with flexible credential handling.

Features

  • 📬 Send messages to AWS SQS
  • 📥 Receive messages from AWS SQS
  • 🏗️ Flexible credential configuration (IAM roles, direct credentials, context variables)
  • 🎯 TypedInput support for dynamic Queue URL and payload
  • 🔄 FIFO support with Message Group and Deduplication IDs
  • 🧾 Optional JSON parsing for received messages
  • ⏱️ Built-in polling mode with status indicator
  • 🛡️ Production-ready with comprehensive error handling

Installation

Run the following command in your Node-RED user directory (typically ~/.node-red):

npm install node-red-contrib-aws-sqs-variable

After installation, restart Node-RED to load the new nodes.

Configuration

AWS Configuration Node

The module uses a configuration node that supports multiple authentication methods:

IAM Role Authentication (Recommended)

  • ✅ Use when running on EC2 instances with IAM roles
  • ✅ No credentials needed in Node-RED
  • ✅ Automatic credential rotation

Access Key Authentication

Supports multiple credential sources:

  • String: Stored securely in Node-RED credentials (encrypted)
  • Flow Context: Retrieved from flow context variables
  • Global Context: Retrieved from global context variables
  • Environment Variables: Retrieved from environment variables

Usage

Basic Usage

  1. Create AWS Configuration

    • Add an "aws-sqs-config" node
    • Configure your AWS region and credentials
  2. Add AWS SQS Node

    • Drag "aws-sqs" node to your flow
    • Select your AWS configuration
    • Choose operation: Send or Receive

Send Messages

Configure:

  • Queue URL (string, msg, flow, global, env)
  • Message Body (string, msg, flow, global, env)

Optional for FIFO:

  • Message Group ID (required for FIFO)
  • Deduplication ID (optional if content-based deduplication is enabled)

Receive Messages

Configure:

  • Queue URL
  • Max Messages (1-10)
  • Wait Time (s) (0-20, long polling)
  • Visibility Timeout (s)
  • Delete After Receive
  • Parse JSON Body (optional)

Polling:

  • Enable Polling to receive messages on a schedule
  • Set Poll Interval (s)

Input

Message Properties

  • msg.queueUrl (optional): Queue URL if not configured in node
  • msg.messageGroupId (optional): FIFO Message Group ID
  • msg.messageDeduplicationId (optional): FIFO Deduplication ID

Example Input

msg = {
  queueUrl: "https://sqs.eu-central-1.amazonaws.com/123456789012/my-queue",
  payload: { message: "Hello!" }
}

Output

Send Success Response

msg = {
  payload: {
    messageId: "abcd-1234",
    md5OfMessageBody: "e99a18c428cb38d5f260853678922e03"
  }
}

Receive Success Response

msg = {
  payload: [
    {
      MessageId: "...",
      ReceiptHandle: "...",
      Body: "raw string or parsed JSON when enabled"
    }
  ]
}

Error Response

msg = {
  payload: {
    error: "Error message"
  }
}

FIFO Notes

  • Message Group ID is required for FIFO queues
  • Deduplication ID must be unique within a 5-minute window
  • Ordering is guaranteed only within the same Message Group

Security Best Practices

  • ✅ Use IAM roles when possible (recommended for EC2 instances)
  • ✅ Store credentials in context variables rather than hardcoding
  • ✅ Use environment variables for sensitive configuration
  • ✅ Rotate access keys regularly
  • ✅ Follow the principle of least privilege
  • ✅ Enable AWS CloudTrail for audit logging

Error Handling

The node provides comprehensive error handling:

  • Configuration errors: Missing or invalid AWS configuration
  • Authentication errors: Invalid credentials or permissions
  • Queue errors: Invalid Queue URL or insufficient permissions
  • Network errors: Connection issues with AWS

All errors are logged and sent in the message payload for downstream processing.

Requirements

  • Node.js >= 12.0.0
  • Node-RED >= 2.0.0
  • AWS account with SQS access
  • Appropriate IAM permissions

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

If you encounter any issues or have questions, please open an issue in the project repository.