aws-ssm-connect() {
  local instance_id
  instance_id=$(aws ec2 describe-instances \
    --filters "Name=instance-state-name,Values=running" \
    --query 'Reservations[].Instances[].[InstanceId,Tags[?Key==`Name`].Value|[0],PrivateIpAddress,InstanceType]' \
    --output text \
    | awk '{printf "%-20s %-40s %-15s %s\n", $1, substr($2, 1, 40), $3, $4}' \
    | fzf --header="$(printf '%-20s %-40s %-15s %s' 'Instance ID' 'Name' 'IP' 'Type')" \
    | awk '{print $1}')

  [[ -z "$instance_id" ]] && return 1

  aws ssm start-session --target "$instance_id"
}
