뒤끝펑션 타임아웃관련 문의 입니다.

뒤끝 펑션을 사용해 보려고 코드를 사용 중에 있는데요.
어제까지는 10초 안에 어떻게든 결과물을 줬습니다.
좀 속도가 마음에 안 들어서, 궁리를 해서 속도를 올려 보려 했는데,
오히려 10초 타임아웃이 돼 버렸네요 ㅠㅠ

디버그에서는 잘 돌아가는데, 실제로 유니티를 통해 호출을 하면 10초 타임아웃이 돌아오는데요.
혹시 유니티를 통해 호출 할 때, 어디서 막혀서 10초를 넘는지 알 수 있는 방법이 있을까요?

안녕하세요 개발자님,
개발 환경과 실제 실행환경이 다르기 때문에
디버깅할 때는 타임아웃에 걸리지 않았지만, 서버 배포 후 타임아웃이 걸리는 경우가 존재합니다.
따라서 서버 배포 후에도 정상적으로 실행되는지 반드시 확인이 필요합니다.

다음의 경우들에 응답시간이 길어지며 타임아웃이 발생할 수 있습니다.

  • 작성한 로직이 복잡하고 연산량이 많아 함수 실행 시간 자체가 오래 걸리는 경우
  • 뒤끝펑션을 개발할 때 다양한 서드파티 라이브러리를 활용하여 프로그램 자체가 큰 경우
  • 최초 함수 요청 시 Cold Start 상태로 호출 되는 경우
    뒤끝펑션이 서버로 배포되면 바로 활성화되는 것이 아니라 해당 함수가 호출되었을 때 활성화되게 됩니다.
    비활성화되어있는 함수를 호출한 경우 함수를 활성화한 후 실행하기 때문에 응답시간이 약 5000ms 이상의 시간이 소요될 수 있습니다.
    Cold Start 는 다음 상황들에 해당합니다.
    • 해당 함수가 서버로 배포된 후 제일 처음 호출된 경우
    • 해당 함수가 장시간 사용되지 않다가 호출된 경우
    • 해당 함수가 새로 배포된 후 제일 처음 호출된 경우

위 경우들에는 사용하는 라이브러리를 변경하거나 로직을 변경해 주셔야 합니다.

타임 아웃이 의심되는 코드가 있어서 별도로 때어서 실행을 해 보니 OnReady가 오지 않고 마찬가지로 타임아웃이 오네요. ㅠㅠ

namespace BackendFunction
{
public class BFunc
{
public Stream Function(Stream stream, ILambdaContext context)
{
try
{
// Initialize BackendFunction API
Backend.Initialize(ref stream);
}
catch (Exception e)
{
//Return the reason if Initializing BackendFunction API was failed
return ReturnErrorObject("initialize " + e.ToString());
}

        // TODO
        string tableName = "tb_player_status";
        var bro = Backend.GameData.GetMyData(tableName, new Where());


        // If return the value by Stream type, the value will send to Backend SDK 
        return Backend.StringToStream("OnReady");
    }

    static Stream ReturnErrorObject(string err)
    {
        JObject error = new JObject();
        error.Add("error", err);

        return Backend.JsonToStream(error.ToString());
    }
}

}

다시 여러번 누르니 OnReady가 돌아오기는 하는데, 한 2~3초 후에 돌아옵니다.
그리고 누르던 중에 요놈도 한번 왔습니다.

{“errorType”:“Runtime.ExitError”,“errorMessage”:“RequestId: 65c40648-64d7-4abd-865e-c15933dd8958 Error: Runtime exited without providing a reason”}

그리고 다시 누르니 또 OnReady가 왔구요.
혹시 해결의 단서가 될까요?