我正在尝试找到一种使用python外部数据提供程序返回嵌套字典的方法。我现在正在使用terraform_external_data
python软件包,但是可以征求建议。
这是我的代码。
terraform.tf
provider "external" {
version = "~> 1.2"
}
data "external" "vip_config" {
program = ["python", "${path.module}/f5-terraform-ext-data.py"]
}
output "output_all_result_data" {
value = data.external.vip_config.result
}
f5-terraform-ext-data.py
@terraform_external_data
def f5_ext_data(tf_query):
tf_query.update({"name": "pool1"})
return tf_query
if __name__ == '__main__':
f5_ext_data()
以上方法有效,并且给了我类似的东西:
output_all_result_data = {
"name": "pool1"
}
但是我正在看的是获得更多嵌套词典的一种方法。如下所示:
{"pool":[{"name":"pool1"},{"name":"pool2"}]}
当我返回此数据时,它不起作用。错误错误为:
Error: failed to execute "python": Values must be strings.
任何建议如何使其起作用?我可以使其在Python中运行,但不适用于数据提供程序。 Terraform给我错误。
谢谢。