如何在Step Functions中使用JSON Lambada输出?

0

【以下的问题经过翻译处理】 我有一个返回JSON对象的(Python)Lambda函数。我想将该对象加入到我的Step Functions状态中,并在下一个状态中访问其子字段...像这样:# Lambda函数 def handler(event, context): return json.dumps({"ThingARN": "...", "AnotherField": "..."}) { "StartAt":"LambdaStuff", "States":{ "LambdaStuff":{ "Type":"Task", "Resource":"arn:aws:states :::lambda:invoke", "Parameters":{ "FunctionName":"MyCoolLambdaFunction", "Payload . $": "$"}, "ResultPath":"$ .LambdaResult", "Next":"NextActivity"}, "NextActivity":{ "Type":"Task", "Resource":"...", "Parameters":{ "ARN。$": "$。LambdaResult。ThingARN" }, "ResultPath":"$ .AnotherResult", "End":true}}}``...但我的状态机失败了(取消了NextActivity任务),因为填充到$.LambdaResult的内容是一个带有Lambda元数据和字符串化结果有效负载的大对象,像这样:````` { "ExecutedVersion":"$LATEST", "Payload":“ { \”ThingARN \“:\”...\”,\”AnotherField \“:\”...\”}”, "SdkHttpMetadata":{ "HttpHeaders":{...},//各种奇奇怪怪的东西 "HttpStatusCode":200}, "SdkResponseMetadata":{ "RequestId":"..."}, "StatusCode":200}}```[这个文档页面](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-state-machine-data.html#concepts-state-machine-data-state-input-output)似乎暗示我想要做的是可能的,但示例显然非常简化/削减。我找到的所有其他示例(例如[“InputPath,OutputPath和ResultPath示例”](https://docs.amazonaws.cn/en_us/step-functions/latest/dg/input-output-example.html))似乎只返回简单的字符串,而不是结构化对象。我猜我可能漏掉了一些明显的东西。

profile picture
EXPERTE
gefragt vor 4 Jahren16 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 如果您在SFN中使用资源属性中的完整函数ARN调用lambda函数,则只会返回Lambda函数返回的内容。此外,您不想使用json.dump返回的对象,只需返回一个映射,它将包含在您的输出中。例如,以下函数:def lambda_handler(event, context): # TODO implement body = { 'Test': 'abc', 'Value': 123 } return body`当像这样调用时:`"Hello": { "Type": "Task", "Resource": "arn:aws:lambda:eu-west-1:xxxxxxxxx:function:HelloWorld:$LATEST", "ResultPath": "$.LambdaResult", "Next": "World"},`使用以下输入:`{ "Input": "My input"}`返回以下内容:`{ "Input": "My input", "LambdaResult": { "Test": "abc", "Value": 123 }}

profile picture
EXPERTE
beantwortet vor 4 Jahren

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen