小编Ess*_*nce的帖子

如何让 Terraform 根据用户所在的帐户抛出特定的错误消息?

我有一个执行域委托的 terraform 模块。对于多个变量,会针对硬编码值进行一些验证,以检查用户是否使用有效的输入,例如:

resource "null_resource" "validate_region" {
  count = contains(local.regions, var.region) == true ? 0 : "Please provide a valid AWS region. E.g. (us-west-2)"
}
Run Code Online (Sandbox Code Playgroud)

local.regions硬编码的并且var.region是用户设置的变量。上面的代码的工作原理是,当用户设置错误的变量时,它会抛出如下错误:

Error: Incorrect value type

  on .terraform/foo/main.tf line 46, in resource "null_resource" "validate_region":
  46:   count = contains(local.regions, var.region) == true ? 0 : "Please provide a valid AWS region. E.g. (us-west-2)"

Invalid expression value: a number is required.
Run Code Online (Sandbox Code Playgroud)

我现在需要验证用户当前使用的 AWS 账户是否正确。在这种情况下,用户需要在其变量中设置正确帐户的帐户 ID,而我的代码需要提取正在运行模块的帐户的帐户 ID,并将其与用户的变量进行比较。我尝试过这样的事情:

data "aws_caller_identity" "account" {}

resource "null_resource" "validate_account" { …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform terraform-provider-aws

5
推荐指数
3
解决办法
1万
查看次数