Salesforceを運用していると、API制限に悩まされることがあります。特に本番環境に新機能を反映する前の段階で、制限に引っかかるリスクを事前に把握したいと考える方は多いでしょう。API制限はアプリケーションのパフォーマンスやデータ連携に直結するため、適切な切り分けと対策が必要です。この記事では、本番反映前にAPI制限の問題を切り分けるための具体的な手順とポイントを解説します。事前に原因を特定しておくことで、本番環境でのトラブルを未然に防ぐことができます。
【要点】この記事で確認すること
- 最初に見る場所: Salesforceの「API使用状況」レポート、Event Monitoring、各インテグレーションのログ。
- 切り分けの軸: 組織全体の制限とユーザ単位の制限、リアルタイムAPIとバッチAPI、外部システムの呼び出し頻度。
- 注意点: 本番環境のAPI制限はSandboxと異なるため、Sandboxの数値を鵜呑みにしないこと。管理者権限でしか確認できない項目もあるため、事前にアクセス権を確認しておく。
ADVERTISEMENT
目次
1. API制限の基礎と影響範囲
SalesforceのAPI制限の種類
SalesforceにはいくつかのAPI制限が存在します。代表的なものとして、1日あたりのAPIリクエスト数、同時実行可能なAPIリクエスト数、バッチサイズの上限、およびタイムアウト時間があります。これらの制限は、組織のエディションやライセンス数によって異なります。例えばEnterprise Editionでは、1ユーザあたりのAPIリクエスト数が定められており、組織全体でその合計値が上限となります。また、リアルタイムインテグレーションで使われるREST APIと、データローダなどで使われるBULK APIでは制限の考え方が異なります。
制限に達した場合の症状
API制限に達すると、主に以下のような症状が発生します。外部システムからのデータ連携が失敗する、Salesforceへのデータインポートが途中で止まる、複数のユーザが同時に操作した際にレスポンスが遅延する、または「APIリクエスト制限を超過しました」というエラーが返されます。これらの症状が本番環境で発生すると、業務に大きな支障をきたすため、事前の切り分けが重要です。
2. 本番反映前に確認するべき事前準備
現在の使用量の把握
まず、現在のAPI使用量を正確に把握しましょう。Salesforceの「設定」メニューから「API使用状況」レポートを開くと、組織全体の使用量と残りの容量を確認できます。また、Event Monitoringを利用すれば、より詳細なリクエストの内訳(ユーザ別、時間帯別、API種別)を分析できます。これらのデータは本番環境でしか取得できないため、Sandboxではなく本番環境の情報を参照してください。
想定される追加リクエストの見積もり
本番反映前に、新機能によって追加されるAPIリクエスト数を概算します。例えば、新たに導入する外部連携が1時間あたり何回のAPIコールを行うか、バッチ処理のジョブが1日あたり何レコードを処理するかなどを見積もります。さらに、ピーク時の同時実行数も考慮してください。この見積もりと現在の使用量を合算し、制限値を超えないかを確認します。もし余裕がない場合は、リクエストの削減やスケジュール調整を検討します。
3. 制限に達した場合の切り分け手順
- 組織の制限値を確認する: 「設定」→「会社の設定」→「組織の情報」で、1日あたりのAPIリクエスト上限と同時実行制限を確認します。エディションごとのデフォルト値と照らし合わせます。
- 日次APIリクエスト数の使用状況を確認する: 「API使用状況」レポートで、当日の使用量と残り枠を確認します。過去数日間の推移も見て、トレンドを把握します。
- 同時実行数の確認: 「同時APIリクエスト」レポート(またはEvent Monitoring)で、同時に実行されたAPIリクエストの最大値を確認します。特にバッチジョブの実行時間帯を調べます。
- バッチジョブのスケジュール確認: スケジュール済みのApexバッチやデータローダジョブが重なっていないか確認します。同時実行制限に引っかかる場合は、ジョブの開始時間を分散させます。
- 外部システムのリトライ設定を見直す: 外部システムが頻繁にリトライを行っていると、無駄なAPIコールが増えます。リトライ回数や間隔を適切に設定し、指数バックオフを導入します。
- カスタムコードの呼び出し回数を分析する: トリガやApexクラスから外部システムを呼び出している場合、コールアウトの回数をログで確認します。不要な呼び出しを削除するか、非同期処理に変更します。
上記の手順を実施することで、制限超過の原因を特定しやすくなります。特に、複数の要因が重なっているケースが多いため、各項目を順にチェックすることを推奨します。
4. よくある失敗パターンとその対策
パターン1: バッチジョブの集中実行
複数のバッチジョブを同じ時間帯にスケジュールすると、同時実行制限に容易に到達します。対策として、ジョブの開始時間を30分以上ずらす、またはキューイングを利用してジョブ間の間隔を確保します。
パターン2: 外部システムからの過剰なポーリング
外部システムが短い間隔でデータ取得のためにAPIを呼び出すと、1日あたりの制限を消費しやすくなります。対策として、ポーリング間隔を長くする、またはWebhookやPush型の通信に変更します。
パターン3: カスタムコード内の同期コールアウト
トリガ内で同期のコールアウトを行うと、API制限だけでなくガバナ制限も消費します。対策として、コールアウトを非同期(FutureメソッドやQueueable)に変更し、同時実行数を減らします。
| 環境 | 1日あたりAPIリクエスト制限 | 同時APIリクエスト制限 | 注意点 |
|---|---|---|---|
| 本番環境 (Enterprise Edition) | 15,000(ライセンス数により変動) | 25 | Sandboxとは異なるため、本番の数値を基準にすること |
| Full Copy Sandbox | 本番と同じ | 本番と同じ | データ量が本番同等だが、使用量は本番とは独立 |
| Developer Sandbox | 5,000 | 10 | 本番よりも制限が低いため、テストの際は注意 |
5. よくある質問
Q1. API制限の状況はどこで確認できますか?
A. 設定メニューの「API使用状況」で組織全体の使用量を確認できます。より詳細な分析にはEvent Monitoringの購入が必要です。
Q2. Sandboxで制限超過をテストしても意味がありますか?
A. 制限値が本番と異なる場合があるため、あくまで動作確認として利用し、本番の数値で再計算してください。特にDeveloper Sandboxは制限が低いため、本番では問題ないケースがあります。
Q3. API制限を拡張することは可能ですか?
A. 契約エディションによっては、APIリクエスト数の追加購入が可能です。また、同時実行制限は原則変更できませんが、設定の見直しで回避できることがあります。詳細はSalesforceの担当者へご確認ください。
6. まとめ
本番環境に変更を反映する前に、API制限の使用状況を把握し、追加リクエストの見積もりを行うことが重要です。切り分け手順に沿って原因を特定し、よくある失敗パターンを回避することで、本番環境でのトラブルを予防できます。特に、バッチジョブのスケジュール調整や外部連携のリトライ設定の見直しは効果的です。管理者と連携して制限値の監視と適切な対策を実施してください。この記事が、皆様のSalesforce運用の一助となれば幸いです。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
- 【Teams】画面共有時に「音声」も共有する方法!音が流れない時の設定手順
