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