Я пытаюсь создать пошаговую функцию через AWS CDK. Пошаговые функции должны, среди прочего, вызывать лямбда-функцию. Я использую задачу lambdaInvoke, как описано в: https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_stepfunctions_tasks/LambdaInvoke.html Для параметра lambda_function я пытаюсь использовать существующую Lambda, ссылаясь на ее ARN, используя https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_lambda/Function.html#aws_cdk .aws_lambda.Function.from_function_arn (я также пробовал использовать from_function_attributes)
Мой код cdk выглядит так
lambda_name = sfn.Task(
self, "Lambda Name",
task=sfn_tasks.LambdaInvoke(self, "lambdaInvoke",lambda_function=lambda_.Function.from_function_arn(self,"import-lambda",function_arn="arn:aws:lambda:eu-west-1:accountnumber:function:LambdaName")),
result_path="$.guid"
)
Я пытаюсь вызвать существующую лямбду. (сама лямбда создается и обновляется в настройке конвейера в том же проекте CDK, но в другом стеке)
Я также попытался добавить:% LATEST в LambdaName, и оба выдают ту же ошибку: jsii.errors.JSIIError: props.task.bind is not a function
Я обратился в службу поддержки по этой проблеме, они столкнулись с той же проблемой и направили меня сюда. Как вызвать лямбду через cdk?
Обновление:
LambdaInvoke не должен быть встроен в задачу.
lambda_name = sfn_tasks.LambdaInvoke(
self, "lambdaInvoke",
lambda_function=lambda_.Function.from_function_arn(self,"import-lambda",function_arn="arn:aws:lambda:eu-west-1:accountnumber:function:LambdaName")),
result_path="$.guid"
)
Работает