【问题标题】:Terraform Validate Error - Snowflake AutomationTerraform 验证错误 - 雪花自动化
【发布时间】:2022-01-25 18:19:26
【问题描述】:

我正在致力于自我开发,以更好地了解如何为雪花环境实施基础架构即代码 (Terraform)。

我有一个 GitHub 存储库,其中包含 GitHub 操作配置的工作流,它执行以下操作: 在以下位置设置 terraform cloud

  • 设置 terraform v1.1.2
  • 运行 Terraform fmt -check
  • Terraform 验证
  • 地形规划
  • Terraform 应用

Public Repo https://github.com/waynetaylor/sfguide-terraform-sample/blob/main/.github/workflows/actions.yml 这里几乎遵循 github 对 terraform 云步骤的操作。

我已经配置了 TF 云,如果我运行 terraform validate 步骤,这将因雪花的环境变量而失败 - 无论我是在本地运行还是通过操作远程运行。但是,如果我运行 terraform 计划并应用和排除 terraform 验证,它就可以工作。

示例错误

Error: Missing required argument
│
│   on main.tf line 27, in provider "snowflake":
│   27: provider "snowflake" {
│
│ The argument "account" is required, but no definition was found.

【问题讨论】:

标签: terraform


【解决方案1】:

snowflake provider documentation 表示需要三个必需值:用户名、帐户和地区。

您在代码中调用提供者的地方需要提供这些值。

例如

来自

provider "snowflake" {
  alias = "sys_admin"
  role  = "SYSADMIN"
}

provider "snowflake" {
  // required
  username = "..."
  account  = "..."
  region   = "..."

  alias = "sys_admin"
  role  = "SYSADMIN"
}

【讨论】:

  • 感谢您的回复。我认识到这些是必需的,并且在我的 terraform 云工作区中设置了这些值。如果我在 github 操作中注释掉验证并运行计划,那么计划和应用运行良好。这告诉我 terraform validate 不使用云变量,如 plan 和 apply do
  • 通过添加您提到的值解决了这个问题。然后创建一个变量文件,然后将变量从 env 更新为 TF cloud 中的 terraform 变量
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-27
  • 2023-03-18
  • 1970-01-01
相关资源
最近更新 更多