Skip to content
2글자 이상 입력하세요
cloudflare으로

Wrangler CLI

6 min 읽기
cloudflarewranglercliworkerspagesdeployment

Wrangler CLI

Wrangler는 Cloudflare Workers와 Pages를 빌드, 배포, 관리하기 위한 공식 CLI 도구입니다.

시스템 요구사항

요구사항버전
Node.jsCurrent, Active, Maintenance 버전
macOS13.5 이상
Windows11 이상
Linuxglibc 2.35 이상

Node.js 설치 시 Volta 또는 nvm을 사용하면 권한 문제를 피할 수 있습니다.

설치

프로젝트의 개발 의존성으로 Wrangler를 설치합니다:

Terminal window
# npm
npm i -D wrangler@latest
# yarn
yarn add -D wrangler@latest
# pnpm
pnpm add -D wrangler@latest

로컬 설치의 장점:

npx wrangler를 실행할 때 Wrangler가 설치되어 있지 않으면 자동으로 최신 버전을 사용합니다. 이는 팀 환경에서 불일치를 유발할 수 있으므로 명시적 설치를 권장합니다.

버전 확인

Terminal window
npx wrangler --version
# 또는
npx wrangler -v

인증

OAuth 로그인 (권장)

Terminal window
# 브라우저에서 Cloudflare 계정으로 로그인
npx wrangler login
# 로그아웃
npx wrangler logout
# 현재 인증된 사용자 확인
npx wrangler whoami

API 토큰 사용

CI/CD 환경에서는 환경 변수로 API 토큰을 설정합니다:

Terminal window
export CLOUDFLARE_API_TOKEN="your_api_token"

주요 명령어

프로젝트 초기화

Terminal window
# 새 프로젝트 생성
npx wrangler init my-worker
# 기존 디렉토리에서 초기화
npx wrangler init

개발 서버

Terminal window
# 로컬 개발 서버 시작
npx wrangler dev
# 특정 환경으로 개발
npx wrangler dev --env staging

로컬 서버가 시작되면 http://localhost:8787에서 Worker를 테스트할 수 있습니다.

배포

Terminal window
# 기본 환경에 배포
npx wrangler deploy
# 특정 환경에 배포
npx wrangler deploy --env staging
npx wrangler deploy --env production

wrangler publish는 deprecated되었습니다. wrangler deploy를 사용하세요.

로그 확인

Terminal window
# 실시간 로그 스트리밍
npx wrangler tail
# 특정 Worker의 로그
npx wrangler tail my-worker

Secret 관리

Terminal window
# Secret 생성/업데이트
npx wrangler secret put API_KEY
# Secret 목록 조회
npx wrangler secret list
# Secret 삭제
npx wrangler secret delete API_KEY

package.json 스크립트 설정

자주 사용하는 명령어를 npm 스크립트로 등록합니다:

{
"scripts": {
"dev": "wrangler dev",
"deploy": "wrangler deploy",
"deploy:staging": "wrangler deploy --env staging",
"deploy:production": "wrangler deploy --env production",
"tail": "wrangler tail"
}
}

wrangler.toml 설정

프로젝트 루트에 wrangler.toml 파일을 생성하여 Worker를 설정합니다:

기본 설정

name = "my-worker"
main = "./src/index.js"
compatibility_date = "2024-01-01"
# Workers.dev 서브도메인 사용
workers_dev = true
# 또는 커스텀 도메인/라우트 사용
# route = "example.com/*"

환경별 설정

name = "my-worker"
main = "./src/index.js"
# 기본 환경 (개발)
workers_dev = true
# 스테이징 환경
[env.staging]
route = "staging.example.com/*"
workers_dev = false
# 프로덕션 환경
[env.production]
route = "example.com/*"
workers_dev = false

KV Namespace 바인딩

main = "./src/index.js"
kv_namespaces = [
{ binding = "MY_KV", id = "06779da6940b431db6e566b4846d64db" }
]
[env.production]
kv_namespaces = [
{ binding = "MY_KV", id = "07bc1f3d1f2a4fd8a45a7e026e2681c6" }
]

R2 Bucket 바인딩

main = "./src/index.js"
r2_buckets = [
{ binding = "MY_BUCKET", bucket_name = "my-bucket-name" }
]

D1 Database 바인딩

main = "./src/index.js"
[[d1_databases]]
binding = "DB"
database_name = "my-database"
database_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

Durable Objects 바인딩

main = "./src/index.js"
[[durable_objects.bindings]]
name = "MY_DURABLE_OBJECT"
class_name = "MyDurableObject"

Service 바인딩

main = "./src/index.js"
services = [
{ binding = "AUTH_SERVICE", service = "auth-worker" }
]

명령어 레퍼런스

명령어설명
wrangler init새 프로젝트 초기화
wrangler dev로컬 개발 서버 시작
wrangler deployWorker 배포
wrangler tail실시간 로그 확인
wrangler secretSecret 관리
wrangler kvKV 관리
wrangler r2R2 스토리지 관리
wrangler d1D1 데이터베이스 관리
wrangler pagesPages 프로젝트 관리
wrangler loginOAuth 로그인
wrangler logout로그아웃
wrangler whoami현재 사용자 확인

Deprecated 명령어

v1 명령어대체 방법
wrangler publishwrangler deploy 사용
wrangler previewwrangler dev 사용
wrangler generategit clone 사용
wrangler build직접 빌드 스크립트 실행
wrangler configwrangler login 또는 환경 변수 사용

출처: Cloudflare Workers - Wrangler


이전 글

Serving Pages