AWS CLIでよく使っているコマンドの覚書。よく使っているのに忘れるのかと言われるとつらい。いつも履歴から使っているから、たまに新しい環境にいくとわからなくなってつらい。
目次
使用するprofile
# profileの作成
aws configure --profile {new-profile}
# 確認
aws configure list
# 実際に使う時は--profileを使う
aws s3 ls --profile {new-profile}
IAM
# ロールの作成
aws iam create-role --role-name {role-name} --assume-role-policy-document file://{policy-file-name}
# ロールにポリシーを適用
aws iam put-role-policy --role-name {role-name} --policy-name {policy-name} --policy-document file://{policy-file-name}
SQS
SQSのコマンド。
# キューの作成
aws sqs create-queue --queue-name {キューの名前}
# キューの削除
aws sqs delete-queue --queue-url {キューのURL}
# 確認
aws sqs list-queues
aws sqs get-queue-url {キューの名前}
aws sqs get-queue-url {キューの名前} --output text
aws sqs get-gueue-attributes --queue-url {キューのURL} --attribute-names ApproximateNumberOfMessages
# 属性の確認
# --attribute-namesで指定したものが表示される
aws sqs get-queue-attributes --queue-url {キューのURL} --attribute-names CreatedTimestamp QueueArn
# 属性の操作
aws sqs set-queue-attributes --queue-url {キューのURL} --attributes VisibilityTimeout=5
# メッセージの送信
aws sqs send-message --queue-url {キューのURL} --message-body "hello, world"
# メッセージの受信
aws sqs receive-message --queue-url {キューのURL}
# ReceiptHandleの取得
aws sqs recieve-message --queue-url {キューのURL} | jq -r '.Messages[].ReceiptHandle'
# メッセージの削除
aws sqs delete-message --queue-url {キューのURL} --receipt-handle {ReceiptHandle}
SNS
SNSのコマンド。
# トピックの作成
aws sns create-topic --name {トピックの名前}
# トピックの一覧
aws sns list-topics
# トピックの削除
aws sns delete-topic --topic-arn {トピックのARN}
S3
s3でよく使うコマンド。
# バケットの作成と削除, regionは指定しなくても
aws s3 mb s3://{make-bucket} --region ap-northeast-1
aws s3 rb s3://{delete-bucket}
aws s3 sync {local_dir}/ s3://{target-bucket}/
# ファイルの削除
aws s3 rm s3://{bucket-name}/{file-name}
# ホスティング
aws s3 website s3://{site-hosting}/ --index-document index.html
# バケットポリシーの適用
aws s3api put-bucket-policy --bucket {site-hosting} --policy file://{policy.json}
バケットポリシーの例は「S3で特定のバケットを誰でも読み取りできるようにするバケットポリシー」。
DynamoDB
# テーブルの作成
aws dynamodb create-table --table-name {table-name} --attribute-definitions AttributeName={partition-keyの名前},AttributeType={SとかN} --key-schema AttributeName={partition-key},KeyType={HASHとか} --provisioned-throughput ReadCapacityUnits={5とか},WriteCapacityUnits={5とか}
# jsonの読み込み
aws dynamodb batch-write-item --request-items file://{file-name}
jsonの形式は「ステップ 2: データをテーブルにロードする - Amazon DynamoDB」
create-tableのオプション。
- --attribute-definitions 属性の定義(文字列とか数値とか)
- AttributeName 属性名
- AttributeType 属性のタイプ(文字列とか数値とか)
- --key-schema テーブル設計
- AttributeName
- KeyType
- --provisioned-throughput プロビジョニングされたスループット…あらかじめ割り当てておく処理能力みたいなの
- ReadCapacityUnits
- WriteCapacityUnits
API Gateway
# 作成したAPIの一覧を取得
aws apigateway get-rest-apis --region ap-northeast-1
CloudFormatiion
AWS CloudFormationでLambda関数のデプロイするための拡張。
# パッケージングしてS3にアップロード
aws cloudformation package --template-file {template-file} --output-template-file {output-template-file} --s3-bucket {s3-bucket}
# デプロイ
# template-fileはpackageの出力を使う
aws cloudformation deploy --template-file {template-file} --stack-name {stack-name} --region ap-northeast-1
# --capability CAPABILITY_IAM をつける必要があることもある
# スタックを削除
aws cloudformation delete-stack --stack-name スタック名
コメント
コメント一覧 (2件)
SQS削除のとこ「delete-messae」になってた
ありがとうございます。修正しました。