Closed2

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

tamaco489tamaco489

雑多なメモ:個人開発で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
}
tamaco489tamaco489
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ヶ月前にクローズされました