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