Terraform (Yaml) 中的步骤函数定义
Step Function definition in Terraform (Yaml)
我已经在 Terraform (JSON) 文件中实现了 SFn:
data "template_file" "sfn-definition" {
template = file("step-function-definition.json")
}
resource "aws_sfn_state_machine" "sfn_state_machine" {
name = "integration-step-function"
role_arn = aws_iam_role.step_function_role.arn
definition = data.template_file.sfn-definition.rendered
}
它工作正常,但我想使用 YAML 定义而不是 JSON。
我在 YAML 中创建了相同的 SFn 定义。我是在 AWS Toolkit (VS Code) 中完成的,并且图形呈现正确。我将 JSON 文件更改为 YAML:
template = file("step-function-definition.yaml")
不幸的是它不起作用:
08:58:39 Error: Error creating Step Function State Machine: InvalidDefinition:
Invalid State Machine Definition: 'INVALID_JSON_DESCRIPTION:
Unrecognized token 'StartAt': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
我想 aws_sfn_state_machine
中的 definition
需要 JSON 文件,但是是否有任何选项可以在 YAML 中定义 SFn 并使用 Terraform?
Amazon States Language 是基于 JSON 的 。所以你必须先将你的 yaml 转换为 json。您可以尝试以下方法:
template = jsonencode(yamldecode(file("step-function-definition.yaml")))
我已经在 Terraform (JSON) 文件中实现了 SFn:
data "template_file" "sfn-definition" {
template = file("step-function-definition.json")
}
resource "aws_sfn_state_machine" "sfn_state_machine" {
name = "integration-step-function"
role_arn = aws_iam_role.step_function_role.arn
definition = data.template_file.sfn-definition.rendered
}
它工作正常,但我想使用 YAML 定义而不是 JSON。 我在 YAML 中创建了相同的 SFn 定义。我是在 AWS Toolkit (VS Code) 中完成的,并且图形呈现正确。我将 JSON 文件更改为 YAML:
template = file("step-function-definition.yaml")
不幸的是它不起作用:
08:58:39 Error: Error creating Step Function State Machine: InvalidDefinition:
Invalid State Machine Definition: 'INVALID_JSON_DESCRIPTION:
Unrecognized token 'StartAt': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
我想 aws_sfn_state_machine
中的 definition
需要 JSON 文件,但是是否有任何选项可以在 YAML 中定义 SFn 并使用 Terraform?
Amazon States Language 是基于 JSON 的 。所以你必须先将你的 yaml 转换为 json。您可以尝试以下方法:
template = jsonencode(yamldecode(file("step-function-definition.yaml")))