-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdeploy.sh
More file actions
78 lines (68 loc) · 2.21 KB
/
deploy.sh
File metadata and controls
78 lines (68 loc) · 2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/bash
# 빌드 환경 설정
BUILD_DIR="build"
DIST_DIR="$BUILD_DIR/dist"
LAYER_DIR="$BUILD_DIR/layer"
LAMBDA_ZIP="$BUILD_DIR/lambda.zip"
LAYER_ZIP="$BUILD_DIR/layer.zip"
# 이전 빌드 정리
rm -rf $BUILD_DIR
mkdir -p $BUILD_DIR
echo "=== Lambda 함수 배포 패키지 생성 ==="
# 배포용 디렉토리 생성
mkdir -p $DIST_DIR/src/browsers
mkdir -p $DIST_DIR/src/config
mkdir -p $DIST_DIR/src/core
mkdir -p $DIST_DIR/src/scrapers
mkdir -p $DIST_DIR/src/scrapers/platforms
mkdir -p $DIST_DIR/src/types
mkdir -p $DIST_DIR/src/utils
mkdir -p $DIST_DIR/src/aws
mkdir -p $DIST_DIR/src/notification
mkdir -p $DIST_DIR/src/env
mkdir -p $DIST_DIR/src/collectors
# Lambda용 package.json 생성 (의존성 제거)
cat > $DIST_DIR/package.json << 'EOF'
{
"name": "webtoon-web-crawler",
"version": "1.0.0",
"description": "Webtoon web crawler using Puppeteer",
"main": "index.js",
"type": "module"
}
EOF
# CommonJS 브릿지 파일 생성
cat > $DIST_DIR/index.cjs << 'EOF'
// index.cjs - CommonJS to ES Module bridge
module.exports.handler = async (event) => {
const { handler } = await import('./index.js');
return handler(event);
};
EOF
# 소스 파일 복사
echo "소스 파일 복사 중..."
cp index.js $DIST_DIR/
cp -r src/browsers/* $DIST_DIR/src/browsers/
cp -r src/config/* $DIST_DIR/src/config/
cp -r src/core/* $DIST_DIR/src/core/
cp -r src/scrapers/*.js $DIST_DIR/src/scrapers/
cp -r src/scrapers/platforms/* $DIST_DIR/src/scrapers/platforms/
cp -r src/types/* $DIST_DIR/src/types/
cp -r src/utils/* $DIST_DIR/src/utils/
cp -r src/env $DIST_DIR/src/
cp -r src/aws $DIST_DIR/src/
cp -r src/notification $DIST_DIR/src/
cp -r src/collectors/* $DIST_DIR/src/collectors/
cp -r src/scrapers/* $DIST_DIR/src/scrapers/
# ZIP 파일 생성 (node_modules 제외)
echo "Lambda 배포 패키지 생성 중..."
zip -r $LAMBDA_ZIP $DIST_DIR/*
lambdaSize=$(du -h $LAMBDA_ZIP | cut -f1)
echo "Lambda 함수 배포 패키지 생성 완료: $LAMBDA_ZIP"
echo "패키지 크기: $lambdaSize"
echo "참고: 의존성은 Lambda Layer를 통해 제공되어야 합니다."
echo ""
echo "=== 빌드 완료 ==="
echo "빌드 결과 위치: $BUILD_DIR"
echo "Lambda 함수: $LAMBDA_ZIP"
echo "Layer 생성: npm run build:layer:unix"