🔖
AWS CLIメモ
CLIでSNSを作成する
aws sns create-topic --name my-topic
{
"TopicArn": "arn:aws:sns:us-west-2:123456789012:my-topic"
}
こういうのが返るので、最初から変数にしたい
topic=$(aws sns create-topic --name my-topic | jq .TopicArn | tr -d \")
email subscribe
aws sns subscribe --topic-arn $topic --protocol email --notification-endpoint saanvi@example.com
Lambda subscribe
aws sns subscribe --topic-arn $topic --protocol lambda --notification-endpoint <lambda-arn>
publish
aws sns publish --topic-arn $topic --message "Hello World!"
削除
aws sns delete-topic --topic-arn $topic
S3バケットのサイズを集計したい
aws s3 ls --summarize --human-readable --recursive s3://bucket-name/directory
2021-10-28 15:39:17 980 Bytes aaaa.zip
2021-10-28 14:28:16 1.6 KiB aaaa.zip
2021-12-28 18:52:22 559 Bytes lambda_function_nodejs_sample.zip
2021-12-10 15:54:44 1.0 KiB test-custom-resource.zip
2022-07-18 09:44:18 0 Bytes test_dir/
2022-07-18 09:44:41 1.6 KiB test_dir/aaaa.zip
Total Objects: 6
Total Size: 5.8 KiB
jqで取り出す
aws ec2 describe-instances --instance-ids $INSTANCE_ID |
jq '.Reservations[0].Instances[] .State.Name' |
tr -d '"'
--query
aws ec2 describe-instances \
--query "Reservations[*].Instances[*].{Instance:InstanceId,PrivateIP:PrivateIpAddress,Type:InstanceType,Hostname:PublicIpAddress,Status:State.Name}" \
--filters "Name=instance-state-name,Values=stopped" \
--output table
--queryの使い勝手がよく分からない。
--filters のオプション名はリソースによっては--filterというようにsがないらしい。Name=instance-state-nameの部分の項目名は、docを見ないとわからない。
CLIの例
RDSのmaster user名を取り出す
aws rds describe-db-instances
--region ap-northeast-1
--db-instance-identifier <identifier>
--query 'DBInstances[*].MasterUsername'
Discussion