AWS CLI:侦听器 ARN“必须采用 ARN 格式”错误

aja*_*992 4 amazon-web-services amazon-elb aws-cli terraform

我在 terraform 中使用本地 exec 配置程序来运行 aws cli 命令,以解决 terraform 缺乏对某些 aws 功能的支持的问题。有问题的命令是listener-rule为 Application Load Balancer创建一个。这是有问题的电话(数字模糊):

aws elbv2 create-rule 
--listener-arn arn:aws:elasticloadbalancing:us-west-1:394416156998:listener/app/lb-name/22e3a19c3c684f8b/17032dfaae523461 
--priority 2 
--conditions Field=http-request-method,Values='GET' 
--actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-west-1:394416159845:targetgroup/target-group-name/2ff8e99a44a24219
Run Code Online (Sandbox Code Playgroud)

这会产生错误:

(ValidationError) when calling the CreateRule operation: 'arn:aws:elasticloadbalancing:us-west-1:394416155421:listener/app/alb-name/92e1a32c3c684f2b/64032dfaae753032' must be in ARN format
Run Code Online (Sandbox Code Playgroud)

但是,如果您查看亚马逊自己的文档中示例,它们会使用完全相同的 ARN 格式,除非我遗漏了明显的内容。

这是我的地形代码:

resource "null_resource" "rule-maker" {
  provisioner "local-exec" {
    command = "aws elbv2 create-rule --listener-arn ${data.aws_arn.listener-arn.arn} --priority 2 --conditions Field=http-request-method,Values='GET' --actions Type=forward,TargetGroupArn=${aws_alb_target_group.name.arn}"
  }
}
Run Code Online (Sandbox Code Playgroud)

aja*_*992 5

通过确保区域正确来解决此问题。默认区域与我的集群不同,并导致它抛出此(误导性)ARN 错误。

aws configure --region CORRECT_REGION