【问题标题】:How to publish to a particular Mobile push notification endpoint from Lambda?如何从 Lambda 发布到特定的移动推送通知端点?
【发布时间】:2021-02-24 05:09:33
【问题描述】:

我在 AWS 中使用 FCM 配置了 SNS 移动推送通知服务。我可以通过发布消息从控制台向特定端点发送推送通知。

但我想从 Lambda 函数向特定端点发布消息。我写了一个 Lambda 并提供了必要的功能。但是当我尝试运行 lambda 时,没有抛出错误,也没有推送通知操作。

这是我的代码,

var AWS = require('aws-sdk');
var sns = new AWS.SNS();


exports.handler = async (event) => {

var params = {
    TargetArn:'arn:aws:sns:eu-central-1:<my_user_id>:app/GCM/<my_sns_projectname>/<device-token>',
    Message:'Success!!! ',
    Subject: 'TestSNS'
};

await sns.publish(params , (err,data)=>{
    if (err) {
        console.log("Error sending a message " + err);
    } else {
        console.log("Sent message: " + data.MessageId);

    }
})
};

我是初学者,请帮忙:)

【问题讨论】:

  • 可能是权限不足的问题。也许这对你有帮助:stackoverflow.com/a/64670151/360674
  • 嗨@Christian,目前我正在运行具有 SNS 完全访问权限的 lambda。

标签: amazon-web-services aws-lambda push-notification amazon-sns


【解决方案1】:

瞧!!这对我有用!

var AWS = require('aws-sdk');
var sns = new AWS.SNS();


const params = {
    TargetArn:'arn:aws:sns:eu-central-1:<my_user_id>:app/GCM/<my_sns_projectname>/<device-token>',
    Message:JSON.stringify('Success!!! '),
    Subject: 'TestSNS'
};

exports.handler = async (event, context, callback) => {
    const publishPromise = sns.publish(params).promise();
    await publishPromise.then((response) => { 
        console.log("SENT")
        callback(null, "Message published.");
    }, (err) => {
      console.log("We had an error");
      console.log(err);
      callback("Message wasn’t able to publish.");
    });
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    • 2016-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多