Terraform导入失败,因为提供程序中定义了错误的区域



我使用以下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 =  ΧΧΧΧΧΧΧΧΧΧΧΧΧ

并尝试CCD_ 1现有的CCD_

到下方的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别名不起作用?

问题是(由于某种原因(,terraform在导入时需要显式传递provider

terraform import --provider=aws.us_west_2 aws_s3_bucket.my_tf_bucket existing_bucket_name

最新更新