Terraform Error: Error locking state: Error acquiring the state lock: 2 errors occurred:

Terraform Error: Error locking state: Error acquiring the state lock: 2 errors occurred:

我尝试了 terraform v0.12.26 和 v0.13.3 版本。都失败了。

地形规划

正在获取状态锁。这可能需要一些时间...

错误:锁定状态时出错:获取状态锁时出错:发生 2 个错误: * ResourceNotFoundException: 找不到请求的资源 * ResourceNotFoundException:找不到请求的资源

Terraform 获取状态锁以保护状态不被写入 同时由多个用户。请解决上述问题并尝试 再次。对于大多数命令,您可以使用“-lock=false”禁用锁定 标志,但不推荐这样做。

相关源码:

terraform {
  backend "s3" {
    encrypt        = false
    bucket         = "dev-terraform-state"
    key            = "dev/Oregon/eks/terraform.tfstate"
    region         = "us-west-2"
    dynamodb_table = "dev-lock-table"
  }
  required_version = ">= 0.12.0"
}

错误是ResourceNotFoundException,说明你的dev-lock-table不存在

Terraform 不会创建它。相反,它 必须在 之前存在,您将使用它。来自 docs:

dynamodb_table field to an existing DynamoDB table name.

我运行terraform force-unlock <LOCK_ID>(docs)删除锁。

很多讨论here

确保下面代码中创建的 table 和指定的区域相同

terraform { 后端 "s3" { bucket = "" key = "" region = "us-east-1" dynamodb_table =

检查您是否使用相同的 AWS 账户和正确的区域。 DynamoDB Table 必须与 CLI/SDK 配置

位于同一区域