PRです。最近は Go 中心のお仕事でしたが、今年は .NET に戻りつつありますのでメールフォーム的なものを .NET で作りました。 仕組みは簡単で以下の通りです。
- API でフォームの内容を受ける(Azure Functions)
- 受信内容を登録(Azure Cosmos DB)
- メール送信などの通知処理を実行(Azure Cosmos DB の Change Feed でトリガーされる Azure Functions)
入力項目、バリデーションや通知設定は SQL Database や Azure Table Storage に入れてあります。 また、API Management 使ったり、サービスエンドポイントで各サービスを接続したりして、構成的には以下のような感じで作りました。
- API Managementからマネージド ID で接続
- Cosmos DBのトリガーを使用
- サービスエンドポイントを使用して接続
Cosmos DB Change Feed や Azure Functions については、以下などを参考にさせていただきました。
そのほか、
- ドキュメントサイトを Blob と CDN
- 管理サイトを Web Apps と Azure B2C
- ソース管理やCI/CDは Azure DevOps
通知などは Teams と連携させて、工数やコストをあまりお金をかけない仕組みで動いています。
出来たのはこんな感じで普通のフォームです。
SWF ドキュメント に詳細は記載していますが、試しにフォーム作ってみたい方がいましたら、お声がけください。宣伝でした。