Closed2
tfstate向けS3バケットの簡易コマンド

雑多なメモ:個人開発でterraform等使う際、tfstate用のバケットいちいち作成するのが手間な故、片手間で実行できるように。※ ~/.zshrc
等に設定して実行することを想定
create-tfstate-bucket() {
local AWS_PROFILE="$1"
local AWS_BUCKET_NAME="$2"
if [[ -z "$AWS_PROFILE" || -z "$AWS_BUCKET_NAME" ]]; then
echo "Usage: create-tfstate-bucket <AWS_PROFILE> <AWS_BUCKET_NAME>"
echo "Example: $ create-tfstate-bucket my-profile my-tfstate-bucket"
return 1
fi
echo "Creating S3 bucket '$AWS_BUCKET_NAME'..."
AWS_PROFILE="$AWS_PROFILE" aws s3 mb s3://"$AWS_BUCKET_NAME"
echo "Enabling versioning on S3 bucket '$AWS_BUCKET_NAME'..."
AWS_PROFILE="$AWS_PROFILE" aws s3api put-bucket-versioning \
--bucket "$AWS_BUCKET_NAME" \
--versioning-configuration Status=Enabled
}

delete-tfstate-bucket() {
local AWS_PROFILE="$1"
local AWS_BUCKET_NAME="$2"
if [[ -z "$AWS_PROFILE" || -z "$AWS_BUCKET_NAME" ]]; then
echo "Usage: delete-tfstate-bucket <AWS_PROFILE> <AWS_BUCKET_NAME>"
echo "Example: $ delete-tfstate-bucket my-profile my-tfstate-bucket"
return 1
fi
echo "Deleting all objects in S3 bucket '$AWS_BUCKET_NAME'..."
AWS_PROFILE="$AWS_PROFILE" aws s3 rm s3://"$AWS_BUCKET_NAME" --recursive
echo "Removing S3 bucket '$AWS_BUCKET_NAME'..."
AWS_PROFILE="$AWS_PROFILE" aws s3 rb s3://"$AWS_BUCKET_NAME"
}
このスクラップは5ヶ月前にクローズされました