【问题标题】:how to pass s3 event as input to step function?如何将 s3 事件作为输入传递给步进函数?
【发布时间】:2020-07-01 07:10:49
【问题描述】:

我是aws的新手,所以如果我错过了什么,请理解, 所以我想创建触发 lambda 的阶跃函数。

我有这样的情况:lambda_A 将文件从一个 s3 存储桶复制到另一个存储桶,例如 bucket_1bucket_2,并且在同一个 lambda 中,我正在使用 boto3 客户端调用 step 函数。在 step 函数中,我触发了另一个 lambda_Blambda_B 需要 bucket_2 的 s3 事件。

现在的问题是如何将bucket_2 的 s3 事件作为输入传递给步进函数?

注意:我尝试创建另一个从 bucket_2 触发的 lambda,在那个 lambda 中我使用 s3 事件启动了 step 函数但是我不能只为这个小作品。

如果有人对这种情况有任何想法,请分享。

提前谢谢你。

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-lambda aws-step-functions


    【解决方案1】:

    通常,当您启动 SFN 时,您会将事件传递为 input

    例如在 boto3 中,当您使用 start_execution 启动 SFN 时,您会将 S3 事件作为 input 参数传递:

    response = client.start_execution(
        stateMachineArn='string',
        name='string',
        input=json.dumps(event)
    )
    

    【讨论】:

    • 是的,你是对的,我正在按照你说的做,但在我的情况下,我有 bucket_1 的 s3 事件而不是 bucket_2。所以我的问题仍然存在如何使用 bucket_2 的 s3 事件启动步进函数。
    • 我认为我的问题无效或我不知道
    • @dera 如果我正确理解您的用例,我认为您无法直接执行此操作。您可以改为将事件传递给 sqs 并使用 step 函数从那里获取事件。
    猜你喜欢
    • 2021-07-16
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多