【问题标题】:How can we replace API gateway call with PHP AWS SDK?我们如何用 PHP AWS SDK 替换 API 网关调用?
【发布时间】:2021-04-29 02:49:16
【问题描述】:

一段时间以来,我一直在使用 AWS API Gateway 调用我的 AWS Lambda。

我的 AWS Lambda 由 NodeJS 和 Express 以及后端 MongoDB Altas 组成。

我在来自 PHP Rest Client 的 API 调用中遇到“端点请求超时”问题。将 lamdba 超时时间增加到 4 分钟,内存也增加到 200 MB。

所以在做了一些研究之后,我发现 AWS API 网关的超时时间为 30 秒。因此,为了解决这个问题,我尝试使用 AWS SDK 调用我的 Lambda POST 函数。

到目前为止,我迷失了设置和安装,找不到任何相关示例来直接调用我的 Lambda 以调用相应的 Express Endpoints。 以下是 AWS Lambda 中的 api 函数示例

app.post('/api/v1/getback', (req, res) => { res.send({ ...req.body }); });

也不确定 AWS SDK 是否带有 Express Lambda。

有人可以帮助我们如何使用 PHP AWS-SDK 触发 AWS Lambda 吗?或者任何其他帮助也将不胜感激。

提前谢谢你!

【问题讨论】:

    标签: amazon-web-services express aws-lambda aws-api-gateway aws-php-sdk


    【解决方案1】:

    Lambda 有一个客户端 SDK,可让您调用 Lambda 函数。这里有一个如何使用 API 调用 Lambda 的示例(这是 AWS Java API):

    https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javav2/example_code/lambda/src/main/java/com/example/lambda/LambdaInvoke.java

    如果您想使用 PHP,则需要使用适用于 PHP 的 AWS 开发工具包。然而,这个 Java 示例应该为您提供一个起点。

    【讨论】:

    • 谢谢! @smac2020。我确实遇到过类似的 PHP 示例。致力于实施部分。我唯一担心的是我必须为 SDK 调用重写我的 Lambda 函数,因为它是为处理 http 请求而编写的。
    • 还有一个问题@smac2020,如果我使用 aws-sdk 是否能够处理大数据,即 2 分钟的处理时间?目前我无法在限制中执行与 API Gateway 超时相同的操作。
    猜你喜欢
    • 2017-11-07
    • 2019-08-30
    • 1970-01-01
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 2017-04-28
    • 2017-11-04
    相关资源
    最近更新 更多