0

からトピックに公開する際、このトピックに公開するための私が持っているコード(私はセキュリティ上の理由のためのターゲットとトピック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を呼び出しているのに、なぜこれを取得していますか?

+0

ラムダコードは 'exports.handler'関数呼び出しでラップされていますか? – ataylor

+0

このコードは実際には関数の内部にあり、exports.handlerの呼び出しの中で呼び出します。 – iram

+0

AWS.configを必ず呼び出してください。アップデート({region: 'us-east-1'}); after var AWS = require( "aws-sdk");また、重複する行がないことを確認してください "var AWS = require(" aws-sdk ");" – bpavlov

答えて

0

IRAM、

私はあなたの正確なコードを取ると、ラムダのNode.js 4.3機能に貼り付けると、ラムダコンソールからテストを実行する場合、これが結果です:

ERROR:InvalidParameter:無効なパラメータ:TopicArn理由:TopicArnとTargetArnの両方が指定されています。

これは、TopicArnまたはTargetArnのいずれかをコメントアウトするか、着信ペイロードにターゲットエンドポイントまたはトピックエンドポイントであるArnが含まれているかどうかを判断するロジックを設定する必要があることを意味します。

Lambda関数からCloudWatchにログを公開または送信する権限を持っている場合でも、コンソールからのテストを実行している場合でも、SambaまたはCWログに対するLambdaの実行ロールには依然として問題が発生する可能性があります。に何が起こっているのかを記録する。

幸運。

関連する問題