Eng*_*ery 4 terraform terraform-remote-state
Terraform v0.12.24 + provider.aws v2.61.0
在高山容器中运行。
我有一个基本的 terraform 脚本运行正常,但现在我正在扩展它并尝试配置远程(S3)状态。
地形.tf:
terraform {
backend "s3" {
bucket = "labs"
key = "com/company/labs"
region = "eu-west-2"
dynamodb_table = "labs-tf-locks"
encrypt = true
}
}
Run Code Online (Sandbox Code Playgroud)
桶存在,表也存在。我已经用 terraform 创建了它们,并通过控制台进行了确认。
当我运行时,terraform init我得到:
Error refreshing state: InvalidParameter: 2 validation error(s) found.
- minimum field size of 1, GetObjectInput.Bucket.
- minimum field size of 1, GetObjectInput.Key.
Run Code Online (Sandbox Code Playgroud)
terraform fmt没有错误报告并愉快地重新格式化我的terraform.tf文件。我也尝试将节移动到我的中main.tf,以防万一该terraform.tf文件因某种原因被忽略。我得到了完全相同的结果。
我也尝试在没有 alpine 容器的情况下从 aws 中的 ubuntu ec2 实例运行它,但我得到了相同的结果。
我最初在密钥中有 terraform 文件的名称。我已经删除了(谢谢),但它并没有帮助解决问题。
另外,我刚刚尝试在较旧的图像中运行它:hashicorp/terraform:0.12.17但我收到了类似的错误:
Error: Failed to get existing workspaces: InvalidParameter: 1 validation error(s) found.
- minimum field size of 1, ListObjectsInput.Bucket.
Run Code Online (Sandbox Code Playgroud)
我猜我在这里做了一些非常愚蠢的事情,但我看不出它是什么。
我不明白这个问题,但我现在有一个可行的解决方案。我删除了.terraform目录并重新运行terraform init。这对我来说没问题,因为我没有现有的状态。洞察力来自从 0.12.17 版本的 terraform 读取错误,该版本抱怨无法读取工作区。
Error: Failed to get existing workspaces: InvalidParameter: 1 validation error(s) found.
- minimum field size of 1, ListObjectsInput.Bucket.
Run Code Online (Sandbox Code Playgroud)
这最初让我相信较早版本的 tf 读取较新版本的配置存在问题。所以,我吹走了它.terraform并且它与旧的 tf 一起工作,所以我再次做了它并且它也与新的 tf 一起工作。显然,Terraform 的存储中出现了一些问题。我不知道如何或为什么。但是,它对我有用,所以......
| 归档时间: |
|
| 查看次数: |
4456 次 |
| 最近记录: |