如何将值传递给 CloudWatch 中的 Lambda 函数?
How to pass values to a Lambda function in CloudWatch?
以处理来自 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 }
我已经通读了输入的文档,但我完全不清楚各种输入类型的含义或如何使用它们...
如果您 select 输入选项常量(JSON 文本),输入框应该会出现在正下方。您需要输入 json {"ping": true}
。您的函数将获得 json 作为 event
对象,您可以像您的代码一样访问 event.ping
。
如果您使用的是无服务器框架,而不是在 AWS 控制台中执行此操作,您可以为您的函数添加一个计划事件。这将是您现有的 http 事件的补充。您可以在预定事件的输入部分下添加 ping: true
参数,如下所示:
scheduledFunction:
handler: index.handler
events:
- schedule:
rate: rate(1 minute)
enabled: true
input:
ping: true
这将使用指定的时间表创建并启用 cloudwatch 日志事件,并在 event
对象中发送输入参数 ping
。
以处理来自 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 }
我已经通读了输入的文档,但我完全不清楚各种输入类型的含义或如何使用它们...
如果您 select 输入选项常量(JSON 文本),输入框应该会出现在正下方。您需要输入 json {"ping": true}
。您的函数将获得 json 作为 event
对象,您可以像您的代码一样访问 event.ping
。
如果您使用的是无服务器框架,而不是在 AWS 控制台中执行此操作,您可以为您的函数添加一个计划事件。这将是您现有的 http 事件的补充。您可以在预定事件的输入部分下添加 ping: true
参数,如下所示:
scheduledFunction:
handler: index.handler
events:
- schedule:
rate: rate(1 minute)
enabled: true
input:
ping: true
这将使用指定的时间表创建并启用 cloudwatch 日志事件,并在 event
对象中发送输入参数 ping
。