ヤマムギ

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

  関連記事

VPCピア接続した先のVPCインターフェイスエンドポイントを使用する

VPC1とVPC2でピア接続しています。 VPC2にはKMSのインターフェイスエ …

新しいVPCウィザード(2022年)がすんごく便利になってました

VPCウィザードがすんごく便利になってました。 ウィザードの左ペインで設定を選択 …

JAWS-UG関西IoT専門支部 ✕ SORACOM UG 関西「Wio LTE + 絶対圧センサーで遊ぼう!」ワークショップにいってきた

JAWS-UG関西IoT専門支部 ✕ SORACOM UG 関西「Wio LTE …

CloudFrontディストリビューションを別アカウントへ移動する

すでにCNAMEを設定しているCloudFrontディストリビューションを、別ア …

CloudFormation Lambda-backedカスタムリソースチュートリアルをやりました

チュートリアル: Amazon マシンイメージ ID を参照するの手順に従ってや …

T2.microからT3.nanoに変更(メモリエラーも対応)

このブログのEC2インスタンスをT2.micro 1インスタンスからT3.nan …

AWS Snowファミリーのジョブ作成画面を確認

使わないのですが、画面を見ておきたかったので確認しました。 Snowファミリージ …

VPCピア接続ではピア先VPCのセキュリティグループIDを指定できる

タイトルどおりです。 できることは知ってたのですが、試したことがなかったので、確 …

AWS Lambda Layersのアーカイブファイルをダウンロードする

Cloud9にLambda Layersをダウンロードしたかったので検索してみた …

AWS SSOのIDソースをAD Connectorにしました

オンプレミス想定のActive DirectoryにVPN接続して、AD Con …