식별
첫 번째 단계는 오류를 식별하는 것입니다. 잡히지 않은 모든 오류는 로그에 기록되고 호출자(클라이언트)에게 반환되는 응답에서 확인할 수 있지만,try/catch 블록을 사용하여 오류를 조기에 잡을 수 있습니다.
오류를 생성하고 잡는 다음 CloudScript 스니펫을 고려해 보세요.
오류 코드만으로도 오류를 식별하기에 충분합니다.
로깅
처리되지 않은 모든 오류는 응답에 추가되어, 클라이언트가 문제를 처리할 수 있게 합니다. 동시에, CloudScript 오류 항목을 만들어 CloudScript 대시보드에서 사용 가능한 총 통계에 추가합니다. JSON 문자열 형태로 예외를 강제로 로깅하려면,log 객체를 통한 오류 로깅을 사용하세요.
복구
오류에서 항상 복구할 수 있는 것은 아닙니다.InvalidArguments와 같은 문제는 플레이어에게 문제를 다시 보고하는 것 외에는 다른 옵션이 없습니다.
재시도 전략을 적용할 수 있는 오류의 하위 집합이 있습니다. 재시도 가능한 오류 유형은 글로벌 API 메서드 오류 코드에 설명되어 있습니다.
재시도 전략을 적용할 때 다음 요구 사항을 반드시 충족하도록 요청합니다.
- 재시도할 때마다 재시도 간 지연 시간이 기하급수적으로 증가해야 합니다. 이렇게 하면 성공적인 호출의 가능성이 높아지고, 게임이 PlayFab 서버로 스팸 호출을 하는 것을 방지합니다(그러면 더 많은 호출이 거부됩니다).
- 이 재시도 전략은 선택적으로 적용해야 하며, 재시도할 가치가 있는 코드에만 사용해야 합니다.
CloudScript 시간 초과 오류
CloudScript API 호출의 실행 시간은 4초로 제한됩니다. 실행 시간이 4초를 초과하면,InternalServerError가 발생하고 PlayStream 이벤트는 다음과 유사한 Logs 객체를 작성합니다.
- CloudScript를 4초 이내에 실행되는 더 작은 코드 세그먼트로 나눕니다.
- 경우에 따라 더 긴 시간 제한이 있는 Azure Functions를 사용하는 CloudScript로 전환합니다. 제한은 빠른 시작 가이드에서 확인할 수 있습니다.
