Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Azure Functions HTTPトリガーにおけるタイムアウトでハマったこと

Recruit
December 18, 2024

Azure Functions HTTPトリガーにおけるタイムアウトでハマったこと

2024/12/18に、第50回 Tokyo Jazug Nightで発表した、政岡の資料です。

Recruit

December 18, 2024
Tweet

More Decks by Recruit

Other Decks in Business

Transcript

  1. マスタ タイトルの書式設定 2 © 2024 Recruit Co., Ltd. All Rights

    Reserved. 自己紹介 • Yuji Masaoka | まっぴぃ • Twitter: @mappie_kochi • Zenn: ymasaoka • Blog: とある IT エンジニアの日常 • 株式会社リクルート(2019/5 〜) • リクルート従業員向け Microsoft Azure / Microsoft 365 の管理運用 • Microsoft Azure / Microsoft 365 の開発支援 • AWS を使用した社内システム開発 • 趣味 • Perfume (ファンクラブ会員) • Disney • Jigsaw puzzle
  2. マスタ タイトルの書式設定 4 © 2024 Recruit Co., Ltd. All Rights

    Reserved. リクルートグループについて 創業 1960年3月31日 「大学新聞広告社」としてスタート グループ 従業員数 51,373名 (2024年3月31日時点) 連結売上収益 34,164億円 (2023年4月1日〜2024年3月31日) 連結営業利益 4,025億円 (2023年4月1日〜2024年3月31日) グループ 企業数 連結子会社 227社 関連会社8社 (2024年3月31日時点) ビジョン・ミッ ション
  3. マスタ タイトルの書式設定 5 © 2024 Recruit Co., Ltd. All Rights

    Reserved. リクルートについて リクルートグループのうちメディア&ソリューション事業を推進する会社 ※2012/10 中核事業会社・機能会社に分社 → 2021/4「リクルート」として統合 リクルート ホールディングス リクルートキャリア リクルート住まいカンパニー リクルートライフスタイル リクルートジョブズ リクルートマーケティングパートナーズ リクルートスタッフィング スタッフサービス・ホールディングス 人材派遣事業 RGF Staffing B.V. HRテクノロジ― 事業 RGF OHR USA, Inc. その他海外派遣グループ会社 Indeed,Inc. Glassdoor,Inc. リクルートテクノロジーズ リクルートコミュニケーションズ 事業 会社 機能 会社 マッチング & ソリューション事業 (株)リクルート
  4. マスタ タイトルの書式設定 6 © 2024 Recruit Co., Ltd. All Rights

    Reserved. リクルートの事業内容について(主なサービス) 6 選択・意思決定を支援する情報サービスを提供し、 「まだ、ここにない、出会い。より速く、シンプルに、もっと近くに」を実現する メディア&ソリューションSBU HRテクノロジーSBU 人材派遣SBU 国内派遣 海外派遣
  5. マスタ タイトルの書式設定 7 © 2024 Recruit Co., Ltd. All Rights

    Reserved. リクルートのビジネスモデルについて 7 リクルートには、ユーザーとクライアントという2つのお客様が存在します。 企業と人(B to C)、企業と企業(B to B)、人と人(C to C)、すべての間に立ち双方にとって最適な マッチングを図る「場」を提供しています。 ユーザーとクライアントを新しい接点で結び、 「まだ、ここにない、出会い。より速く、シンプルに、もっと近くに」の場を創造する
  6. マスタ タイトルの書式設定 10 © 2024 Recruit Co., Ltd. All Rights

    Reserved. 社内システムの例 Q: どこの部分でタイムアウトする可能性があると思いますか? Webhook POST Approve Document (PATCH) Firewall (IP Range) Entra ID Microsoft Lists Find users data (GET) Enable / Disable users (POST) Create new item (POST)
  7. マスタ タイトルの書式設定 11 © 2024 Recruit Co., Ltd. All Rights

    Reserved. 社内システムの例 Q: どこの部分でタイムアウトする可能性があると思いますか? Webhook POST Approve Document (PATCH) Firewall (IP Range) Entra ID Microsoft Lists Create new item (POST) ① Function app timeout Find users data (GET) Enable / Disable users (POST)
  8. マスタ タイトルの書式設定 12 © 2024 Recruit Co., Ltd. All Rights

    Reserved. 社内システムの例 Q: どこの部分でタイムアウトする可能性があると思いますか? Webhook POST Approve Document (PATCH) Firewall (IP Range) Entra ID Microsoft Lists Create new item (POST) ① Function app timeout ② Request Timeout Find users data (GET) Enable / Disable users (POST)
  9. マスタ タイトルの書式設定 14 © 2024 Recruit Co., Ltd. All Rights

    Reserved. • Function app timeout は、関数自体の処理実行可能時間を定義するもの • HTTP トリガーの場合は、Function app timeout に加えて Request/Response も考慮 が必要 Function app timeout • https://learn.microsoft.com/en-us/azure/azure-functions/functions- scale#timeout © 2024 Recruit Co., Ltd. All Rights Reserved.
  10. マスタ タイトルの書式設定 15 © 2024 Recruit Co., Ltd. All Rights

    Reserved. Request timeout • https://learn.microsoft.com/en-us/troubleshoot/azure/app- service/web-apps-performance-faqs#why-does-my-request-time-out- after-230-seconds • Azure Functions HTTP トリガーを使う際は、Request timeout を考慮した リファクタリングの意識が必須 全てのプランの HTTP トリガーは Azure Load Balancer 影響の タイムアウトが発生する (Win: 230 sec / Linux: 240 sec)
  11. マスタ タイトルの書式設定 17 © 2024 Recruit Co., Ltd. All Rights

    Reserved. 社外ゲストアカウントのクリーニング申請書 • 1 つの申請書内で 100+ の アカウント入力の申請書が多発 • 1 メアドあたり最低でも 3 秒は 処理に時間が必要 © 2024 Recruit Co., Ltd. All Rights Reserved. 240 秒で処理が完結 できないものが発生 (想定が甘かった)
  12. マスタ タイトルの書式設定 18 © 2024 Recruit Co., Ltd. All Rights

    Reserved. Function App が起こした挙動 SmartDB にはエラーを返したが、関数自体の処理は裏で継続 SmartDB Webhook Function App 実行結果
  13. マスタ タイトルの書式設定 21 © 2024 Recruit Co., Ltd. All Rights

    Reserved. Durable Function 採用型 Durable Function を構成して、処理の規模を小さくリファクタリングする Webhook POST Approve Document (PATCH) Firewall (IP Range) Entra ID Microsoft Lists Find users data (GET) Enable / Disable users (POST) Create new item (POST)
  14. マスタ タイトルの書式設定 22 © 2024 Recruit Co., Ltd. All Rights

    Reserved. MQ 採用型 キュートリガーを配置して、Request / Response だけ切り出す Webhook POST Approve Document (PATCH) Firewall (IP Range) Entra ID Microsoft Lists Find users data (GET) Enable / Disable users (POST) Create new item (POST) or Service Bus Azure Queue
  15. マスタ タイトルの書式設定 25 © 2024 Recruit Co., Ltd. All Rights

    Reserved. We Are Hiring!! • リクルートで Microsoft Azure / Microsoft 365 やりたい人いませんか? https://www.recruit.co.jp/employment/mid-career/ https://www.recruit.co.jp/employment/mid-career/