AWS SNS发布404错误

时间:2017-01-19 03:22:48

标签: node.js amazon-web-services publish aws-lambda amazon-sns

我有一个lambda函数,我正在尝试向SNS主题发布消息:

以下是代码:

var params = {
    Message: origmessage,
    Subject: "Retrying posting URL",
    TopicArn: "arn:aws:sns:us-west-2:<acctid>:SampleTopic"
};
sns.publish(params, function(err, data) {
    if (err) {
        console.log("SNS publish error")
        console.log(err, err.stack)
        console.log(data, data)
        console.log("RETRY PARAMS:" + params);
        context.fail(err);
    }
});

SNS发布错误很神秘,因为我无法找到根本原因。感谢有人可以帮我展示调试方法。

这是错误:

2017-01-19T00:41:13.947Z d440064d-dddf-11e6-abad-8de6d2739d36 {
  [404: null]
  message: null,
  code: 404,
  time: Thu Jan 19 2017 00:41:13 GMT+0000 (UTC),
  requestId: '0ENTKJ09RT82VE0SFEUJKT75NVVV4KQNSO5AEMVJF66Q9ASUAAJG',
  statusCode: 404,
  retryable: false,
  retryDelay: 26.97333029936999
}
'404: null
at Request.extractError (/var/task/node_modules/aws-sdk/lib/protocol/query.js:45:29)
at Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
at Request.emit (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/var/task/node_modules/aws-sdk/lib/request.js:668:14)
at Request.transition (/var/task/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/var/task/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /var/task/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:670:12)
at Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:115:18)'

2 个答案:

答案 0 :(得分:1)

根据您的意见,当您使用AWS.config.update时,它会影响所有服务。

通过将endpoint参数设置为dynamodb端点,您将为所有服务设置该端点,包括SNS。

这是一个令人讨厌的例子,它说明为dynamodb指定endpoint

http://docs.aws.amazon.com/amazondynamodb/latest/gettingstartedguide/GettingStarted.NodeJs.Summary.html

相反,应该从AWS.config.update中取出端点,并以某种方式在每个服务的构造函数中指定。

答案 1 :(得分:0)

马特 - 就是这样。 Dynamodb配置是导致此问题的原因。感谢您的所有帮助。 感谢