我想编写一个 bash 脚本,用于在 aws 中从目标组自动注册和注销目标。
脚本是这样的:
#!/bin/bash
target_group_name=$1
instance_Id=$2
target_group_arn="$(aws elbv2 describe-target-groups --query 'TargetGroups[?contains(TargetGroupName, `$1`)].TargetGroupArn' --output text)"
echo -n "Enter the option you want to do (enter 1 for register and enter 2 for deregister): "
read OPTION
case $OPTION in
1)
if register_output=$(aws elbv2 register-targets --target-group-arn '$target_group_arn' --targets Id="$2");
then
echo "Registering instance into target group. Please wait for 5 minutes registration progress finished"
else
echo "!!!! ERROR !!!!"
fi
;;
2)
if deregister_output=$(aws elbv2 deregister-targets --target-group-arn '$target_group_arn' --targets Id="$2");
then
echo "Deregistering instance into target group. Please wait for 5 minutes registration progress finished"
else
echo "!!!! ERROR !!!!"
fi
;;
*)
echo "unknown option"
;;
esac
但是,当我运行脚本时,没有找到 arn。
我尝试打印出$1
(S1 在左操作数符号内)。但是,似乎bash脚本不理解,它什么也没打印出来。
你能帮我弄清楚我的脚本有什么问题吗?或者我如何重现我的查询以获取目标组的 arn 以便我可以将它传递给我的命令?
太感谢了!
因为我刚刚找到了我的问题的答案,所以我会在这里为感兴趣的人发布我的答案并关闭我的帖子。
非常感谢你们帮助我!:D
#!/bin/bash
profile=$1
target_group_name=$1
instance_id=$2
target_group_arn="$(aws elbv2 describe-target-groups --query 'TargetGroups[].[TargetGroupArn]' --names "$2" --profile "$1" --output text)"
echo -n "Enter the option you want to do (enter 1 for register and enter 2 for deregister): "
read OPTION
case $OPTION in
1)
if register_output=$(aws elbv2 register-targets --target-group-arn "$target_group_arn" --targets Id="$2");
then
echo "Registering instance into target group. Please wait for 5 minutes registration progress finished"
else
echo "!!!! ERROR !!!!"
fi
;;
2)
if deregister_output=$(aws elbv2 deregister-targets --target-group-arn "$target_group_arn" --targets Id="$2");
then
echo "Deregistering instance into target group. Please wait for 5 minutes registration progress finished"
else
echo "!!!! ERROR !!!!"
fi
;;
*)
echo "unknown option"
;;
esac
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句