0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS日記⑥ (SNS)

Last updated at Posted at 2020-05-24

はじめに

今回は 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 を使う。
main.go
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の一斉送信

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?