Хотя существует несколько подходов для запуска одной лямбды из другой, (по моему опыту) одним из самых быстрых методов будет прямой запуск ARN конечной лямбды.
Вы пробовали вызывать одну лямбду из другой, используя AWS SDK?
(например, в Python с использованием Boto3, я добился этого следующим образом).
См. Ниже, параметр InvocationType = 'Event'
помогает в асинхронном вызове целевой лямбды.
Ниже код принимает 2 параметра (name
, которые могут быть либо именем вашей целевой лямбда-функции, либо ее ARN, params
является объектом JSON с входными параметрами, которые вы хотели бы передать в качестве ввода). Попробуйте!
import boto3, json
def invoke_lambda(name, params):
lambda_client = boto3.client('lambda')
params_bytes = json.dumps(params).encode()
try:
response = lambda_client.invoke(FunctionName = name,
InvocationType = 'Event',
LogType = 'Tail',
Payload = params_bytes)
except ClientError as e:
print(e)
return None
return response
Надеюсь, это поможет!
Подробнее см. Событие Lambda Invoke в документации по Boto3.
В качестве альтернативы, вы также можете использовать Asyn Lambda c Invoke .