【问题标题】:Call AWS Lambda from Step Funtion using specific URL with parameters使用带有参数的特定 URL 从 Step Function 调用 AWS Lambda
【发布时间】:2023-04-01 13:26:01
【问题描述】:

我正在尝试使用影响最小的步进函数来编排 UI 调用。目前我有一个 lambda 函数,可以通过 API 网关使用不同的 URL 调用,例如,以下 URL 用于调用相同的 lambda:

http://base.url/orders/get/order/{userid}
http://base.url/orders/get/allorders/

我知道这不是 lambdas 的最佳实践,但我们拥有我们所拥有的。现在我需要在 API 网关和 lambda 之间添加一个步进函数来编排调用。我需要 step 函数才能使用这些 url 调用 step 函数,但我不明白该怎么做。

以下是我已经检查过的一些链接:

有没有办法做我需要做的事情?

【问题讨论】:

    标签: amazon-web-services aws-lambda aws-api-gateway aws-step-functions


    【解决方案1】:

    听起来您只需要以一种类似于 API 网关的方式将消息格式化为 lambda。如果是这种情况,您可以通过从控制台的 lambda 测试事件中选择 Amazon API Gateway AWS 代理来查看 API Gateway 请求的外观。从那里您应该能够修改有效负载以满足您的需求。

    【讨论】:

    • 看来你是对的!顺便问一下,我可以在 Step Function 级别上做 AWS 代理吗?我仍将通过网关调用 step 函数,将所有信息简单地转发到 lambda 就好了。
    • 我不确定你在问什么。如果您询问是否可以通过 Step Functions 调用 API 网关,答案是肯定的 (docs.aws.amazon.com/step-functions/latest/dg/…)。如果你问是否可以跳过它直接进入 Lambda,答案也是肯定的,这就是我所描述的。
    • 很抱歉造成混淆。我将通过 API Gateway 调用 Step Function 的 StartSyncExecution,然后从 StepFunction 调用 Lambda。我试图了解如何以 Lambda 不知道 StepFunction 调用它的方式进行 Lambda 调用,因此调用应该看起来像是来自 API Gateway。如何传递所有需要的参数?
    • 我尝试将资源路由从 GW 传递到 StepFunction 作为输入,如下所示:"RequestParameters": { "Input": "$context.resourcePath", "StateMachineArn": { "Ref": "MyStepFunctionARN" } },因此我可以稍后使用它来调用 lambda,但它无法通过验证步骤。我只是想执行您最初的建议。
    猜你喜欢
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    相关资源
    最近更新 更多