【问题标题】:Start_state and End_states for step functions阶跃函数的 Start_state 和 End_states
【发布时间】:2022-01-01 21:53:38
【问题描述】:

我要做的就是创建一个可重用的 ambda 组件,我可以在其中将参数传递给类,以便 Lambda 可以根据输入参数做不同的事情。

我在 python 中使用 CDK 来部署堆栈。我想创建一个并行步进函数,在这里我可以使用不同的参数/有效负载传递相同的 lambda,以便它们可以成为分支。

我正在运行以下代码:

    from aws_cdk import (
    # Duration,
    Stack,
    # aws_sqs as sqs,
    aws_stepfunctions as _stepfunctions,
    aws_stepfunctions_tasks as _stepfunctions_tasks,
    aws_lambda as _lambda,
)
from constructs import Construct

class LambdaJob(_stepfunctions.StateMachineFragment):

    def __init__(self, parent, id, *, jobTypeParam):
        super().__init__(parent, id)

        existingFunc = _lambda.Function.from_function_arn(self, "ExistingLambdaFunc", function_arn="arn:aws:lambda:us-east-1:95842$$$$$:function:dummyFunction")

        lambda_invoked = _stepfunctions_tasks.LambdaInvoke(self, "someID", lambda_function=existingFunc)
        wait_10_seconds = _stepfunctions.Wait(self, "Wait for 10 seconds",
                                         time=_stepfunctions.WaitTime.duration(Duration.seconds(10))
                                         )
        self.start_state = wait_10_seconds

class StepfunctionsClasStack(Stack):

    def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None:
        super().__init__(scope, construct_id, **kwargs)

        test_lambda_1 = LambdaJob(self, "Quick")
        #state_machine = _stepfunctions.StateMachine(self, "TestStateMachine",
        #                                            definition=LambdaJob(self, "Quick"),
        #                                            # role=marketo_role
        #                                            )

但是我不断收到以下错误:

TypeError: Can't instantiate abstract class LambdaJob with abstract methods end_states, start_state

对我做错了什么有什么想法吗? 谢谢

【问题讨论】:

    标签: python-3.x aws-cdk aws-step-functions


    【解决方案1】:

    使用覆盖解决:

    self._start_state = parallel_state#wait_10_seconds
    
            self._end_states = [chain]#[lambda_invoked]
    
        def start_state(self):
            return self._start_state
    
        def end_states(self):
            return self._end_states
    

    【讨论】:

      猜你喜欢
      • 2016-12-25
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 2013-02-17
      • 1970-01-01
      • 2023-03-20
      • 2015-10-27
      • 1970-01-01
      相关资源
      最近更新 更多