【问题标题】:Is callback required in AWS Lambda handler?AWS Lambda 处理程序中是否需要回调?
【发布时间】:2021-12-16 04:00:16
【问题描述】:

lambda 处理程序中的回调在做什么?好像是在使用sns变量,我打算修改变量。

exports.handler = function(event, context, callback) {
   console.log("AWS lambda and SNS trigger ");
   console.log(event);
   const sns = event.Records[0].Sns.Message;
   console.log(sns)
   callback(null, sns);   
};

我正在尝试将代码修改为类似的内容,但不确定我应该为回调传递什么。我还想触发另一个 lambda 并将这些新变量传递给它。

exports.handler = function(event, context, callback) {
   console.log("AWS lambda and SNS trigger ");
   console.log(event);
   const sns_NameSpace = event.Records[0].Sns.Message.Trigger.Namespace;
   const sns_ApiId = event.Records[0].Sns.Message.Trigger.Dimensions.value;
   const sns_MetricName = event.Records[0].Sns.Message.Trigger.MetricName;
   console.log(sns_ApiId + '_' + sns_MetricName)
   console.log(sns_NameSpace)   
   
   callback(null, sns); // Wondering what I should pass for the callback.
   
};

【问题讨论】:

    标签: javascript node.js aws-lambda


    【解决方案1】:

    如果您已配置 SNS -> Lambda 触发器,则无需对回调执行任何操作。 SNS 只向订阅者(在本例中为 Lambda 函数)发送一条消息,并且不等待订阅者的响应。

    “另一个 lambda”到底是什么意思?

    【讨论】:

    • 我有另一个名为 zabbixPy 的 lamdba。我想从这个 lambda 调用 zabbixPy lambda,并且在调用时我想将这些变量作为事件或其他东西传递,以便这些变量由 zabbixPy lambda 函数处理。
    • 你能不能也回答一下这里的回调有什么用?您只是说,如果我们配置了 SNS -> Lambda 触发器,则无需执行任何操作,也不需要执行任何操作
    • 好的。我了解您想要配置类似 SNS -> Trigger Lambda -> zabbixPy Lambda(接收 Trigger Lambda 变量)之类的东西。如果是这样,最简单的方法是使用来自 Trigger Lambda 的 aws-sdk 调用 zabbixPy Lambda。这允许您将所需的值作为有效负载发送到 zabbixPy Lambda。请参考以下链接了解如何使用 nodejs aws-sdk 调用另一个 Lambda 函数。 stackoverflow.com/questions/69679359/…
    • 如果您需要在Trigger Lambda中同步等待zabbixPy Lambda的响应,请在invoke函数的InvocationType参数中指定RequestResponse值。如果您需要异步调用,请指定一个事件值。如果您想了解更多关于调用函数的信息,请参考以下链接。 docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html
    • 对于 Lambda nodejs 运行时,回调用于结束函数的执行并发送响应。在 SNS -> Lambda 触发器的情况下,Lambda 函数的回调发送的响应是没有意义的,因为 SNS 向订阅者发送消息后不会等待响应。
    猜你喜欢
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 2019-08-09
    • 1970-01-01
    • 2016-08-06
    • 2021-05-20
    • 1970-01-01
    相关资源
    最近更新 更多