Я пытаюсь передать аргумент в лямбду aws python с конечного автомата.Я написал следующую функцию:
{
"Comment": "test lambda execution with state machine",
"StartAt": "testPassInArgs",
"States": {
"testPassInArgs": {
"Type": "Task",
"Resource":"arn:aws:lambda:....function:testPassInArgs",
"Next": "testRecieveArgs"
},
"testRecieveArgs": {
"Type": "Task",
"InputPath": "$.a",
"Parameters": {
"InputPath": "$.a"},
"Resource": "arn:aws:lambda:....:function:testRecieveArgs",
"End": true
}
}
}
вот лямбда-функции testPassInArgs:
import json
def lambda_handler(event, context):
stations={}
stations['a']='A'
stations['b']='B'
stations['c']='C'
return {
'a':stations['a'],
'b':stations['b'],
'c':stations['c']
}
другие лямбда-выражения testRecieveArgs:
import json
def lambda_handler(event, context):
# TODO implement
out={}
if type(event) == dict:
for item in event:
out[item+item] = event[item]+event[item]
print(item)
print(event[item])
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!'),
'event': out
}
Я быожидали, что аргумент «Параметры» во второй части конечного автомата проанализировал бы вывод первой лямбды и передал только первую часть (а именно «А») второй лямбде.Однако это не так.вывод второй лямбды:
"InputPathInputPath": "$.a$.a"
Вход второй лямбды - это просто выход первой.
Я хотел бы проанализировать выход первой лямбды и отправитькаждая часть к другой лямбде вниз по течению параллельно.
Я, должно быть, здесь упускаю трюк?Если кто-нибудь знает, что это было бы очень полезно?
ps Я уверен, что смогу обработать распараллеливающую часть, просто проанализировав аргументы и затем передав их в нижестоящие функции, с которыми я борюсь.