Skip to content

Instantly share code, notes, and snippets.

@adamatti
Last active November 1, 2019 16:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adamatti/1221f9aacf8ae32c4b47c95f62a70739 to your computer and use it in GitHub Desktop.
Save adamatti/1221f9aacf8ae32c4b47c95f62a70739 to your computer and use it in GitHub Desktop.
Sending a message to AWS / local #sample #aws

Required

How to run:

  • Start AWS local: docker run -p 4576:4576 -p 8080:8080 -e SERVICES=sqs localstack/localstack

  • Optional: create file payload.json with your content

  • Run script: JAVA_OPTS='-Dgroovy.grape.report.downloads=true' groovy aws-send.groovy

@Grab(group='software.amazon.awssdk', module='sqs', version='2.5.36')
import software.amazon.awssdk.regions.Region
import software.amazon.awssdk.services.sqs.SqsClient
import software.amazon.awssdk.services.sqs.model.*
import software.amazon.awssdk.auth.credentials.*
def credentials = StaticCredentialsProvider.create(
AwsBasicCredentials.create("test","test")
)
def sqsClient = SqsClient.builder()
.region(Region.US_EAST_1)
.endpointOverride("http://localhost:4576".toURI())
.credentialsProvider(credentials)
.build()
def queueName = "sampleQueue"
// Create queue (optional)
def createQueueRequest = CreateQueueRequest.builder().queueName(queueName).build();
def createQueueResponse = sqsClient.createQueue(createQueueRequest)
println "Create queue response: ${createQueueResponse}"
// Send a message
def queue = sqsClient.getQueueUrl(
GetQueueUrlRequest.builder().queueName(queueName).build()
)
def file = new File("payload.json")
def payload = file.exists() ? file.getText() : "Hello world!"
def request = SendMessageRequest.builder()
.queueUrl(queue.queueUrl())
.messageBody(payload)
.delaySeconds(10)
.build()
println "Sending ${payload}"
def response = sqsClient.sendMessage(request)
println "Send msg response: ${response}"
println "Done"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment