资源定义语法中的地形列表令人头疼



我正在尝试将aws_glue_trigger导入到我的地形状态中,以便我可以看到它在状态文件中的外观,并创建完整的资源定义以将其作为在地形中执行所有ETL内容的入门。

我已经导入了带有空资源持有者的状态,但我无法弄清楚列表语法如何在资源定义中工作。

例如,在我的州,我有一个触发器,其谓词具有 3 个条件,其下方有一个逻辑,在完成 JOBS 1、2 和 3 时,它将运行EXAMPLE_CRAWLER - 相对简单:-

{
"mode": "managed",
"type": "aws_glue_trigger",
"name": "EXAMPLE_TRIGGER",
"provider": "provider.aws",
"instances": [
{
"schema_version": 0,
"attributes": {
"actions": [
{
"arguments": {},
"crawler_name": "EXAMPLE_CRAWLER",
"job_name": "",
"timeout": 0
}
],
"arn": "arn:SOMEARN",
"description": "",
"enabled": true,
"id": "EXAMPLE_TRIGGER",
"name": "EXAMPLE_TRIGGER",
"predicate": [
{
"conditions": [
{
"crawl_state": "",
"crawler_name": "",
"job_name": "JOB1",
"logical_operator": "EQUALS",
"state": "SUCCEEDED"
},
{
"crawl_state": "",
"crawler_name": "",
"job_name": "JOB2",
"logical_operator": "EQUALS",
"state": "SUCCEEDED"
},
{
"crawl_state": "",
"crawler_name": "",
"job_name": "JOB3",
"logical_operator": "EQUALS",
"state": "SUCCEEDED"
}
],
"logical": "AND"
}
],
"schedule": "",
"tags": {},
"timeouts": {
"create": null,
"delete": null
},
"type": "CONDITIONAL",
"workflow_name": "EXAMPLE_WORKFLOW"
},
"private": "some_private_string"
}
]
}

根据文档,谓词定义为:-

谓词

–(可选(指定何时触发新触发器的谓词。当触发器类型为"条件"时为"必需"。定义如下。

谓词的参数定义为:-

条件 -(必需(确定触发器何时触发的条件列表。定义如下。

逻辑 -(可选(如何处理多个条件。默认为 有效值为 AND 或任何

哪个匹配状态输出很好。

这是我尝试通过解析器获取此内容的最新迭代:-

resource "aws_glue_trigger" "EXAMPLE_TRIGGER" {
name = "EXAMPLE_TRIGGER"
type = "CONDITIONAL"
workflow_name = "EXAMPLE_WORKFLOW"
actions {
arguments = {}
crawler_name = "EXAMPLE_CRAWLER"
job_name = ""
timeout = 0
}
predicate {
conditions = [{
crawl_state = ""
crawler_name = ""
job_name = "JOB1"
logical_operator = "EQUALS"
state = "SUCCEEDED"
},
{
crawl_state = ""
crawler_name = ""
job_name = "JOB2"
logical_operator = "EQUALS"
state = "SUCCEEDED"
},
{
crawl_state = ""
crawler_name = ""
job_name = "JOB3"
logical_operator = "EQUALS"
state = "SUCCEEDED"
}]
logical = "AND"
}
}

这给了我一个错误"错误:需要参数或块定义",这意味着它希望我在条件后放置一个等号

此处需要参数或块定义。要设置参数,请使用 等号"="引入参数值。

这与文档页面上的文档和示例相反

当我添加等于时,我得到"错误:不支持的参数">

此处不需要名为"条件"的参数。你的意思是定义一个 "条件"类型的块?

让我再次将等号取出并定义为块?

我很困惑,可能错过了一些简单的东西 - 但任何帮助将不胜感激。

我从Andy Shim的评论中找到了答案(一旦我把它:)了(,它在这里救了我 - 谢谢。只需为要解析的文件添加最少的参数,然后计划输出将为您提供所需的所有语法和输入。对于这个,要给出如下对象列表,只需重复该块:-

即不要做:-

conditions: [
{
"crawl_state": "",
"crawler_name": "",
"job_name": "JOB1",
"logical_operator": "EQUALS",
"state": "SUCCEEDED"
},
{
"crawl_state": "",
"crawler_name": "",
"job_name": "JOB2",
"logical_operator": "EQUALS",
"state": "SUCCEEDED"
},
{
"crawl_state": "",
"crawler_name": "",
"job_name": "JOB3",
"logical_operator": "EQUALS",
"state": "SUCCEEDED"
}

但要做:-

conditions {
"crawl_state": "",
"crawler_name": "",
"job_name": "JOB1",
"logical_operator": "EQUALS",
"state": "SUCCEEDED"
}
conditions {
"crawl_state": "",
"crawler_name": "",
"job_name": "JOB2",
"logical_operator": "EQUALS",
"state": "SUCCEEDED"
}
conditions {
"crawl_state": "",
"crawler_name": "",
"job_name": "JOB3",
"logical_operator": "EQUALS",
"state": "SUCCEEDED"
}

最新更新