ヤマムギ

growing hard days.

*

webフォームからの問い合わせをRedmineに自動登録して対応状況を管理する(API Gateway + Lambda)

   

先日、検証目的で作成したRedmineの冗長化の一機能として、webフォームから問い合わせがあった場合に、Redmineのチケットを自動登録して対応状況を管理出来るようにしてみました。

  1. webフォームはS3で静的ホスティングを使っています。
  2. CloudFrontでS3をオリジンにしてwebフォームを配信しています。
  3. ACMでSSL証明書を無料で取得しています。
  4. webフォームから送信された情報はAmazon API Gateway、AWS Lambdaを経由してDynamoDBテーブルへ格納されます。
  5. DynamoDBテーブルに格納されたデータはDynamoDB StreamからLambdaが実行されてSQSへキューを送信します。
  6. SQSからキューを受信したLambdaがRedmine APIをコールしてチケットを作成します。

※ DynamoDBを介しているのは、Redmineへ送る必要のないデータも含めて記録しておくためです。
※ SQSを介しているのはRedmine APIがコール出来ない場合に再処理を容易にするためと、再処理回数をSQSのデッドレターキュー機能で制限したいためです。
※ 4で6の処理をするAWS Lambdaを実行してもいいですが、Redmine APIがコール出来ない場合の再処理などを考慮する必要があると思います。

Lambdaは全部Python3.6です。

webフォームからのポストを受けてDynamoDBへ送信するLambda

  • DynamoDBテーブルではsubmit_datetimeをパーティションキーに、フォームから送信されるメールアドレスをソートキーにしています。

DynamoDB Streamから実行されてSQSへキューを送信するLambda

  • sqsのurlはLambdaの環境変数に入力しておきます。

SQSからキューを受信してRedmine APIをコールしてチケットを作成するLambda

  • sqsのurlはLambdaの環境変数に入力しておきます。
  • RedmineのurlはLambdaの環境変数に入力しておきます。
  • redmineのAPIキーは登録するプロジェクトにチケットを作成する権限を持っているユーザーのAPIキーを使用します。
  • redmineのAPIキーは環境変数に入力してKMSで暗号化します。

最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , , , ,

ad

ad

  関連記事

AWS Systems Manager Run CommandでEC2 Linuxのユーザーとカレントディレクトリを確認

AWS Systems Manager Run CommandからEC2 Lin …

EC2 プレイスメントグループを試してみました

やったことないのでやってみたやつです。 プレイスメントグループの作成 まず、EC …

EC2 VyOSで/etc/resolv.confを設定しました

EC2でVyOSを起動してSSHで接続して確認していたところ、どうもVyOSから …

Elastic BeanstalkでflaskアプリケーションデプロイのチュートリアルをCloud9で

Elastic Beanstalk への flask アプリケーションのデプロイ …

Amazon Connectから問い合わせ追跡レコード(CTR)をエクスポート

Amazon Connectから発信した電話に出たのか、出なかったのかを確認した …

re:Invent 徒歩記(シアトルも)

このブログは、AWS re:invent 2018 Advent Calenda …

「JAWS-UG in AWS Cloud Roadshow 2017 大阪」で運営をしました

AWS Cloud Roadshow 2017 大阪のナイトイベントで、「JAW …

東京リージョンでAWS Control Towerランディングゾーンをセットアップする

AWS Control Towerの最初の画面で[ランディングゾーンの設定]を押 …

Amazon Q Developer for CLIでAWS Diagram MCP Serverを使ってAWSアイコンを使った図を書いてもらいました

MacにインストールしているAmazon Q Developer for CLI …

百聞は一見にしかず!AWSセルフペースラボの無料ラボ!

※2019年5月12日現在に試してみた記録です。 AWSセルフペースラボとは A …