🔖

AWS CLIメモ

2022/10/08に公開

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

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-services-sns.html#cli-delete-sns-topic

S3バケットのサイズを集計したい

aws s3 ls --summarize --human-readable --recursive s3://bucket-name/directory

https://serverfault.com/questions/84815/how-can-i-get-the-size-of-an-amazon-s3-bucket

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を見ないとわからない。

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-instances.html#options

CLIの例

RDSのmaster user名を取り出す

aws rds describe-db-instances
--region ap-northeast-1
--db-instance-identifier <identifier>
--query 'DBInstances[*].MasterUsername'

Discussion