設計の注意点まとめ
① 非同期処理の理解(最重要)
■ ポイント
- 各処理は 独立・並列で動作する
- 処理順は保証されない
■ 具体例
- ファイルA → 先に投入
- ファイルB → 後に投入
→ Bの結果が先に通知されることがある
■ 注意点
👉 「投入順=処理順」と考えない
② 即時通知の落とし穴
■ 問題
- ファイルごとに即通知すると
👉 Teams がスパム状態になる
■ 対策
- エラーのみ通知
- まとめ通知(バッチ)
- スレッド返信で集約
③ 同時実行(並列処理)の制御
■ デフォルト動作
Power Automate は
👉 複数ファイルを同時処理する
■ リスク
- 通知順がバラバラ
- API負荷増大
- Lambda同時実行増加
■ 対策
- 同時実行数制限(Concurrency Control)
- キュー方式(SQSなど)
④ 非同期連携の結果取得
■ 問題
- HTTPレスポンスは「途中結果」
- 最終結果は別処理(S3→Lambda)
■ 対策パターン
| 方法 | 特徴 |
|---|---|
| ポーリング(今回) | シンプル・短時間向け |
| 結果ストア参照 | 安定・実務向け |
| 同期API化 | 単純・負荷高 |
⑤ タイムアウト設計
■ 問題
- Lambdaの処理時間
- S3イベント遅延
👉 結果がすぐ出ないことがある
■ 対策
- timeoutを設ける
- 再確認フローを作る
- 「保留状態」を許容する
⑥ エラー処理の設計
■ 必須項目
- エラー内容の保存(.errors.txt)
- エラー通知
- 再処理手段
■ よくあるNG
❌ エラー内容がログだけ
❌ 通知だけで再実行できない
⑦ 冪等性(重要):べきとうせい
■ 問題
同じファイルが複数回処理される
■ 対策:「再実行しても壊れない設計」
- ファイル名で一意管理
- 処理済フラグ
- 重複チェック
⑧ ファイル管理設計
■ 推奨構成
incoming/
processed/
error/
■ 注意点
- ファイルは移動(コピー+削除)
- 上書き禁止
- 日付フォルダ分割も検討
⑨ セキュリティ
■ 注意点
- S3バケット公開禁止
- IAM最小権限
- API Gateway制御(認証・IP制限)
⑩ 可観測性(運用で超重要)
■ 必須
- CloudWatchログ
- エラー出力
- 処理件数ログ
■ あると良い
- 処理時間
- 成功/失敗件数
- 通知履歴
⑪ 通知設計(実務で差が出る)
■ NG
- 全件通知
- 無加工メッセージ
■ 推奨
- エラー優先通知
- ファイル名明示
- 状態を一目で分かる表現
例:
✅ SUCCESS
❌ ERROR
⏳ TIMEOUT
⑫ スケーラビリティ
■ 問題
- ファイル数増加
- Lambda同時実行増加
■ 対策
- SQS導入
- バッチ処理化
- スロットリング
🎯 まとめ(講義用一言)
👉 この構成の本質
「イベント駆動 × 非同期 × 分散処理」
⚠️ 設計の本質
👉 一番重要なのはこれです
順番・即時性・一貫性は保証されない
🎯 現場での正解
- 順番に依存しない設計
- 再処理できる設計
- 状態が見える設計
🔥 講義での締め
👉 この一言で締まります
「非同期は速いが、設計しないと壊れる」

コメント