Terraform BucketRegionError:区域不正确,存储桶不在';欧盟-西部-2';-地球化

Terraform BucketRegionError:区域不正确,存储桶不在';欧盟-西部-2';-地球化,terraform,Terraform,我需要terraform来访问我的S3存储桶,但它无法在指定区域找到存储桶 My main.tf: provider "aws" { region = "eu-west-2" } terraform { backend "s3" { bucket = "xyz-state-blog" key = "dev/terraform" region = "eu-west-2"

我需要terraform来访问我的S3存储桶,但它无法在指定区域找到存储桶

My main.tf:

provider "aws" {
region = "eu-west-2"
}

terraform {
backend "s3" {
bucket = "xyz-state-blog"
key    = "dev/terraform"
region = "eu-west-2"
}
}

 locals {
  azs       = ["eu-west-2a", "eu-west-2b", "eu-west-2c"]
  environment            = "dev"
  kops_state_bucket_name = "${local.environment}-kops-state"
 // Needs to be a FQDN
 kubernetes_cluster_name = "k8s-dev0.domain.com"
 ingress_ips             = ["10.0.0.100/32", "10.0.0.101/32"]
 vpc_name                = "${local.environment}-vpc"

  tags = {
  environment = "${local.environment}"
  terraform   = true
  }
  }

  data "aws_region" "current" {}
下面是我在
terraforminit
命令中遇到的错误:

   Error inspecting states in the "s3" backend:
   BucketRegionError: incorrect region, the bucket is not in 'eu-west-2' region
status code: 301, request id: , host id:

对于我来说,删除.terraform文件夹并尝试
terraform init
再次解决了与区域相关的问题。

无需删除整个.terraform文件夹:

  • 找到您的
    .terraform/terraform.tfstate
  • 删除负责
    S3
    bucket的json对象
  • 删除生成远程后端的节
  • 运行
    terraforminit
    &享受

  • 显然出现错误,因为没有创建要与之同步的S3存储桶。

    您已经创建了存储桶吗?Terraform不创建bucket。是的,已创建bucket,还检查了默认creds。aws地区也相同。请确保bucket是在“eu-west-2”中创建的,并确保Terraform使用“默认”配置文件。另外,您的terraform后端没有锁定机制,通常我是这样做的:terraform{backend“s3”{bucket=“${TF_VAR_state_bucket}”dynamodb_table=“${dynamodb_state_table}”key=“terraform/$state_PATH/terraform.tfstate”region=“$region”encrypt=“true”}您使用的是terraform的哪个版本我使用的是terraform v0.11.13,它给了我一个错误
    terraform.backend:配置不能包含插值
    ,可能是因为版本问题,我在使用BASH生成后端。我的观点是,您需要一个DyanamoDB表来锁定状态,这样多人就可以在不相互踩踏的情况下工作,并且您希望对其进行加密,以便保护敏感值。您可能还希望在bucket上使用默认加密。