1923

都内と業界の隅っこで生活しているエンジニアのノート

Azure と ASP.NET でメールフォームを作りました

PRです。最近は Go 中心のお仕事でしたが、今年は .NET に戻りつつありますのでメールフォーム的なものを .NET で作りました。 仕組みは簡単で以下の通りです。

  1. API でフォームの内容を受ける(Azure Functions)
  2. 受信内容を登録(Azure Cosmos DB)
  3. メール送信などの通知処理を実行(Azure Cosmos DB の Change Feed でトリガーされる Azure Functions)

入力項目、バリデーションや通知設定は SQL Database や Azure Table Storage に入れてあります。 また、API Management 使ったり、サービスエンドポイントで各サービスを接続したりして、構成的には以下のような感じで作りました。

構成図

  1. API Managementからマネージド ID で接続
  2. Cosmos DBのトリガーを使用
  3. サービスエンドポイントを使用して接続

Cosmos DB Change Feed や Azure Functions については、以下などを参考にさせていただきました。

blog.beachside.dev

blog.shibayan.jp

k-miyake.github.io

そのほか、

  • ドキュメントサイトを Blob と CDN
  • 管理サイトを Web Apps と Azure B2C
  • ソース管理やCI/CDは Azure DevOps

通知などは Teams と連携させて、工数やコストをあまりお金をかけない仕組みで動いています。

出来たのはこんな感じで普通のフォームです。

SWF ドキュメント に詳細は記載していますが、試しにフォーム作ってみたい方がいましたら、お声がけください。宣伝でした。