无效的模板控制关键字
Invalid Template Control Keyword
目前正在开发包含一些粘合服务的 TF 模板。尝试初始化模板时,出现以下错误提示:
Error: Invalid template control keyword
on main.tf, in resource "aws_glue_classifier" "SrcPlanClassifier":
grok_pattern = "%{DATA:col},%{DATA:col2},%{DATA:col3},"%{DATA:col4}",% .
{DATA:col5},%{DATA:col6},%{DATA:col7},%{DATA:col8},%{DATA:col9},%{DATA:col10},% .
{DATA:col11},%{DATA:col12},%{DATA:col}13$"
"DATA" is not a valid template control keyword.
此模板是将现有 CloudFormation 模板转换为 Terraform 的结果,因此该模式在过去一直有效。据我在 Glue 的 AWS 文档中得知,DATA 术语是可接受的内置分类器。这对我来说意味着这是 Terraform 端的问题。我在这里错过了什么?
在此先感谢您的帮助!
Terraform 将 %{
序列理解为引入 template directive,然后失败,因为 if
和 for
是唯一允许跟随 [= =12=] Terraform 语言中的标记。
要在您的字符串中按字面意义使用 %{
,您可以改写 %%{
来转义介绍符。 Terraform 将在结果字符串中看到 %%{
并生成 %{
:
grok_pattern = "%%{DATA:col},%%{DATA:col2},%%{DATA:col3},"%%{DATA:col4}",% .
{DATA:col5},%%{DATA:col6},%%{DATA:col7},%%{DATA:col8},%%{DATA:col9},%%{DATA:col10},% .
{DATA:col11},%%{DATA:col12},%%{DATA:col}13$"
(我认为您分享的消息中存在一些换行问题,因此我已尽我所能对其进行更新以进行转义,但您可能需要自己进行一些额外的转义。总体思路是更换每个 %{
与 %%{
在你引用的字符串中。)
另一种选择是将相关字符串移动到一个单独的文件中,然后让 Terraform 读取该文件:
grok_pattern = file("${path.module}/grok_pattern.txt")
file
函数只是逐字获取给定文件中的文本,不会针对模板序列或任何其他特殊标记对其进行解析。
目前正在开发包含一些粘合服务的 TF 模板。尝试初始化模板时,出现以下错误提示:
Error: Invalid template control keyword
on main.tf, in resource "aws_glue_classifier" "SrcPlanClassifier":
grok_pattern = "%{DATA:col},%{DATA:col2},%{DATA:col3},"%{DATA:col4}",% .
{DATA:col5},%{DATA:col6},%{DATA:col7},%{DATA:col8},%{DATA:col9},%{DATA:col10},% .
{DATA:col11},%{DATA:col12},%{DATA:col}13$"
"DATA" is not a valid template control keyword.
此模板是将现有 CloudFormation 模板转换为 Terraform 的结果,因此该模式在过去一直有效。据我在 Glue 的 AWS 文档中得知,DATA 术语是可接受的内置分类器。这对我来说意味着这是 Terraform 端的问题。我在这里错过了什么?
在此先感谢您的帮助!
Terraform 将 %{
序列理解为引入 template directive,然后失败,因为 if
和 for
是唯一允许跟随 [= =12=] Terraform 语言中的标记。
要在您的字符串中按字面意义使用 %{
,您可以改写 %%{
来转义介绍符。 Terraform 将在结果字符串中看到 %%{
并生成 %{
:
grok_pattern = "%%{DATA:col},%%{DATA:col2},%%{DATA:col3},"%%{DATA:col4}",% .
{DATA:col5},%%{DATA:col6},%%{DATA:col7},%%{DATA:col8},%%{DATA:col9},%%{DATA:col10},% .
{DATA:col11},%%{DATA:col12},%%{DATA:col}13$"
(我认为您分享的消息中存在一些换行问题,因此我已尽我所能对其进行更新以进行转义,但您可能需要自己进行一些额外的转义。总体思路是更换每个 %{
与 %%{
在你引用的字符串中。)
另一种选择是将相关字符串移动到一个单独的文件中,然后让 Terraform 读取该文件:
grok_pattern = file("${path.module}/grok_pattern.txt")
file
函数只是逐字获取给定文件中的文本,不会针对模板序列或任何其他特殊标记对其进行解析。