特定
最初のステップはエラーの特定です。キャッチされていないすべてのエラーはログに記録され、呼び出し元 (クライアント) へのレスポンスから利用できますが、try/catch ブロックを使って早期にキャッチすることもできます。
エラーを発生させてキャッチする次の CloudScript スニペットを参照してください。
エラー コード単独でエラーを特定できます。
ログ記録
未処理のエラーはすべてレスポンスに追加され、クライアントで問題を処理できるようになります。 同時に、CloudScript エラー エントリが作成され、CloudScript ダッシュボードで利用できる合計統計情報に追加されます。
log オブジェクトを使ったエラー ログを利用します。
回復
エラーからの回復は常に可能とは限りません。InvalidArguments のような問題では、プレイヤーに問題を報告する以外の選択肢はありません。
再試行戦略を適用できるエラーのサブセットも存在します。再試行可能 なエラーの種類は グローバル API メソッド エラー コード に記載されています。
再試行戦略を適用する際には、次の要件を必ず 満たしてください:
- 再試行のたびに、再試行間の遅延は 指数関数的に増加 させる必要があります。これにより、呼び出しが成功する確率が高まり、ゲームが PlayFab サーバーにスパムを送信するのを防ぐことができます (スパム送信は さらに多くの 拒否された呼び出しにつながります)。
- この再試行戦略は 選択的に 適用し、再試行する価値のあるコードにのみ使用してください。
CloudScript タイムアウト エラー
CloudScript API 呼び出しの実行時間は 4 秒に制限されています。 実行時間が 4 秒を超えるとInternalServerError が発生し、PlayStream Event は次のような Logs オブジェクトを書き込みます:
- CloudScript を 4 秒未満で実行できる小さなコード セグメントに分割する。
- Azure Functions を利用した CloudScript に切り替える。この方法は、場合によってタイムアウト制限が長くなります。制限は クイックスタート ガイド で確認できます。
