自動車整備会社の車検予約の変更の取りまとめ
12の整備工場を持つ自動車整備会社が、車検予約の日時の変更や取り消しを1か所に集め、部品の取り寄せの見直しに回す業務を支えます。予約管理アプリが送るイベントをEventBridgeのルールが自社のアカウントの分だけ選び、SQSキューに入れます。キューから取り出す側の処理はこの構成に含まれていません。業務の想定はIceShoreが用意した架空の事例です(実在の会社・システムではありません)。 出典: https://github.com/aws-samples/serverless-patterns/tree/a6cb0af285a2c326cbc35acd3ee5dc0c659db75d (著作権表示: Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved./ライセンス: MIT No Attribution(MIT-0))。元のファイルを変更せずに掲載しています。
アクター
ユースケース
この構成図は、12の整備工場を持つ架空の自動車整備会社で、車検予約の変更を取りまとめる業務を支えます。予約の日時の変更や取り消しを1か所に集め、部品の取り寄せの見直しに回します。予約管理アプリが送るイベントは、EventBridgeルールが選び分けます。選ぶのは、自社のアカウントから送られ、sourceがdemo.sqsのものだけです。選んだイベントは、SQSキューに入れます。業務の想定はIceShoreが用意した架空の事例です。実在の会社・システムではありません。もとにしたのは、aws-samples/serverless-patterns(ライセンスMIT-0)のeventbridge-sqs/template.yamlです。
予約の変更がキューに集まるまで
構成図に登場する要素は3つです。1つ目は、車検の予約管理アプリです。このアプリはPutEventsを呼び出し、sourceがdemo.sqsのカスタムイベントをデフォルトイベントバスへ送ります。このアプリはテンプレートに定義されておらず、イベントパターンから推定して置いた外部システムです。2つ目は、イベントを選び出すEventBridgeルール(EventRule)です。3つ目はSQSキュー(MySqsQueue)で、予約の変更をメッセージとして保持します。データは「予約管理アプリ→EventBridgeルール→SQSキュー」の順に流れます。キューポリシーは、events.amazonaws.comに対してSQS:SendMessageを許可しています。なお、キューから取り出して部品の取り寄せを見直す側の処理は、この構成に含まれていません。
ユースケース「車検予約の変更の取りまとめ」の動き
このユースケースの始まりは、お客様がWebや電話で車検の予約日を変えたり取り消したりしたときです。このとき、予約管理アプリがEventBridgeのPutEvents APIでdemo.sqsイベントを送ります。EventRuleのイベントパターンが一致とみなすのは、accountが自アカウントで、かつsourceがdemo.sqsのイベントです。一致したイベントは、ルールのターゲットとしてSQSキューへSendMessageされます。キューは、後続の処理が取り出すまで、変更の内容をメッセージとして保持します。テンプレートはキューのプロパティを何も指定していないため、保持期間などはSQSの既定のままです。変更は1日に約300件で、昼休みと夕方に多くなる想定です。扱う情報は「予約の変更内容」(予約番号・工場・変更前後の日時・車種・必要な部品の区分)です。お客様の氏名や連絡先は含めない想定です。
元のIaC
元になったIaCは、aws-samples/serverless-patterns(コミットa6cb0af285a2c326cbc35acd3ee5dc0c659db75d、ライセンスMIT-0)のeventbridge-sqs/template.yamlです。TransformにAWS::Serverless-2016-10-31を指定したCloudFormation(SAM)テンプレートです。主なリソースは次の3つです。 ・AWS::SQS::Queue(MySqsQueue)。 ・AWS::Events::Rule(EventRule。イベントパターンとターゲットの指定を含む)。 ・AWS::SQS::QueuePolicy(EventBridgeToToSqsPolicy)。 Outputsでは、キュー名・ARN・URLを出力しています。テンプレートには、車検や予約に関する設定はありません。業務の内容は、IceShoreが足した想定です。
この構成図の作り方
この構成図は、公開リポジトリにあるIaCをもとに作成しました。AIがテンプレートを読み取り、IceShoreのMCP(Model Context Protocol)サーバーを通して構成図の記述(ADL)を書きました。その記述をIceShoreが描画しています。テンプレートに無い予約管理アプリは、イベントパターンから送る側があると推定し、テンプレートの外にある外部システムとして記述に加えました。自動車整備会社という業務の想定と件数は、IceShoreが用意した架空の事例です。
よくある質問
CloudFormation(SAM)テンプレートから構成図を自動生成できますか?
はい、できます。この構成図は、eventbridge-sqs/template.yamlをもとに、AIがIceShoreのMCPサーバーを通して構成図の記述を書いたものです。その記述をIceShoreが描画しました。テンプレートに無い要素(今回は予約管理アプリ)は、テンプレートの外にあることを記述に書いて加えています。
キューから予約の変更を取り出す処理は構成図に含まれていますか?
含まれていません。元のテンプレートに取り出し側のリソースが定義されていないため、構成図はキューへの投入までを表しています。部品の取り寄せを見直す処理が後でまとめて取り出す、というのはこの事例の想定です。
どのイベントがキューに送られますか?
EventRuleのイベントパターンに一致するイベントだけです。具体的には、accountがテンプレートをデプロイしたアカウント自身で、かつsourceがdemo.sqsのイベントが送られます。
出典: aws-samples/serverless-patterns(MIT-0)
IaC を読み込むと、あなたのシステムでもこのような構成図を作れます。 IceShore とは