0

404エラーを公開AWS SNSは私が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はエラーを発行し、私はできないのですと不可解です根本原因を見つける。誰かがこれをデバッグする方法を示す手助けをすることができればと感謝します。あなたはAWS.config.updateを使用するとき、それはすべてのサービスに影響を与え、あなたのコメントを1として

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)' 
+0

メッセージは暗号ですが、本当にあなたには404があることが伝えられています。関数に公開する権限がありますか? –

+0

はい。トピックが存在し、関数にパブリッシュする権限があります。私は公開することができる同様の機能を持っています。メッセージはnullなので、何を作るのか分からない。 –

答えて

1

:ここ

はエラーです。

dynamodbエンドポイントにendpointパラメータを設定すると、SNSを含むすべてのサービスのエンドポイントが設定されます。

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

は、その代わりに、エンドポイントがAWS.config.updateから取り出し、何とか各サービスのコンストラクタで指定する必要があります。

これは、DynamoDBのためendpointを指定すると言う問題の一例です。

+0

はい。 // AWSコンフィグ var AWS = require( "aws-sdk"); AWS.config.update({ 地域: "us-west-2"、 エンドポイント: "https://dynamodb.us-west-2.amazonaws.com" }); var docClient = new AWS.DynamoDB.DocumentClient(); var sns = new AWS.SNS({apiVersion: '2010-03-31'}); –

+1

'update'への' endpoint'パラメータと何か関係があるのだろうかと思います。それを削除しようとするとどうなりますか? –

+0

あなたのコメントに基づいて私の回答を更新しました。 –

0

マット - それでした。 Dynamodbの設定がこの問題を引き起こしていました。すべてのあなたの助けを感謝します。 ありがとう

関連する問題