AWS CLIを利用して、SQSのキューにメッセージを送信してみましょう。
ジョブ依頼側の立場で、ジョブ処理を依頼するイメージになります。
前提条件
SQSへの権限
- 操作するキューに対してRead/Write権限があること。
 
AWS CLIのバージョン
以下のバージョンで動作確認済
- AWS CLI 1.10.6
 - AWS CLI 1.6.10
 
- 事前作業
=========== 
0.1. リージョンの指定
対象のキューが存在するリージョンを指定します。
(カレントユーザが利用するカレントリージョンも切り変わります。)
コマンド
export AWS_DEFAULT_REGION='ap-northeast-1'
このハンズオンでは、AWS標準のリージョン変数を利用していますが、regionオプションでコマンド毎に指定しても同様の結果になります。
(「オペミスを回避するために明示的に実行する」という意味ではregionオプションの方が良いです。)
0.2. キューの指定
メッセージの送信先となるキューのURLを確認します。
コマンド
SQS_QUEUE_NAME=$(date +%Y%m%d)-handson-queue \
  && echo ${SQS_QUEUE_NAME}
- キューのURLの取得
===================== 
コマンド
SQS_QUEUE_URL=$(aws sqs get-queue-url \
  --queue-name ${SQS_QUEUE_NAME} \
  --output text \
) \
   && echo ${SQS_QUEUE_URL}
結果
   https://ap-northeast-1.queue.amazonaws.com/XXXXXXXXXXXX/20160509-handson-queue
- 通知内容の決定
===================== 
通知するメッセージ内容を決定します。
コマンド
SQS_MSG_BODY='Hello World!'
- メッセージ数の確認
===================== 
メッセージ送信前に、キューにいくつのメッセージが処理待ちになっているか確認します。
コマンド
aws sqs get-queue-attributes \
       --queue-url ${SQS_QUEUE_URL} \
       --attribute-names ApproximateNumberOfMessages
結果
   {
       "Attributes": {
           "ApproximateNumberOfMessages": "0"
       }
   }
キューを作成した直後であれば0のはずです。
- メッセージの送信
=================== 
メッセージを送信します。
コマンド
aws sqs send-message \
  --queue-url "${SQS_QUEUE_URL}" \
  --message-body "${SQS_MSG_BODY}"
結果
   {
       "MD5OfMessageBody": "6699d5711c044a109a6aff9fc193aada", 
       "MessageId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
   }
- メッセージ数の確認
=========================== 
メッセージ送信後に、キューにいくつのメッセージが処理待ちになっているか確認します。
コマンド
aws sqs get-queue-attributes \
       --queue-url ${SQS_QUEUE_URL} \
       --attribute-names ApproximateNumberOfMessages
結果
   {
       "Attributes": {
           "ApproximateNumberOfMessages": "1"
       }
   }
先程送信したメッセージがキューに到着していれば1になるはずです。
完了
ここまでで、ジョブの依頼側からキューに依頼を投げました。