Google Cloud Functions는 이벤트 기반 서버리스 함수 실행 플랫폼이다. 인프라 관리 없이 코드를 작성하고 HTTP 요청, Pub/Sub 메시지, Cloud Storage 이벤트 등에 반응한다.
트리거 종류
| 트리거 | 설명 |
|---|
| HTTP | HTTP/HTTPS 요청 |
| Pub/Sub | 메시지 큐 이벤트 |
| Cloud Storage | 파일 생성/변경/삭제 |
| Firestore | 문서 변경 |
| Firebase Auth | 사용자 생성/삭제 |
| Cloud Scheduler | 주기적 실행 |
HTTP 함수 예시 (Node.js)
typescript
import { HttpFunction } from '@google-cloud/functions-framework';
export const helloWorld: HttpFunction = (req, res) => {
const name = req.query.name || 'World';
res.json({ message: `Hello, ${name}!` });
};
Pub/Sub 트리거 예시 (Python)
python
import base64
import json
from cloudevents.http import CloudEvent
def process_message(cloud_event: CloudEvent) -> None:
data = base64.b64decode(cloud_event.data['message']['data']).decode('utf-8')
payload = json.loads(data)
print(f"Received: {payload}")
배포
bash
# 2세대 HTTP 함수 배포
gcloud functions deploy hello-world \
--gen2 \
--runtime nodejs20 \
--trigger-http \
--allow-unauthenticated \
--region asia-northeast3 \
--memory 256MB \
--timeout 60s
Cloud Functions vs Cloud Run
| 항목 | Cloud Functions | Cloud Run |
|---|
| 실행 단위 | 단일 함수 | 컨테이너 |
| 최대 실행 시간 | 60분 (2세대) | 60분 |
| 커스터마이징 | 제한적 | 완전 커스텀 |
| 동시성 | 함수당 1 (기본) | 1000 (기본) |
관련 문서