--- title: "Python" slug: "cloudfunctions-example-python" tags: ["Python", "Cloud Functions"] updated: 2026-09-17T09:09:21Z published: 2026-09-17T09:09:21Z canonical: "guide-fin.ncloud-docs.com/cloudfunctions-example-python" --- > ## Documentation Index > Fetch the complete documentation index at: https://guide-fin.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Python Python 형식의 액션을 생성하고 다양하게 활용하는 방법과 예제를 소개합니다. ## 액션 생성 Python으로 작성한 코드는 여러 개의 함수를 포함할 수 있지만 Main 함수는 프로그램의 시작점으로써 반드시 선언되어야 합니다. 이 점을 고려하여 이름과 장소를 포함하여 "Hello World"를 출력하는 Python 형식의 간단한 예제 코드 `hello`는 다음과 같습니다. ``` def main(args): name = args.get("name", "World") place = args.get("place", "Naver") greeting = "Hello " + name + " in " + place + "!" print(greeting) return {"payload": greeting} ``` 위에서 작성한 코드를 사용하여 콘솔에서 'hello'라는 이름의 액션을 생성하는 과정은 다음과 같습니다.  ## 의존성 파일을 함께 패키징하여 액션 생성 코드를 작성하다 보면 하나의 액션 외에 의존 모듈을 함께 패키징해야 하는 경우가 있습니다. 이러한 경우 관련된 파일들을 하나의 모듈로 패키징하고, 패키징된 파일을 이용하여 액션을 생성할 수 있습니다. 함수에 접근하기 위한 entry point인 `main` 함수는 __main__.py 파일 안에 정의되어 있어야 합니다. 예를 들어 메인 액션에서 사용되는 함수들이 작성된 helper.py 파일과 함께 패키징하여 액션을 생성하고 싶은 경우 다음 명령어를 사용하여 액션과 관련된 파일들을 helloPython.zip으로 압축합니다. ``` zip -r helloPython.zip __main__.py helper.py ``` 이후 생성된 압축 파일을 사용하여 액션을 생성할 수 있습니다. ### virtual environment와 함께 패키징하여 액션 생성 virtual environment와 함께 패키징하여 액션을 생성하는 방법을 운영체제 환경별로 설명합니다. #### Linux & Mac Cloud Functions에서 기본으로 제공되는 라이브러리 외 추가 라이브러리를 사용하기 위해 virtual environment(`virtualenv`)를 사용하여 함께 패키징할 수 있습니다. 기본적으로 지원하는 패키징 방법과 동일하게 메인 함수는 __main__.py 파일 안에 정의되어 있어야 하며 virtualenv의 폴더 이름은 반드시 'virtualenv'로 설정해야 합니다. virtual environment를 구축하여 Cloud Functions에서 제공하지 않는 pyjokes 라이브러리를 사용하여 joke를 반환하는 액션을 생성하는 예제는 다음과 같습니다. 1. virtualenv 이름을 가지는 virtualenv 환경을 구축해 주십시오. ``` virtualenv virtualenv source virtualenv/bin/activate pip install pyjokes ``` 2. **__main__.py**에서 `get_joke()` 메서드를 호출하여 joke를 반환하는 코드를 작성해 주십시오. ``` import pyjokes def main(args): return {"joke": pyjokes.get_joke()} ``` 3. virtualenv 폴더와 **__main__.py** 파일을 함께 압축해 주십시오. ``` zip -r jokes.zip virtualenv __main__.py ``` 4. 생성된 압축 파일을 사용하여 액션을 생성해 주십시오. 참고 Cloud Functions는 최대 액션 소스 코드의 크기가 38MB로 제한되어 있습니다. 따라서 사용하는 라이브러리가 많아 파일 크기가 제한 용량을 넘어가는 경우 배포가 제한될 수 있으며, 자주 사용되지 않는 액션의 경우 컨테이너가 cold 상태로 전환되어 초기 액션 실행 시간이 늘어날 수 있습니다. #### Windows Windows 환경에서는 Linux와 Mac 환경의 virtualenv와 동일한 형태로 지원이 어렵기 때문에 가상 환경을 구성하여 패키지화하는 두 가지 방법을 설명합니다. 단, Python이나 pip는 이미 설치되어 있는 상태여야 합니다. - Docker를 사용하여 패키지화하는 방법: Docker를 이용할 수 있는 개발 환경인 경우 간단히 가상으로 개발 환경을 구성하여 패키지화할 수 있습니다. 패키지화하는 순서는 다음과 같습니다. 1. 사용 중인 운영체제에 해당하는 Docker for Windows(Community Edition)나 Docker Toolbox를 설치해 주십시오. (참고: [https://www.docker.com/docker-windows](https://www.docker.com/docker-windows)) 2. 소스 코드 __main__.py를 작성해 주십시오. ``` import pyjokes def main(args): return {"joke": pyjokes.get_joke()} ``` 3. requirements.txt 파일을 작성해 주십시오. ``` pyjokes==0.5.0 ``` 4. Docker 명령어를 사용하여 zip 파일을 생성해 주십시오. - 다음과 같은 파일 구조에서 작업 경로를 `C:\WorkingDir`로 가정 ``` c:\WorkingDir>dir XXXX-XX-XX 오후 09:07