AWS SNSからのリクエストを検証するaws-js-sns-message-validatorをPromise化する

AWS SNSからのリクエストを検証するaws-js-sns-message-validatorをPromise化する

SNSのメッセージの署名検証を行うモジュールがAWS側で用意されているようです。以下URLになります。

https://github.com/aws/aws-js-sns-message-validator

インストールします。

Promise化する

このsns-validatorはコールバックスタイルなのでutil.promisifyでpromise化します。

sns-validatorのindex.jsファイルを見ればわかりますが、bindメソッドでthisを固定化する必要があります。

const MessageValidator = require('sns-validator')
const { promisify } = require('util')
const aws = require('aws-sdk')
const sns = new aws.SNS({
apiVersion: '2010-03-31',
region: 'ap-northeast-1'
})
exports.handler = async (event) => {
const message = JSON.parse(event.body) // 署名の検証
const validator = new MessageValidator()
const validateMassage = await promisify(validator.validate.bind(validator))(message) // bind(インスタンス変数)とする必要がある
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
}
return response
}

view raw
index.js
hosted with ❤ by GitHub

12行目で.bind(インスタンス変数)として、promisifyでプロミス化できます。

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA