Admiral-Piett / goaws

AWS (SQS/SNS) Clone for Development testing
MIT License
767 stars 144 forks source link

GoAws

Build Status

You are always welcome to tweet the creator in chief or buy him a coffee

Written in Go this is a clone of the AWS SQS/SNS systems. This system is designed to emulate SQS and SNS in a local environment so developers can test their interfaces without having to connect to the AWS Cloud and possibly incurring the expense, or even worse actually write to production topics/queues by mistake. If you see any problems or would like to see a new feature, please open an issue here in github. As well, I will logon to Gitter so we can discuss your deployment issues or the weather.

SNS/SQS Api status:

All SNS/SQS APIs have been implemented except:

Here is a list of the APIs:

Supported Queue Attributes

Current SNS APIs implemented:

Supported Subscription Attributes

Yaml Configuration Implemented

Example: Passing Configuration to Docker

docker run \
 --rm \
 --name=goaws \
 -v /path/on/host/goaws-config.yaml:/path/in/container/goaws-config.yaml \
 -p=4100:4100 \
 admiralpiett/goaws:v0.4.4-arm64 -config /path/in/container/goaws-config.yaml

Debug logging can be turned on via a command line flag (e.g.: -debug)

Note: The system does not authenticate or presently use https

Installation

git clone git@github.com:Admiral-Piett/goaws.git

Build and Run (Standalone)

Build
    cd to GoAws directory
    go build -o goaws app/cmd/goaws.go  (The goaws executable should be in the currect directory, move it somewhere in your $PATH)

Run
    ./goaws  (by default goaws listens on port 4100 but you can change it in the goaws.yaml file to another port of your choice)

Run (Docker Version)

Version >= v0.3.2
    docker pull admiralpiett/goaws

Version <= v0.3.1
    docker pull pafortin/goaws

run
    docker run -d --name goaws -p 4100:4100 admiralpiett/goaws

Testing your installation

Postman Environment: LINK

Postman Collection: LINK

You can test that your installation is working correctly in one of two ways:

  1. Using the postman collection, use this link to import it. As well the Environment variable for the collection should be set as follows: URL = http://localhost:4100/.

  2. by using the AWS cli tools (download link) here are some samples, you can refer to the aws cli tools docs for further information.