【发布时间】:2021-08-30 12:52:42
【问题描述】:
我在 json 文件中定义了一个 AWS Step Functions 状态机,在 step1(一个 lambda 任务)中,我在 ResultPath 中保存了三个参数:
"NeededParameters": {
"year": "2021",
"month": "04",
"day": "27"
},
在step2(也是一个 lambda 任务)中,我明白如果我执行以下操作:
"Step 2" : {
"Type": "Task",
"Resource": "arn:aws:states:::lambda:invoke",
"Parameters": {
"FunctionName":"${lambda_name}",
"Payload":{
"year.$": "$.NeededParameters.year"
}
},
"ResultPath": "$.Step2",
"year.$": "$.NeededParameters.year" 会将2021 传递给有效载荷Year。
但我想要实现的是定义一个包含三个参数的 Amazon S3 路径,例如:
"Step 2" : {
"Type": "Task",
"Resource": "arn:aws:states:::lambda:invoke",
"Parameters": {
"FunctionName":"${lambda_name}",
"Payload":{
"s3path.$":"${s3_bucket_name}/$.NeededParameters.year/$.NeededParameters.month/$.NeededParameters.day"
}
},
"ResultPath": "$.Step2",
s3_bucket_name 在 Terraform resource "aws_sfn_state_machine" "sfn_state_machine" 中定义并传递给上面的状态机定义 json 文件,但是当我应用 terraform 时它会抱怨:
InvalidDefinition: Invalid State Machine Definition: 'SCHEMA_VALIDATION_FAILED: The value for the field 's3path.$' must be a valid JSONPath at /States/Process Scores/Parameters'
如果我将s3path.$ 更改为s3path 它仍然无法正常工作,有谁知道如何解决这个问题?谢谢。
【问题讨论】:
-
您能否编辑您的问题,使其形成minimal reproducible example?这使得能够提供可能依赖于其他部分的答案变得更加容易,也让人们更容易准确地看到您尝试过的内容。
标签: json amazon-web-services terraform terraform-provider-aws aws-step-functions