4
4

More than 3 years have passed since last update.

【AWS CLI】実際に業務で使ったAWSのコマンドたち

Posted at

はじめに

実際に業務の時にとったAWSCLIのメモを整理して記事にしました。

S3

オブジェクト削除

aws s3 rm s3://{バケット名}/{削除するファイルパス} 
例: aws s3 rm s3://test-bucket/test1/test.txt

ファイル一覧取得

aws ls s3://{バケット名}/{フォルダパス}
例: aws ls s3 s3://test-bucket/test1 --recursive

ファイルをコピー

aws s3 cp {コピー元パス} {コピー先パス}
例: aws s3 cp s3://test-bucket/test1/test.txt ./local

オプションの--include --excludeは業務でよく使ってた。
指定する時にワイルドカードが使用できる。
ファイルの絞り込みの時に--excludeで一度全ファイル除外してから--include使わないと絞り込めないので注意。

aws s3 cp s3://test-bucket/test1/ ./local --recursive --exclude "*" --include "test*"

ファイル移動

aws s3 mv {コピー元パス} {コピー先パス}
aws s3 mv s3://test-bucket/test1/test.txt ./local

オプション

オプション        説明
--dryrun 実際にコマンドを実行した時の結果を確認できる
--recursive 指定フォルダ内のオブジェクトを全て指定
--exclude 指定したファイルのパターンを含むファイルを除外
--include 指定したファイルのパターンを含むファイルを許可
--quiet コマンドの実行ログを非表示にする
--human-readable ファイルサイズを人が読める形式で表示
--summarize 最低限のデータのみ取得(ファイルサイズ, ファイル名)

使用できるオプション一覧

       rm ls cp mv
--dryrun ✖︎
--recursive
--exclude ✖︎
--include ✖︎
--quiet ✖︎
--human-readable ✖︎ ✖︎ ✖︎
--summarize ✖︎ ✖︎ ✖︎

SQS

キューの作成

aws sqs create-queue --queue-name {キューの名前}
例: aws sqs create-queue --queue-name test-queue

キューの削除

aws sqs delete-queue --queue-url {キューのURL}
例: aws sqs delete-queue --queue-url https://...

キューの情報確認

# キューのURL一覧
aws sqs list-queues

# 指定したキューのURL取得
aws sqs get-queue-url --queue-name {キューの名前}
例: aws sqs get-queue-url --queue-name test-queue

# キューの属性を取得
# Allじゃなくて属性名指定したら指定した属性のみ取得できる
aws sqs get-queue-attributes --queue-url {キューのURL} --attribute-names All

キューにメッセージ送信

aws sqs send-message --queue-url {キューのURL} --message-body "{メッセージ}"
例: aws sqs send-message --queue-url https://... --message-body "Hello!"

メッセージの取得

順番とか関係なしで1メッセージ取得される

aws sqs receive-message --queue-url {キューのURL}
例: aws sqs receive-message --queue-url https://...

ReceiptHandleの取得

メッセージの取得で取得したデータをjq使って抽出するだけ

aws sqs receive-message --queue-url {キューのURL}
例: aws sqs receive-message --queue-url https://... | jq -r 'Messages[].ReceiptHandle'

jqを使用して取得
それ以外の方法しらない、ご存知の方教えて欲しい

メッセージの削除

aws sqs delete-message --queue-url {キューのURL} --receipt-handle {ReceiptHandle}

SQSにあるメッセージをCLIで全削除

全削除のコマンド見つからなかったからシェル作った

BIN_PROFILE=$1
SQS_URL=$2

while [ true ]
do
    RECEPT_HUNDLE=`aws --profile ${BIN_PROFILE} sqs receive-message --queue-url ${SQS_URL} | jq -r '.Messages[].ReceiptHandle'`

    if [ "$RECEPT_HUNDLE" = "" ]
    then
        echo "全てのキューを削除しました"
        break
    fi
    aws --profile ${BIN_PROFILE} sqs delete-message --queue-url ${SQS_URL} --receipt-handle "$RECEPT_HUNDLE"
done

SNS

メッセージ送信

aws sns publish --topic-arn {トピックのarn} --messeage "{メッセージ}"
例: aws sns publish --topic-arn arn:aws:sns... --messeage "helllllllllllllllo!!!!"

Athena

Athenaの実行状況を確認

aws athena get-query-execution --query-execution-id {execution-id}

おわり

閲覧いただきありがとうございました。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4