2017-04-25 12 views
12

AWSからノードSDK経由でSMSを送信しています。 SMSはうまくいっていて、私は配信情報を取得しようとしています。どうやらそれほど簡単ではないし、Cloudwatchにログを送信してCloudWatchを解析してMessageIdを検索する配信情報を取得するようにSNSを設定する必要があります:https://stackoverflow.com/a/40327061/2054629AWS SMSの配信ステータスの取得

SNS WebインターフェイスからSMSを送信すると、しかし、ノードSDKを介してそれらを送信したときは表示されません。ノードから送信する前に設定する方法に関する情報を取得できませんでした。現在、私が持っている

const sendSMS = async (message, number) => { 
    // send the SMS 
    // wait to get delivery info 
    // resolve with delivery info, or reject if failed 
} 

理想的には、私のような何かを達成したいだけAWSにSMS要求を送信し、

{ 
    ResponseMetadata: { RequestId: '7e0999a3-xxxx-xxxx-xxxx-xxxxxxxxxxxx' }, 
    MessageId: 'f7f21871-xxxx-xxxx-xxxx-xxxxxxxxxxxx', 
} 
ようなもので解決
import AWS from 'aws-sdk'; 

AWS.config.update({ 
    accessKeyId: accessKey, 
    secretAccessKey: secretKey, 
    region: 'us-east-1', 
}); 

const sns = new AWS.SNS(); 

const sendSMS = async (message, number) => { 
    return await new Promise((resolve, reject) => { 
    sns.publish({ 
     Message: message, 
     MessageStructure: 'string', 
     PhoneNumber: number, 
    }, (err, res) => { 
     if (err) { return reject(err); } 
     resolve(res); 
    }); 
    }); 
} 

ログを取得するためにSNSアプリケーションをセットアップする必要があるかどうかはわかりません。物事を単純に保つ

答えて

1

あなたのコードは、import文(ES5/6サポートの不足)を変更することによってnodejs v6でうまく動作するようです。クラウドウォッチへのロギングを有効にした後、すべてのSMS(Webインターフェイスとこのコードを通じて)は、CloudWatchログにログの蒸気を作成します。 AWS SDKを再インストールするか、SDKを正しく動作させるためにES5/6を使わないでください。 2番目の質問、メッセージが配信されなかった場合、エラーになるだろうについては

{ ResponseMetadata: { RequestId: 'e31feda6-669c-5b13-XXX-bc25b07877b5' }, 
    MessageId: '53555115-6acb-5684-XXXX-0096bc2f6a22' } 
+0

私はES6が問題ではないと思います。ノードSDKからSMSに対応するCloudWatchログを取得するにはどうすればよいですか? – Guig

0

(err, res) => { 
     if (err) { return reject(err); } 
     resolve(res); 
    }); 

メッセージが正常に送信された場合、あなたのような応答を取得既にこれを行っている可能性がありますが、SMS配信用のクラウドウォッチログを構成するには、SMSのプリファレンスを構成する必要があります。そのためには、クラウドウォッチログにアクセスできるようにするためにIAMロールを作成する必要があります。 AWSコンソールから操作するのは非常に簡単です。手順は次のとおりですhttp://docs.aws.amazon.com/sns/latest/dg/sms_preferences.html

あなたが成功した配送の割合+失敗したSMSを記録することもできます。これが完了したら、SMSを送信した方法に関係なく、クラウドウォッチログを表示する必要があります。

私はこれをコメントとして追加したいと思いますが、十分な担当者がいません。私はそれが動作しない場合は、この回答を削除します。

関連する問題