AWS Lambda は「必要なときだけ動く小さなプログラム」です。サーバーを常時起動しておく必要がなく、アプリから呼ばれた瞬間にだけ実行されます。
EJEC モバイルアプリでは、打刻・ログイン・タスク取得・残業計算 などの処理をすべて Lambda が担っています。アプリが「打刻ボタン」を押すと、裏では複数の Lambda が連鎖して SAP BTP に時刻を記録しています。
| Lambda 名 | 業務的な役割 | 実行頻度 | 障害時の影響 |
|---|---|---|---|
| appsyncAuth | すべての API 通信を認証する「門番」。ログイン状態を確認する | アプリ操作のたび(高頻度) | Critical 全ユーザーがアプリを使えなくなる |
| BTPSSOLambda | 打刻データを SAP BTP(時刻管理システム)に送る中核機能 | 打刻操作のたび | Critical 全ユーザーが打刻できなくなる |
| SSORefreshToken | BTP の認証トークンが期限切れになったとき、自動で更新する | 打刻 401 エラー発生時 | Critical 打刻が認証エラーで失敗し続ける |
| BTPTokenRefresherLambda | BTP トークンが期限切れになる前に、定期的に全ユーザー分を更新(予防的) | 30 分ごと(自動) | Critical 翌日の打刻が一斉に 401 エラーになる |
| ServiceNowSSOLoginLambda | Microsoft アカウントで EJEC 社員を認証し、ログイン処理を完了させる | ログインのたび | Critical 全ユーザーがログインできなくなる |
| SSOBTPIASLambda | BTP SSO のログインコールバック処理(BTP 認証後に呼ばれる) | BTP SSO ログインのたび | Critical BTP SSO 認証が完了しない |
| ServiceNowOAuthCallbackLambda | ServiceNow OAuth のコールバック処理(SN 認証後に呼ばれる) | ログインのたび | Critical ServiceNow SSO ログインが完了しない |
| setActiveSessionLambda | 端末ごとのセッション情報を登録し、多重ログインを防止する | ログインのたび | Critical ログイン後に「他端末で使用中」エラーが続出 |
| Lambda 名 | 業務的な役割 | 実行頻度 | 障害時の影響 |
|---|---|---|---|
| ServiceNowLambda | ServiceNow からタスク一覧を取得して表示する | タスク一覧を開くたび | High タスク一覧が空白になる |
| ServiceNowUpdateStatusLambda | タスクの状態(作業中・完了など)を ServiceNow に反映する | タスク操作のたび | High ステータス変更が ServiceNow に保存されない |
| OTupdaterLambda | 打刻データから残業時間を計算して記録する | 打刻のたび | High 残業集計がずれる・欠落する |
| dailyActivityLogSaver | 日々の作業記録(出退勤・タスク開始終了)を保存する | 作業操作のたび | High 業務ダッシュボードに活動が反映されない |
| activityLog | アプリ内の操作ログを記録する(デバッグ・障害調査用) | アプリ操作のたび | High 障害調査に必要なログが残らなくなる |
| PersonalConfigDB | ユーザーのお気に入りタスク・個人残業設定を保存・取得する | 設定変更・起動時 | High お気に入り・個人設定が消える |
| ServiceNowOAuthRefreshLambda | ServiceNow の OAuth トークンを自動更新する | 60 分ごと(自動) | High タスク取得が認証エラーで失敗し始める |
| ServiceNowMetricInstanceLambda | タスクの開始・終了時刻の記録を ServiceNow から取得する | タスク詳細表示時 | Medium 作業時間の詳細が表示されない |
| ServiceNowUpdateMetricTimeLambda | タスクの作業時間を ServiceNow に書き込む | タスク完了時 | Medium 作業時間が ServiceNow に保存されない |
| Lambda 名 | 業務的な役割 | 実行頻度 | 障害時の影響 |
|---|---|---|---|
| PMLambda | プロジェクト管理タスクを取得する | タスク一覧更新時 | Low PM タスクが表示されない |
| PMSalesforceLambda | Salesforce からプロジェクト情報を取得する | タスク一覧更新時 | Low Salesforce 連携タスクが表示されない |
| CompanyConfigLambda | 会社の就業規則(標準労働時間・残業上限)をアプリに返す | 起動時 | Low 残業ルールがデフォルト値になる |
以下の 12 Lambda は CloudWatch Alarms で監視されています。5 分以内に一定件数のエラーが発生すると Slack #mobile-lambda-alert に自動通知が届きます。
| Lambda 名 | アラーム閾値 | 理由 |
|---|---|---|
| appsyncAuth | 5 分に 3 件以上 | 全 API 通信の門番 — エラー = アプリ全停止 |
| BTPSSOLambda | 5 分に 3 件以上 | 打刻の中核 — エラー = 打刻不可 |
| BTPTokenRefresherLambda | 5 分に 3 件以上 | サイレント障害で翌日の打刻に影響 |
| SSORefreshToken | 5 分に 3 件以上 | 打刻中の認証リフレッシュ — エラー = 打刻失敗 |
| SSOBTPIASLambda | 5 分に 1 件以上 | BTP 認証コールバック — 1 件でも失敗は致命的 |
| ServiceNowSSOLoginLambda | 5 分に 3 件以上 | ログインの最終ステップ — エラー = ログイン不可 |
| ServiceNowOAuthCallbackLambda | 5 分に 3 件以上 | SN OAuth コールバック |
| setActiveSessionLambda | 5 分に 3 件以上 | セッション登録 — エラー = ログイン後にセッション不整合 |
| ServiceNowLambda | 5 分に 3 件以上 実行時間 30 秒以上 | タスク一覧の取得 |
| ServiceNowUpdateStatusLambda | 5 分に 3 件以上 | タスクステータスの書き込み |
| OTupdaterLambda | 5 分に 3 件以上 | 残業データの記録 |
| dailyActivityLogSaver | 5 分に 3 件以上 | 日次活動ログの保存 |
各 Lambda がどの外部サービスに依存しているかを示します。外部サービスが停止すると、関連 Lambda がエラーになります。
打刻機能全体が BTP に依存
Microsoft SSO 障害 = ログイン不可
タスク機能全体が SN に依存
SF 障害は PM タスクのみ影響
Firebase 障害 = 全機能停止(まず起きない)
AWS 障害のみが影響する