【发布时间】:2021-01-27 03:59:09
【问题描述】:
我正在使用以下 tf 配置:
variable "aws_profile" {
description = "The AWS profile to use for this account"
}
provider "aws" {
version = "~> 2"
region = "us-east-1"
profile = "${var.aws_profile}"
}
provider "aws" {
version = "~> 2"
region = "us-west-2"
alias = "us_west_2"
profile = "profile-us-west-2"
}
在哪里
cat ~/.aws/credentials
[profile-us-west-2]
region=us-west-2
aws_access_key_id = ΧΧΧΧΧΧΧΧΧΧΧ
aws_secret_access_key = ΧΧΧΧΧΧΧΧΧΧΧΧΧ
并尝试 import 现有的 S3 存储桶
到下面的 tf 资源
resource "aws_s3_bucket" "my_tf_bucket" {
provider = "aws.us_west_2"
bucket = "my_tf_bucket"
使用以下命令:
terraform import aws_s3_bucket.my_tf_bucket existing_bucket_name
失败如下:
Error importing AWS S3 bucket policy: AuthorizationHeaderMalformed: The authorization header is malformed; the region 'us-east-1' is wrong; expecting 'us-west-2'
status code: 400, request id: 64242424244D21946, host id: bddw422424
为什么provider 别名不起作用?
【问题讨论】:
-
您是否检查环境变量 AWS_REGION 或 AWS_DEFAULT_REGION 是否已设置?
-
它们没有设置,我检查了
-
我认为问题来自存储桶名称(在这种情况下尝试使用唯一的名称更改它)或来自您多次导入同一个对象并且它已经存在于您的状态文件中的事实(尝试更改后端或移动您的状态文件以确保。)注意:有时 terraform 中的错误消息并不能真正反映问题。
标签: amazon-web-services amazon-s3 terraform