실행 문제

Prev Next

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

Cron 실행 오류

Cloud Functions에서 Action에서는 동작이 되는데 Cron에서는 동작이 되지 않습니다.

원인

Cloud Functions의 Cron(자동)과 Action 직접 실행(수동)의 차이는 없습니다. 다만, Cron 트리거를 포함한 트리거 레벨에서 연결된 액션에 디폴트 파라미터 값을 전달할 수 있습니다. 반대로 수동으로 액션을 실행할 경우에는 실행 창에서 런타임 파라미터 전달이 가능하지만, Cron 트리거에서는 디폴트 파라미터 외에 별도 파라미터를 전달할 수 없습니다.

해결 방법

Cron 트리거에서는 디폴트 파라미터 외에 별도 파라미터를 전달할 수 없으므로, 코드 내에서 필요한 파라미터 값을 전달 받아 사용하는 부분이 있는지 확인해 주십시오.

Object Storage 타입 트리거 실행 오류

Object Storage 타입 트리거에서 업로드 이벤트를 설정했는데 트리거가 동작하지 않습니다.

원인

Object Storage에 파일을 업로드하는 방식에는 일반 업로드와 멀티파트 업로드가 있으며, 용량이 큰 파일은 멀티파트 업로드 방식으로 업로드할 수 있습니다. 만약 이벤트 설정에서 ObjectCreated:PUT만 설정하고 멀티파트 업로드에 대한 이벤트 유형인ObjectCreated:COMPLETE_UPLOAD는 설정하지 않은 경우, 멀티파트 업로드가 발생했을 때 트리거가 되지 않을 수 있습니다.

해결 방법

  • 멀티파트 업로드 이벤트 트리거를 위해 ObjectCreated:COMPLETE_UPLOAD 이벤트 유형을 추가해 주십시오. 이벤트 유형을 추가하는 방법은 Object Storage 타입 트리거UploadPart API 가이드를 참조해 주십시오.
  • 이벤트 유형을 추가했는데도 트리거가 동작하지 않는다면 버킷명, 객체명, 업로드 시점을 고객 지원으로 전달해 주십시오.

"cannot import name ~" 오류

Python 액션 실행 시 'cannot import name ~' 와 같은 오류가 발생합니다.

원인

  • 코드 압축 파일에 라이브러리가 누락되었습니다.
  • 시스템 라이브러리가 누락되었습니다.

해결 방법

코드 압축 파일에 라이브러리 누락
의존성 파일을 함께 패키징하여 액션을 생성해 주십시오. 자세한 방법은 Cloud Functions 예제 > 런타임별 액션 생성과 활용 > Python 가이드의 의존성 파일을 함께 패키징하여 액션 생성을 참조해 주십시오.

시스템 라이브러리 누락
Python 라이브러리가 OS에 따라 다른 시스템 라이브러리(*.so, *.dll)에 의존하거나 또는 압축 파일에 Windows 또는 macOS 시스템 라이브러리가 포함되거나 CF 런타임 이미지에 참고할 시스템 라이브러리가 없을 경우 주로 발생합니다. 누락된 시스템 라이브러리를 확인한 후 설치해 주십시오.

UnsupportedClassVersionError 오류

Java 액션 실행 시 UnsupportedClassVersionError 오류가 발생합니다

원인

Cloud Functions 액션 런타임 버전보다 상위 버전에서 컴파일한 경우, 해당 오류가 발생할 수 있습니다.

해결 방법

업로드한 액션의 컴파일된 버전을 확인하는 방법은 다음과 같습니다.
메인 클래스는 Hello이며, Linux 환경에서 실행한다고 가정합니다.

  1. JAR 파일을 다운로드하기 위해 Action 메뉴에서 [수정] 버튼을 클릭한 다음, [다운로드] 버튼을 클릭해 주십시오.
  2. 다음 명령어를 입력하여 jar 파일의 압축을 해제해 주십시오.
    $ jar xf <JAR_FILE>
    
  3. 다음 명령어를 입력하여 클래스 파일의 컴파일 버전을 확인해 주십시오.
    액션 런타임 버전과 동일하거나 하위 버전이어야 합니다.
    • Unix/Linux 환경
      $ file Hello.class
      Hello.class: compiled Java class data, version 52.0 (Java 1.8)
      또는
      $ javap -verbose Hello | grep "major"
      major version: 52
      
    • Windows 환경
      $ javap -verbose Hello | findstr "major"
      major version: 52
      
참고

Java 액션 생성과 활용에 관한 자세한 내용은 Cloud Functions 예제 > 런타임별 액션 생성과 활용 > Java를 참조해 주십시오.

"Too many concurrent requests in flight()" 응답 리턴

액션 실행 결과 "Too many concurrent requests in flight()" 같은 형태의 응답이 리턴됐습니다.

원인

concurrent의 기본값을 초과하였습니다.

해결 방법

Cloud Functions 사용 준비를 참조하여 동시 실행 가능한 액션 개수를 수정해 주십시오.
concurrent 기본값을 조정해야 하는 경우, 네이버 클라우드 플랫폼 고객 지원으로 전달해 주십시오.

참고

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