AWS CLI:侦听器 ARN "must be in ARN format" 错误
AWS CLI: listener ARN "must be in ARN format" error
我在 terraform 中使用本地 exec provisioner 运行 aws cli 命令来解决 terraform 对某些 aws 功能缺乏支持的问题。有问题的命令是为 Application Load Balancer 创建 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
但是,如果您检查 example in amazon's own documentation,它们使用完全相同的 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}"
}
}
通过确保区域正确解决了这个问题。默认区域与我的集群不同,导致它抛出这个(误导性的)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
我在 terraform 中使用本地 exec provisioner 运行 aws cli 命令来解决 terraform 对某些 aws 功能缺乏支持的问题。有问题的命令是为 Application Load Balancer 创建 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
但是,如果您检查 example in amazon's own documentation,它们使用完全相同的 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}"
}
}
通过确保区域正确解决了这个问题。默认区域与我的集群不同,导致它抛出这个(误导性的)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