-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
概要
以下のフローを実現するための技術的検討事項を整理し、実装方針と受け入れ基準を決める。
システムフロー(要件)
- 定期実行する Azure Functions (Python 3.11) が、問い合わせ内容を保管している(公開された)リソースの Web API にアクセスして問い合わせ内容を取得する。
- 取得した問い合わせ内容を Queue に格納する。
- Queue への格納をトリガーとする Azure Functions を用意し、社内の検索エンジン(Web API)に問い合わせを行い、おすすめセッションを検索する。社内検索は今回はダミー API を用意する。
- 検索結果から応答メッセージを生成する際に AOAI (Azure OpenAI) を使用する。
- 生成した応答を別の Queue に格納する。
- 応答を格納した Queue のイベントをトリガーにする Azure Functions が、社内のメール送信用 Web API(ダミー)へ POST してメール送信する。
前提・制約
- 言語: Python 3.11
- 社内検索 API と メール送信 API はダミーで実装して検証する。
- AOAI(Azure OpenAI)を利用する想定。テナントでの利用可否・割当や料金は別途確認が必要。
- セキュリティを考慮し、Azure Functions, Azure OpenAI Servciesは全て Private 化する。
- Azureリソース間の接続はManaged ID を採用する。その場合にAzure FunctionsのActionを使う方法、SDKを使用する場合のどちらが良いのか検討が必要。
- Azure FunctionsはFlex Consumptionsによるホスティングを前提とする。
検討すべき技術項目(優先順位付き)
-
Azure Functions の実行スケジュール
- TimerTrigger(定期起動)の採用。
- 導入環境: Consumption / Premium / App Service どれを想定するか(スケーラビリティ / コールドスタート / コストのトレードオフ)。
-
キュー選定
- Azure Service Bus vs Azure Storage Queue の比較(メッセージ順序、セッション、デッドレター、ロック/再試行の要否)。
- メッセージスキーマ(JSON フィールド: id, source, created_at, payload, retries など)。
-
認証とネットワーク
- 社内 API はPublic。VNet 内にあるAzure Functionsからのアクセスに問題はないか。
- 認可方式(Managed Identity / OAuth2 Client Credentials / API Key)と KeyVault によるシークレット管理。
-
AOAI 利用時の考慮点
- レイテンシ・コスト・レート制限。
- 最大トークン数やモデル選定(gpt-series 等)。
- プロンプト設計と安全性(個人情報フィルタリング)。
- 機密情報の取り扱い(送信前に匿名化/マスキングが必要か)。
-
エラーハンドリングと再試行
- キューの再試行ポリシー、DLQ(デッドレターキュー)設計。
- idempotency(重複処理対策)、リクエスト ID の扱い。
-
ロギング・監視・トレーシング
- Application Insights でのトレース、関数ごとのメトリクス、AOAI 呼び出しのサンプリング。
-
開発・テスト戦略
- ローカル実行のためのダミー Web API(検索・メール)を用意。
- 単体テスト、統合テスト(関数間のキュー挙動を含む)。
- CI/CD(GitHub Actions)でのデプロイパイプライン案。
-
デプロイと構成管理
- ARM / Bicep / Terraform の選定。
- 設定(KeyVault, App Settings, Managed Identity)をコードで管理する方針。
受け入れ基準(PoC レベル)
-
Azure 上でPrivate化した環境を構築し、以下の内容を確認する
-
Private化したAzure Functionsから外部Public Endpointへのアクセス
-
Azure Functions (Python 3.11) の Timer トリガー関数がダミー公開 API から問い合わせを取得し、Queue にメッセージを入れる。
-
Queue トリガー関数がダミー検索 API に問い合わせて検索結果を取得し、AOAI(モックまたは実 API)を使って応答文を生成し、応答 Queue に格納する。
-
応答 Queue のトリガー関数がダミーのメール送信 API に POST してメール送信を模擬できること。
-
ロギングと基本的なエラーハンドリング(再試行/DLQ)が動作すること。
-
大量データに対するLoad Testingを実行し、Flex Consumptionのスケーリング能力を確認する。
-
テスト(ユニット+簡易統合)
備考
- 本 Issue は技術的検討を目的とする。
Metadata
Metadata
Assignees
Labels
No labels