プロジェクトの目的
このサンプルでは、ドキュメントをアップロードし、非同期で処理して、その内容を検索可能にする仕組みを検討します。
アーキテクチャ
静的フロントエンドがAPIに署名付きアップロードURLを要求し、ブラウザーからS3へ直接アップロードします。イベント駆動のキューがアップロード処理とワーカーを分離し、ワーカーがテキストを抽出してOpenSearchへインデックスします。
この構成を選ぶ理由
- キューによってワーカーは自分の処理能力に合わせて実行できます。
- DLQにより、繰り返し失敗したメッセージを調査できます。
- コンポーネントごとにIAMロールを分け、アクセス権限を制限します。
検証する内容
ドキュメントをアップロードし、処理状況を追跡し、既知のフレーズを検索します。イベントが重複した場合のワーカーの動作もテストします。このサンプルを実際の検証結果と構成図に置き換えてください。
処理の流れ(Mermaidサンプル)
flowchart LR
A[ブラウザー] --> B[API Gateway]
B --> C[S3への署名付きアップロード]
C --> D[S3イベント]
D --> E[SQSキュー]
E --> F[Pythonワーカー]
F --> G[OpenSearch]
E -. 再試行後も失敗 .-> H[DLQ]