amazon-web-services - AWS 支持每个 ALB 侦听器的多个目标组
问题描述
我正在尝试为我的 AWS ALB 创建一个侦听器,并使用“create-listener”命令 (AWS CLI) 将我的 2 个目标组附加到该侦听器,但是在使用这 2 个目标组创建侦听器时遇到问题。
从 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 和使用 ARN 变量)。
可能是什么问题呢?谢谢你。
解决方案
您的问题是关于 Linux 变量扩展,而不是关于 AWS CLI 的使用。
在您的命令失败时,您使用的是单引号'
,它不会将变量扩展为其值。
要扩展变量,您需要使用双引号"
或根本不使用引号,就像您在第二个示例中所做的那样。
推荐阅读
- c# - 调用扩展方法时无法进行隐式转换
- java - 如何使用 REST Web 服务和 Spring 中的 CompletableFuture 类捕获异常?
- azure - Azure 应用服务无法从 wwwroot 文件系统加载 pfx 证书
- vba - 无法在自动过滤器中为标准数组获得所需的结果
- android - 无法在 axios 上发出 POST 请求(React-Native)
- r - 如何在 R 中使用 gamm 模型指定随机效应?
- c# - 将日期(年、月、日)转换为儒略日数并返回日期
- redux - 如何在 Redux 中重新启动我的 initialState 值
- c# - 为外部身份验证创建部分登录 cookie
- z3 - Z3:非线性算术和量词——错误的结果?