Last active
December 23, 2022 13:36
-
-
Save AstroTom/4c81c629a68252e6f0be176ecf131c4a to your computer and use it in GitHub Desktop.
sample AWS sqs in CLI
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Create Q | |
ENV=dev1 | |
Qname=tom-test1 | |
Q1=$(aws sqs create-queue --queue-name "$ENV-$Qname" --output text) | |
echo $Q1 | |
aws sqs send-message --queue-url $Q1 --message-body "Test message 1 from Tom" | |
#get no. of msgs | |
aws sqs get-queue-attributes --queue-url $Q1 --attribute-names ApproximateNumberOfMessages | |
#get all Q attributes | |
aws sqs get-queue-attributes --queue-url $Q1 --attribute-names All --output json | |
# send 2nd msgs | |
aws sqs send-message --queue-url $Q1 --message-body "Test message 2 from Tom" | |
Timeout=10 | |
# get message | |
J=$(aws sqs receive-message --queue-url $Q1 --output json --visibility-timeout $Timeout); echo $J|jq '.Messages[0].Body' ; ReceiptHandle=$(echo $J|jq '.Messages[0].ReceiptHandle') | |
#echo $ReceiptHandle | |
# delete msg | |
aws sqs delete-message --queue-url $Q1 --receipt-handle $(eval echo $ReceiptHandle) | |
# check no. of messages | |
aws sqs get-queue-attributes --queue-url $Q1 --attribute-names ApproximateNumberOfMessages | |
# See message visibility timeout | |
sleep 5 | |
aws sqs get-queue-attributes --queue-url $Q1 --attribute-names ApproximateNumberOfMessages | |
# -- demo timeout loop | |
# get message | |
J=$(aws sqs receive-message --queue-url $Q1 --output json --visibility-timeout $Timeout) | |
echo Message is: | |
echo $J|jq '.Messages[0].Body' | |
ReceiptHandle=$(echo $J|jq '.Messages[0].ReceiptHandle') | |
#echo $ReceiptHandle | |
NotDone=10 | |
while (( NotDone-- )) | |
do | |
aws sqs change-message-visibility --queue-url $Q1 --receipt-handle $(eval echo $ReceiptHandle) --visibility-timeout 10 | |
echo doing work on this message | |
done | |
# delete msg | |
aws sqs delete-message --queue-url $Q1 --receipt-handle $(eval echo $ReceiptHandle) | |
# get message with long polling | |
# empty Q | |
aws sqs purge-queue --queue-url $Q1 | |
# confirm empty | |
aws sqs receive-message --queue-url $Q1 --output json | |
# long poll | |
J="" | |
aws sqs receive-message --queue-url $Q1 --output json --wait-time-seconds 10 | |
#send from other terminal: | |
Q1=https://eu-west-1.queue.amazonaws.com/069157535684/dev1-tom-test1 | |
aws sqs send-message --queue-url $Q1 --message-body "Test message from other window" | |
# delete Q | |
aws sqs delete-queue --queue-url $Q1 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment