1

我在 Terraform Cloud 工作区中使用 Sentinel 策略。我的策略很简单:

import "tfplan/v2" as tfplan

allBDs = tfplan.find_resources("aci_bridge_domain")
violatingBDs = tfplan.filter_attribute_does_not_match_regex(allBDs,
                      "description", "^demo(.+)", true)                      


main = rule {
  length(violatingBDs["messages"]) is 0
}

不幸的是,使用此消息调用它时失败:

An error occurred: 1 error occurred:
    * ./allowed-terraform-version.sentinel:3:10: key "find_resources" doesn't support function calls

find_resources ( doc ) 的文档和源代码需要一个字符串,但 Sentinel 解释器似乎认为我正在调用 tfplan 的方法?尚不清楚为什么会这样,并且文档并没有真正的帮助。

有任何想法吗?

4

1 回答 1

0

好的,我发现了问题。如果我粘贴 find_resources 及其依赖项(to_string、evaluate_attribute)的代码,那么一切都会按预期工作。

所以我有一个简单的导入问题,需要弄清楚如何正确导入https://raw.githubusercontent.com/hashicorp/terraform-guides/master/governance/third-generation/common-functions/tfplan-functions/tfplan-函数.sentinel

于 2021-01-18T13:47:09.363 回答