当前位置: 首页 > 知识库问答 >
问题:

如何用PHP AWS SDK代替API网关调用?

陈君之
2023-03-14

我在PHP Rest客户端的API调用中面临“endpoint请求超时”问题。将Lamdba超时增加到4分钟,内存也增加到200 MB。

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

到目前为止,我对setup和installing一头雾水,找不到任何直接调用Lambda以调用相应的Expressendpoint的相关示例。下面是AWS Lambda中api函数的示例

提前谢谢!

共有1个答案

邴俊达
2023-03-14

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,那么您需要使用AWS SDK for PHP。然而,这个Java示例应该为您提供一个起点。

 类似资料:
  • 我有下面的CloudFormation堆栈。2个lambda(问候和Auth),API网关配置为使用Auth lambda进行授权。 我的lambdas的代码如下: 我尝试在GET请求的头中发送此输入。响应为“未经授权”,没有来自Auth lambda CloudWatch日志中的任何日志。 发生什么事了?

  • 我的(非常简单的)代码看起来是这样的: 我将构建好的jar上传到Lambda,并通过创建一个测试事件在AWS控制台中进行测试。它返回正确的响应,正如预期的那样。 但是,我希望API网关调用这个Lambda。我既使用了Lambda代理集成,也定义了自己的主体映射模板。我似乎无法使它工作,我一直得到: 我确定这是一件很简单的事情,我只是错过了一些东西...

  • 我创建了一些Lambda函数,并使用SAM进行了部署。部署是成功的,但当试图到达endpoint时,我总是获得 即使我使用头发送正确的承载令牌。然后,如果我去Authorizer并运行测试,它会很好地通过并在CloudWatch中生成日志,但是当我从前端应用程序或REST客户端应用程序运行到endpoint的请求时,我会得到未经授权的消息,并且检查CloudWatch,就不会执行Authorize

  • 我有一个运行lambda函数的API网关资源。我正在使用从我的API网关生成的AWS SDK调用API网关资源。 下面是我的客户端的stacktrace中似乎相关的部分: 现在查看AWS控制台,在我的Api网关仪表板中,我看到请求进入并导致“AWS/APIGateway5xxError”。然而,有0日志(我可以找到)。我的lambda函数似乎没有被调用,也没有显示lambda日志。 编辑3:再次更

  • 我有一个这样的设置: 浏览器->API网关->lambda:87 ms 如何快速调用Lambda函数?