Skip to content

Instantly share code, notes, and snippets.

@podhmo
Created January 17, 2020 08:35
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 podhmo/135cd16142243c6cd46479251de47c0e to your computer and use it in GitHub Desktop.
Save podhmo/135cd16142243c6cd46479251de47c0e to your computer and use it in GitHub Desktop.
{
"ContentBasedDeduplication": "true",
"FifoQueue": "true",
"VisibilityTimeout": "1"
}
{
"message": "hello",
"name": "foo"
}
{
"message": "byebye",
"name": "foo"
}
include ../env.mk
.DEFAULT_GOAL := list
# WARNING : 実際に作成する (write権限)
NAME ?= hmm-test-test.fifo
# NOTE:
#
# ContentBaseDeduplication=trueにするとdeduplicationが有効になる
# (これにはFIFOである必要がある)
# defaultはbodyをハッシュ関数にかける(SHA-256)
# MessageDeduplicationIdを指定するとそれが使われる
#
# - FIFOキューへのsendにはgroupIdの指定が必要
# 作成
00:
$(MAKE) create
# 属性の表示
01:
$(MAKE) get
# deduplication idなしでsend
02:
$(MAKE) send
$(MAKE) receive
$(MAKE) purge
# deduplication idありでsend
03:
$(MAKE) send2
$(MAKE) receive
$(MAKE) purge
# clean
04:
$(MAKE) clean
get:
aws sqs get-queue-attributes --queue-url $$(make -s get-url) --attribute-names All
create:
aws sqs create-queue --queue-name ${NAME} --attributes file://attr.json
# 素朴にsend
send:
aws sqs send-message --queue-url $$(make -s get-url) --message-body file://data.json --message-group-id xxx
aws sqs send-message --queue-url $$(make -s get-url) --message-body file://data2.json --message-group-id xxx
purge:
aws sqs purge-queue --queue-url $$(make -s get-url)
# 同じdeduplicationIDを指定してsend
send2:
aws sqs send-message --queue-url $$(make -s get-url) --message-body file://data.json --message-group-id xxx --message-deduplication-id same-id
aws sqs send-message --queue-url $$(make -s get-url) --message-body file://data2.json --message-group-id xxx --message-deduplication-id same-id
receive:
aws sqs receive-message --queue-url $$(make -s get-url) --message-attribute-names All --max-number-of-messages 10
# usage
help:
aws sqs help
list:
aws sqs list-queues
get-url:
aws sqs get-queue-url --queue-name ${NAME} | jqfpy 'get("QueueUrl")' -r
delete:
aws sqs delete-queue --queue-url $$(make -s get-url)
clean:
$(MAKE) purge
$(MAKE) delete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment