【发布时间】:2017-08-15 05:57:26
【问题描述】:
以处理来自 CloudWatch 计时器的 ping 的方式包装函数的最佳方法是什么?例如下面的 lambda 函数:
export const fn = (event, context, callback) => {
const { year, make, model, } = event.queryStringParameters
return otherFn({ year, make, model, })
.then(res => response(callback, res))
.catch(err => console.log(err))
}
如果我 ping 函数,它会出错,因为 CloudWatch 请求上没有 queryStringParameters。从技术上讲,这仍然可以使 Lambda 函数保持温暖(这是我的目标),但我不希望出现不必要的冗长错误列表。
我注意到 CloudWatch 允许您包含(大概)传递给 Lambda 函数的输入:
包装上面的函数以便它可以接受 ping 的最聪明的方法是什么?理想情况下应该是这样的:
export const fn = (event, context, callback) => {
if (event.ping) return ping(callback) // the ping function is an import to stay DRY
const { year, make, model, } = event.queryStringParameters
return otherFn({ year, make, model, })
.then(res => response(callback, res))
.catch(err => console.log(err))
}
我将传递一些允许我更改事件的 JSON,例如:
{ "ping": true }
我已经阅读了有关输入的文档,但我完全不清楚各种输入类型的含义或如何使用它们...
【问题讨论】:
标签: amazon-web-services lambda aws-lambda amazon-cloudwatch serverless-framework