호출 문제

Prev Next

Cloud Functions를 이용하면서 다음과 같은 문제를 겪을 수 있습니다. 문제별 원인과 해결 방법을 확인하고 적절하게 조치해 주십시오.

"Request larger than allowed" 오류

  • 요청한 바디 크기가 10MB 이하인데, API Gateway 트리거 호출 시 오류가 발생합니다.
  • API Gateway 트리거 호출 시 다음과 같은 오류 메시지가 표시됩니다.
    {
      "code": "<code>",
      "error": "Request larger than allowed: 2097152 > 1048576 bytes."
    }
    

원인

요청 본문의 크기가 Cloud Functions에서 허용하는 최대 크기(1MB/1,048,576bytes)를 초과했다는 의미입니다. API Gateway의 요청 바디 크기 제한은 10MB이지만 Cloud Functions을 연동하는 경우에는 Cloud Functions의 파라미터 크기 제한인 1MB가 적용됩니다. 자세한 설명은 Cloud Functions 리소스 제한 사양을 참조해 주십시오.

해결 방법

  • 요청 본문의 크기를 Cloud Functions의 파라미터 크기 제한(1MB)에 맞게 조정해 주십시오.
  • 대용량 데이터를 전달해야 할 경우, Cloud Functions의 코드에서 Object Storage의 파일을 읽도록 구성하는 등 다른 방법을 고려해 주십시오.

"ACTION_BODY_INVALID_TYPE" 오류

  • Put Action API 요청 시 ACTION_BODY_INVALID_TYPE 오류가 발생합니다.
  • 다음과 같은 오류 메시지가 표시됩니다.
    {
      "error": {
        "errorCode": "80305",
        "message": "ACTION_BODY_INVALID_TYPE",
        "details": "The requested body is in an invalid action format."
      }
    }
    
    {
        "error": {
            "errorCode": "80305",
            "message": "ACTION_BODY_INVALID_TYPE",
            "details": "The type of 'timeout' needs to be verified."
    }
    }
    

원인

  • "details": "The requested body is in an invalid action format." 인 경우
    • 요청 본문의 형식이 유효하지 않았을 경우 표시되는 오류 메시지입니다. 언어별로 처리 방식이 다를 수 있으나 Python에서는 JSON 매개변수를 사용하여 요청해야 합니다.
    • 예를 들어 다음과 같이 요청했을 경우, 문자열 그대로 전송되기 때문에 해당 오류가 발생합니다.
      response = requests.put(url, headers=headers, data=body)
      
  • "details": "The type of '{timeout}' needs to be verified." 인 경우
    • PutAction API의 request body 필드 값의 타입을 잘못 정의한 경우 표시되는 오류 메시지입니다.

해결 방법

  • "details": "The requested body is in an invalid action format." 인 경우
    자동으로 JSON 직렬화하여 올바르게 요청을 보낼 수 있도록 json=body를 입력해 주십시오.
    올바른 요청 방식은 다음과 같습니다.

    import requests
    
    body = {"description": "Create Action", ... }
    response = requests.put(url, headers=headers, json=body)
    
  • "details": "The type of '{timeout}' needs to be verified." 인 경우

    • 잘못 정의된 필드 타입을 수정해 주십시오.
참고

자세한 설명은 Put Action API를 참조해 주십시오.

"Not Found Exception" 오류

  • Not Found Exception 오류가 발생합니다.
  • 다음과 같은 오류 메시지가 표시됩니다.
    {       
        "error": {           
            "errorCode": "300",
            "message": "Not Found Exception",           
            "details": "URL not found."       
        }
    }    
    

원인

  • 호출하려는 URL 및 Method가 잘못 입력되었을 경우, Not Found Exception 오류가 발생할 수 있습니다.
  • API Gateway 구독 방식이 보호 모드인 경우, 호출이 불가하여 Not Found Exception 오류가 발생할 수 있습니다. API Gateway 구독 방식이 '공개-자율구독'인 경우에는 Product에 API Key 등록/승인 여부와 관계없이 호출이 가능하지만, '보호-승인필요'인 경우에는 등록/승인된 API Key가 아니라면 호출이 불가능합니다.

해결 방법

  • 호출하려는 URL 및 Method가 정확하게 입력되었는지 확인해 주십시오.
  • API Gateway 구독 방식을 확인한 후, '공개-자율구독'으로 변경해 주십시오. 구독 방식을 변경하는 방법은 API Gateway 가이드의 Product 수정을 참조해 주십시오.

200이 아닌 HTTP Status 코드 리턴

200이 아닌 HTTP Status 코드가 리턴됩니다.

원인

비동기 실행 호출 시(blocking=false query param) 202(Accepted)가 리턴됩니다. 액션 실행 자체만 체크하기 때문에 액션 코드 내부 동작의 성공 및 실패 여부는 관여하지 않습니다. 또한 동기 호출 시, 정상 실행 성공 시 200(OK)이 리턴됩니다. 액션이 1분 이상 실행될 경우 비동기 실행으로 전환되며 202(Accepted)를 리턴합니다.

해결 방법

원인에서 설명한 바와 같이, 이는 정상적인 동작이며 별도 조치가 필요하지 않습니다.

참고

이 가이드에서 필요한 정보를 찾지 못했거나 추가로 필요한 정보가 있으신 경우, 언제든지 아래의 피드백 아이콘을 클릭하여 의견을 보내 주십시오. 전달해 주신 의견을 참고하여 더 유용한 정보를 제공하겠습니다.