问题标签 [hcl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
61 浏览

go - 如何在 Go 编译之前预先检查和设置变量?

我将预先检查 HCL 内容并将其设置为golang. 即 HCL 内容应在编译前解析并设置为特定变量。

这是示例。

具有以下config.melHCL 字符串。

有以下main.go几行:

有什么方法可以HCL_CONTENTS在编译前设置变量吗?

0 投票
3 回答
6976 浏览

terraform - 使用 Terraform 进行高效的变量验证

是否有一种有效的方法将验证逻辑应用于 terraform 运行中使用的变量?具体来说,我想检查一些变量的长度和大小写。这些变量是在 tfvars 文件和 variables.tf 文件中声明的变量的组合,并在运行时由 terraform 收集。

谢谢。

0 投票
0 回答
252 浏览

go - 在 Go 中搜索和更新 HCL 中的字符串

嘿伙计们,我遇到了一个障碍,试图弄清楚如何搜索我们所有人service/policy_names以确保他们具有某些能力。

假设我有一个类似于以下的保险库政策

我正在尝试扫描每个策略,如果路径没有正确的功能,请创建一个具有正确功能的新文件并保存它。我被困在试图扫描每条路径并且有点被淘汰了。希望有人可以帮助或推荐一种更明智的方法。以上将被保存到一个新文件service_admin.hcl中,如下所示

到目前为止我的代码如下,我选择 go 是因为我认为 HCL 库会帮助我,但我很难使用它。

0 投票
1 回答
2153 浏览

terraform - Terraform:来自变量的动态属性(在 splat 语法中)

在 terraform HCL 中,是否可以从变量中动态引用对象的属性?

IE:

更具体到我的情况,我希望使用 splat 语法来做到这一点:

我已经尝试过lookup(data.terraform_remote_state.thing, var.attribute)和(对于 splat 问题)之类的东西,lookup(element(data.terraform_remote_state.*, count.index), var.attribute)但他们都抱怨我的属性引用不完整/格式错误。

0 投票
1 回答
370 浏览

terraform - 将字符串附加到 Terraform 中的地图类型

我在 Terraform (v0.11.7) 中有一个表达式:

我需要将字符串附加到正确的表达式,例如:

我对此有什么解决方案吗?提前致谢

0 投票
0 回答
487 浏览

go - 如何操作 HCL 抽象语法树?

我正在使用HCL(HashiCorp 配置语言)编写编译器,并且我正在尝试操作 AST,以便我可以添加我的自定义逻辑。

我只设法使用go-spew打印所有树元素。

文档相对模糊,网络上的支持文章很少。我试图遵循这个,但不推荐使用语法(写于 2015 年)。

我怎么能做到这样的事情?

0 投票
1 回答
431 浏览

terraform - Terraform 连接插值不附加到最后一个元素

我有一个片段可以创建一个像这样的 Vmware 机器列表..

然后稍后在我的文件中,我创建一个变量列表以传递给这样的模板......

vm.tf摘抄...

inventory.tpl摘抄..

但是呈现的模板不会将所需的.company.com字符串附加到最后一个元素。请参阅渲染模板中的以下片段。

我不确定我应该做些什么不同,所以字符串也被附加到列表的最后一个元素。任何帮助,将不胜感激。

0 投票
1 回答
1552 浏览

terraform - 如何即时修改地图?

我需要在特定的 HCL Map 键/值对上迭代更多次,这些键/值对需要基于特定变量的值。

我想到了修改当前映射的想法——这样某些键/值将被迭代更多次。

如果我们有这张地图 - 让我们称之为“map_domains”:

我们已经设置了这些变量:

我们如何将地图“map_domains”修改为:

我正在尝试通过 DNS 验证选项验证几个 AWS ACM 证书 - 每个域都有几个域备用名称,它们还需要在 Route53 中创建 DNS 记录,以便正确验证域证书。

这是用于实现总体目标的代码 - 问题在于 Zone ID 需要在前几次迭代中相同,然后在其余迭代中需要另一个。

这一行:

整个代码:

0 投票
1 回答
1648 浏览

amazon-web-services - 如何在 Terraform 中为 aws-cli 准备渲染的 JSON?

在另一个线程中,我询问了如何在 AWS中保持ECS 任务定义处于活动状态。因此,我计划像这样更新任务定义:

data.template_file.task_definition是一个模板数据源,它从文件中提供模板化的 JSON。但是,这不起作用,因为 JSON 包含新行和空格。

我已经发现我可以使用replace插值函数来消除新行和空格,但是我仍然需要转义双引号,以便 AWS API 接受请求。

如何安全地准备由 产生的字符串data.template_file.task_definition.rendered?我正在寻找这样的东西:

原始字符串:

准备好的字符串:

0 投票
2 回答
5926 浏览

terraform - 如何以编程方式获取 Terraform 模块名称?

我已经定义了以下 Terraform 模块:

如何利用模块名称source通过插值设置参数?我希望是这样的: