はじめに
今回は Amazon SNS (Amazon Simple Notification Service) を利用して簡易な問い合わせページを作成します。
準備
SNSのトピックを作成し、サブスクライブに問い合わせの受け取り先(メールアドレスなど)を設定します。
[Lambda , API Gatewayの準備をします。]
(https://qiita.com/tanaka_takurou/items/3f93295de6cff060ec09)
[参考資料]
Amazon SNS とは
チュートリアル: Amazon SNS トピックを作成する
「AWS SNS」の紹介
WEBページ・API作成
GO言語のAWS Lambda関数ハンドラー aws-lambda-go を使用してHTMLやJSONを返す処理を作成します。
また、SNS を使用するため aws-sdk-go を利用します。
参考資料ではアクセスキーを指定する方法をとっていますが、今回はLambdaにポリシーを追加する方法をとります。
[参考資料]
AWS SDK for Go API Reference
AWS Lambda アクセス許可
Go+ AWS SNSを使ってSMSを送信する
AWS SDK for Go SNS コードサンプル
メッセージを送る際には Publish を使う。
func sendmessage(name string, message string, mail string) error {
svc := sns.New(session.New(), &aws.Config{
Region: aws.String("ap-northeast-1"),
})
input := &sns.PublishInput{
Message: aws.String("[Name]\n" + name + "\n\n[Mail]\n" + mail + "\n\n[Message]\n" + message),
TopicArn: aws.String(topicArn),
}
_, err := svc.Publish(input)
if err != nil {
return err
}
return nil
}
今回は、ページ表示とAPIの API Gatewayを別々に作成し、APIのメソッドはPOSTに設定しました。
作成したLambda 関数、テンプレート
終わりに
今回は問い合わせ機能のみなので難しい部分はありませんでした。
送信の上限値があるようなので、実際に運用する際は気をつけようと思います。
Amazon SNSを利用したSMSの一斉送信