我试图为我的AWS ALB创建一个侦听器,并使用“ create-listener”命令(AWS CLI)将2个目标组附加到该侦听器,但是在用这2个目标组创建侦听器时遇到问题。 / p>
从AWS控制台创建侦听器并附加两个目标组时,它会按预期工作,或者在使用具有以上语法的目标组的硬编码的arns时,它会工作:
listener=$(aws elbv2 create-listener --load-balancer-arn $lb_arn --protocol HTTP --port $http_external_port --default-actions '[{"Type": "forward", "Order": 1, "ForwardConfig": {"TargetGroups": [{"TargetGroupArn": "HARDCODED_FIRST_TG_ARN", "Weight": 50}, {"TargetGroupArn": "HARDCODED_SECOND_TG_ARN", "Weight": 50}]}}]')
但是,当使用ARN作为变量(有效)时,“ create-listener”命令失败,并显示上述错误消息:
first_tg_arn=$(aws elbv2 describe-target-groups --names $first_tg_name --query "TargetGroups[*][TargetGroupArn]" --output text)
second_tg_arn=$(aws elbv2 describe-target-groups --names $second_tg_name --query "TargetGroups[*][TargetGroupArn]" --output text)
listener=$(aws elbv2 create-listener --load-balancer-arn $lb_arn --protocol HTTP --port $http_external_port --default-actions '[{"Type": "forward", "Order": 1, "ForwardConfig": {"TargetGroups": [{"TargetGroupArn": "${first_tg_arn}", "Weight": 50}, {"TargetGroupArn": "${second_tg_arn}", "Weight": 50}]}}]')
调用CreateListener时发生错误(ValidationError) 操作:“ $ {first_tg_arn}”不是有效的目标组ARN
以上均附有两种运行命令的方式(使用硬编码的ARN和使用ARNs变量)。
可能是什么问题?谢谢。
答案 0 :(得分:1)
您的问题与Linux变量扩展有关,而与AWS CLI的使用无关。
在失败的命令上,您正在使用单引号'
,该引号不会将变量扩展为其值。
要扩展变量,您需要使用双引号"
或根本不使用引号,就像在第二个示例中一样。