Amazon web services 调用AWS lambda函数中的Square createPayment超时

Amazon web services 调用AWS lambda函数中的Square createPayment超时,amazon-web-services,aws-lambda,payment,sandbox,square,Amazon Web Services,Aws Lambda,Payment,Sandbox,Square,我正在创建一个方形客户端对象,如下所示: const squareClient = new Client({ environment: Environment.Sandbox, accessToken: "The_correct_sandbox_token_goes_here", }); const paymentsApi = squareClient.paymentsApi; 从lambda函数中调用createPayment方法,函数体如下所示: {

我正在创建一个方形客户端对象,如下所示:

const squareClient = new Client({
  environment: Environment.Sandbox,
  accessToken:
    "The_correct_sandbox_token_goes_here",
});
const paymentsApi = squareClient.paymentsApi;
从lambda函数中调用createPayment方法,函数体如下所示:

{
    "sourceId": "cnon:CBASEHY1uZmmlYRYagaqS7yd9Zo",
    "amountMoney": {
        "amount": "12500",
        "currency": "USD"
    },
    "locationId": "Location_ID_here",
    "idempotencyKey": "6a36e49c-914d-4934-bc34-c183ba0a08c5"
}

这在我的本地机器上运行良好(使用无服务器脱机),但是当部署到AWS时,对createPayment的调用会在六秒钟后超时。从lambda函数调用createPayment是否需要执行其他操作?

您遇到的超时可能是由于该函数连接到VPC

如果将AWS Lambda功能配置为使用VPC,则该功能仅在配置了以下各项后才能访问互联网:

  • Lambda函数连接到一个专用子网
  • NAT网关或NAT实例正在同一VPC的公共子网中运行
  • 专用子网上的路由表将绑定到Internet的流量定向到NAT
如果Lambda功能不需要访问专有网络中的任何资源,请不要将该功能连接到专有网络。这将自动授予直接访问Internet的权限


或者,您可以尝试增加Lambda函数的超时时间,以防外部服务需要更多时间。

Lambda函数的超时设置是什么?另外,Lambda函数是否配置为使用VPC?谢谢John。如果您愿意将此评论作为答案发布,我会将其标记为正确。虽然我还没有机会建立一个新的测试,但从lambda的VPC路由几乎肯定是一个问题。