AWS CLI:侦听器 ARN "must be in ARN format"错误



我正在使用Terraform中的本地Exec Provisioner来运行AWS CLI命令,这些命令围绕Terraform缺乏对某些AWS功能的支持。所讨论的命令是为应用程序负载平衡器创建listener-rule。这是有问题的电话(数字模糊(:

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

这会产生错误:

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

但是,如果您在亚马逊自己的文档中检查了示例,则它们使用完全相同的ARN格式,除非我缺少明显的。

这是我的Terraform代码:

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}"
  }
}

通过确保区域正确来修复此操作。默认区域与我的群集不同,并导致它丢弃此(误导(ARN错误。

aws configure --region CORRECT_REGION

您可以使用--region命令行参数或环境变量AWS_DEFAULT_REGION

覆盖默认区域。

,例如

aws elbv2 create-rule --region us-east-1  --listener-arn ...

如果您需要从一台客户机器对不同区域运行AWS CLI命令特别有用。

请在此处找到更多详细信息:

https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html

https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration-rigion-rigion

最新更新