📘 Power Automate × AWS(S3・Lambda)連携

設計の注意点まとめ

① 非同期処理の理解(最重要)

■ ポイント

  • 各処理は 独立・並列で動作する
  • 処理順は保証されない

■ 具体例

  • ファイル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導入
  • バッチ処理化
  • スロットリング

🎯 まとめ(講義用一言)

👉 この構成の本質

「イベント駆動 × 非同期 × 分散処理」

⚠️ 設計の本質

👉 一番重要なのはこれです

順番・即時性・一貫性は保証されない

🎯 現場での正解

  • 順番に依存しない設計
  • 再処理できる設計
  • 状態が見える設計

🔥 講義での締め

👉 この一言で締まります

「非同期は速いが、設計しないと壊れる」

コメント

タイトルとURLをコピーしました