在 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 函数的超时,以防外部服务只需要更多时间。
我正在创建这样一个 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 函数的超时,以防外部服务只需要更多时间。