在 AWS lambda 函数中调用 Square createPayment 超时

Calls to Square createPayment timing out in AWS lambda function

我正在创建这样一个 Square Client 对象:

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,则该函数只有在配置了以下内容时才能访问 Internet:

  • Lambda 函数连接到 私有子网
  • NAT 网关或 NAT 实例 运行 在同一 VPC
  • public 子网
  • 私有子网上的路由 Table 将 Internet 绑定的流量定向到 NAT

如果 Lambda 函数不需要访问 VPC 中的任何资源,请不要将函数附加到 VPC。这将自动授予对 Internet 的直接访问权限。

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