【发布时间】:2021-06-19 21:19:17
【问题描述】:
我正在尝试将项目的 CLI 工作区迁移到 Terraform Cloud。我正在使用 Terraform 版本 0.14.8 并遵循官方指南 here。
$ terraform0.14.8 workspace list
default
* development
production
staging
目前项目使用S3远程状态后端配置
terraform {
backend "s3" {
profile = "..."
key = "..."
workspace_key_prefix = "environments"
region = "us-east-1"
bucket = "terraform-state-bucketA"
dynamodb_table = "terraform-state-bucketA"
encrypt = true
}
我把后端配置改成:
backend "remote" {
hostname = "app.terraform.io"
organization = "orgA"
workspaces {
prefix = "happyproject-"
}
}
并执行terraform0.14.8 init 以开始状态迁移过程。预期行为是在 Terraform Cloud 中创建 3 个工作区:
- 项目开发愉快
- happyproject-staging
- happyproject-生产
但是,我收到以下错误:
$ terraform0.14.8 init
Initializing modules...
Initializing the backend...
Backend configuration changed!
Terraform has detected that the configuration specified for the backend
has changed. Terraform will now check for existing state in the backends.
Terraform detected that the backend type changed from "s3" to "remote".
Error: Error looking up workspace
Workspace read failed: invalid value for workspace
我还启用了 TRACE 级别日志,在它引发错误之前我可以看到:2021/03/23 10:08:03 [TRACE] backend/remote: looking up workspace for orgA/。
注意orgA/ 后面的空字符串和前缀的省略!我猜 TF 尝试向 Terraform Cloud 查询默认工作区,这是一个空字符串,但它没有这样做。
我根本没有使用default 工作区,它只是在我执行terraform0.14.8 init 时出现。该指南提到:
Some backends, including the default local backend, allow a special default workspace that doesn't have a specific name. If you previously used a combination of named workspaces and the special default workspace, the prompt will next ask you to choose a new name for the default workspace, since Terraform Cloud doesn't support unnamed workspaces:
但是,它从不提示我为默认工作区选择名称。任何帮助将不胜感激!
【问题讨论】: