からトピックに公開する際、このトピックに公開するための私が持っているコード(私はセキュリティ上の理由のためのターゲットとトピックARNを変更している)であるアマゾンSNSプッシュ通知を受信していませんifまたはelseブロックからのログステートメントが表示されず、プッシュ通知がモバイルアプリに届かないということです。私はこれについてAWS JavaScript SDK Documentationと無数のスタックオーバーフローの両方について相談してきました。そして、ラムダ関数にトピックにパブリッシュする権限を与えました。は、Amazonラムダ
--- UPDATE ----- 私は自分のコードビットに変更されたと今では次のようになります。
var AWS = require("aws-sdk");
AWS.config.update({region:'us-east-1'});
var topicarn = 'arn:aws:s-s:us-east-1:927579412028:alexapushdemo';
var targetarn = 'arn:aws:sns:us-east-1:927579412028:endpoint/GCM/automation.home.visa.com.homeautomation/3af761b2-1955-34d8-b66a-85e232e0aa0e';
var payload = {
default: "test",
GCM: {
data: {
message: "test"
}
}
};
payload.GCM = JSON.stringify(payload.GCM);
payload = JSON.stringify(payload);
var sns = new AWS.SNS();
console.log('start of sns function')
sns.publish({
TargetArn: targetarn,
Message: payload,
MessageStructure: 'json'
}, function(err, data) {
if (err) {
console.log(err.stack);
// Notify Lambda that we are finished, but with errors
context.done(err, 'sns function finished with errors!');
return;
}
console.log('push sent');
console.log(data);
// Notify Lambda that we are finished
context.done(null, 'sns function finished!');
});
console.log('end of sns functions');
私が手にエラーがある: ConfigError:コンフィグ領域がありません。\\ N Request.VALIDATE_REGIONで
(/node_modules/aws-sdk/lib/event_listeners.js:81:45)\\n Request.callListenersで
(/node_modules/aws-sdk/lib/sequential_executor.js:105: 20)\\ n
at callNextListener(/node_modules/aws-sdk/lib/sequential_executor.js:95:12)\\ nフィニッシュで/node_modules/aws-sdk/lib/event_listeners.js:75:9\\n
で10 (/node_modules/aws-sdk/lib/config.js:228:7)\\n
で/node_modules/aws-sdk/lib/config.js:268:9\\n
at resolveNext(/node_modules/aws-sdk/lib/credentials/credential_provider_chain.js:84:9)\\n
at/node_modules/AWS-SDK/libに/資格情報/ credential_provider_chain.js:97:11 \\ nは
/node_modules/aws-sdk/lib/credentials.js:123:23\\n
で/ node_modules/aws-でsdk/lib/credentials/ec2_metadata_credentials.js:66:7 \\ "\"、\ "ip \":\ "127.0.0.1 \"} "、
AWS.config.updateを呼び出しているのに、なぜこれを取得していますか?
ラムダコードは 'exports.handler'関数呼び出しでラップされていますか? – ataylor
このコードは実際には関数の内部にあり、exports.handlerの呼び出しの中で呼び出します。 – iram
AWS.configを必ず呼び出してください。アップデート({region: 'us-east-1'}); after var AWS = require( "aws-sdk");また、重複する行がないことを確認してください "var AWS = require(" aws-sdk ");" – bpavlov