You are always welcome to tweet me or buy me 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.
All SNS/SQS APIs have been implemented except: - The full capabilities for Get and Set QueueAttributes. At the moment you can only Get ALL the attributes.
Here is a list of the APIs: - [x] ListQueues - [x] CreateQueue - [x] GetQueueAttributes (Always returns all attributes - unsupporterd arttributes are mocked) - [x] GetQueueUrl - [x] SendMessage - [x] SendMessageBatch - [x] ReceiveMessage - [x] DeleteMessage - [x] DeleteMessageBatch - [x] PurgeQueue - [x] Delete Queue - [x] ChangeMessageVisibility - [ ] ChangeMessageVisibilityBatch - [ ] ListDeadLetterSourceQueues - [ ] ListQueueTags - [ ] RemovePermission - [x] SetQueueAttributes (Only supported attributes are set - see Supported Queue Attributes) - [ ] TagQueue - [ ] UntagQueue
go get github.com/p4tin/goaws/...
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)
Get it
docker pull pafortin/goaws
run
docker run -d --name goaws -p 4100:4100 pafortin/goaws
You can test that your installation is working correctly in one of two ways:
Usign 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/.
by using the AWS cli tools (download link) here are some samples, you can refer to the aws cli tools docs for further information.
aws --endpoint-url http://localhost:4100 sqs create-queue --queue-name test1
{
"QueueUrl": "http://localhost:4100/test1"
}
{
"QueueUrls": [
"http://localhost:4100/test1"
]
}
{
"MD5OfMessageBody": "9d3f5eaac3b1b4dd509f39e71e25f954",
"MD5OfMessageAttributes": "b095c6d16871105acb75d59332513337",
"MessageId": "66a1b4f5-cecf-473e-92b6-810156d41bbe"
}
{
"Messages": [
{
"Body": "this is a test of the GoAws Queue messaging",
"MD5OfMessageAttributes": "b095c6d16871105acb75d59332513337",
"ReceiptHandle": "66a1b4f5-cecf-473e-92b6-810156d41bbe#f1fc455c-698e-442e-9747-f415bee5b461",
"MD5OfBody": "9d3f5eaac3b1b4dd509f39e71e25f954",
"MessageId": "66a1b4f5-cecf-473e-92b6-810156d41bbe"
}
]
}
No output
No output (No messages in Q)
No output
No output (There are no Queues left)
{
"Topics": [
{
"TopicArn": "arn:aws:sns:local:000000000000:topic1"
},
{
"TopicArn": "arn:aws:sns:local:000000000000:topic2"
}
]
}
$ claude mcp add goaws \
-- python -m otcore.mcp_server <graph>