Skip to content

Commit 6f0bb64

Browse files
authored
Merge pull request #23 from snorose/develop
Release_20260128
2 parents 70ca34b + 2a1f495 commit 6f0bb64

4 files changed

Lines changed: 83 additions & 56 deletions

File tree

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: Deploy to Lambda (ECR)
2+
3+
on:
4+
push:
5+
branches: [ "develop", "main" ]
6+
7+
# OIDC 인증을 위한 권한 설정
8+
permissions:
9+
id-token: write
10+
contents: read
11+
12+
jobs:
13+
deploy:
14+
name: Build, Push to ECR, and Deploy to Lambda
15+
runs-on: ubuntu-latest
16+
17+
# 브랜치에 따라 사용할 환경 선택
18+
environment: ${{ github.ref == 'refs/heads/main' && 'PROD' || 'DEV' }}
19+
20+
steps:
21+
- name: Checkout code
22+
uses: actions/checkout@v4
23+
24+
# AWS 자격 증명 설정
25+
- name: Configure AWS credentials
26+
uses: aws-actions/configure-aws-credentials@v4
27+
with:
28+
role-to-assume: ${{ vars.AWS_ROLE_ARN }}
29+
aws-region: ${{ vars.AWS_REGION }}
30+
31+
# Amazon ECR 로그인
32+
- name: Login to Amazon ECR
33+
id: login-ecr
34+
uses: aws-actions/amazon-ecr-login@v2
35+
36+
# Docker 이미지 빌드 및 푸시
37+
- name: Build, tag, and push image to Amazon ECR
38+
id: build-image
39+
env:
40+
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
41+
ECR_REPOSITORY: ${{ vars.ECR_REPOSITORY_NAME }}
42+
IMAGE_TAG: ${{ github.sha }}
43+
run: |
44+
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG -t $ECR_REGISTRY/$ECR_REPOSITORY:latest -f Dockerfile .
45+
46+
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
47+
docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest
48+
49+
echo "image_uri=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_OUTPUT
50+
51+
# Lambda 함수 업데이트
52+
- name: Deploy new image to AWS Lambda
53+
run: |
54+
aws lambda update-function-code \
55+
--function-name ${{ vars.LAMBDA_FUNCTION_NAME }} \
56+
--image-uri ${{ steps.build-image.outputs.image_uri }}
57+
58+
# 코드 업데이트가 완료될 때까지 대기
59+
- name: Wait for Lambda function update to complete
60+
run: |
61+
aws lambda wait function-updated \
62+
--function-name ${{ vars.LAMBDA_FUNCTION_NAME }}
63+
64+
# Lambda 환경 변수 설정
65+
- name: Update Lambda Environment Variables
66+
run: |
67+
aws lambda update-function-configuration \
68+
--function-name ${{ vars.LAMBDA_FUNCTION_NAME }} \
69+
--environment "Variables={ \
70+
REGION_NAME=${{ vars.AWS_REGION }}, \
71+
LAMBDA_FUNCTION_NAME=${{ vars.LAMBDA_FUNCTION_NAME }}, \
72+
ECR_REPOSITORY_NAME=${{ vars.ECR_REPOSITORY_NAME }}, \
73+
BUCKET_NAME=${{ vars.BUCKET_NAME }}, \
74+
THUMBNAIL_BUCKET=${{ vars.THUMBNAIL_BUCKET }} \
75+
}"

.github/workflows/dev-deploy-lambda.yaml

Lines changed: 0 additions & 49 deletions
This file was deleted.

lambda_compare.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33
import base64
44
import re
55
import time
6+
import os
67

7-
REGION_NAME = "ap-northeast-2"
8-
BUCKET_NAME = "snorose-bucket"
8+
REGION_NAME = os.environ.get('REGION_NAME')
9+
BUCKET_NAME = os.environ.get('BUCKET_NAME')
910
IMAGE_KEY = "test/12345/test_video.mp4"
10-
FUNC_CON = "CreateThumbnail"
11-
FUNC_IMG = "CreateThumbnailECR"
11+
LAMBDA_FUNCTION_NAME = os.environ.get('LAMBDA_FUNCTION_NAME')
12+
ECR_REPOSITORY_NAME = os.environ.get('ECR_REPOSITORY_NAME')
1213

1314
client = boto3.client('lambda', region_name=REGION_NAME)
1415

@@ -91,9 +92,9 @@ def run_test(func_name, label):
9192
print("=== Lambda 성능 비교 테스트 시작 ===\n")
9293

9394
# Console 버전 테스트
94-
run_test(FUNC_CON, "Console Version")
95+
run_test(LAMBDA_FUNCTION_NAME, "Console Version")
9596

9697
# Container 버전 테스트
97-
run_test(FUNC_IMG, "Container Image Version")
98+
run_test(ECR_REPOSITORY_NAME, "Container Image Version")
9899

99100
print("\n=== 테스트 완료 ===")

lambda_function.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import subprocess
55

66
s3_client = boto3.client('s3')
7-
thumbnail_bucket = 'snorose-public-bucket'
7+
thumbnail_bucket = os.environ.get('THUMBNAIL_BUCKET')
88

99
IMG_EXT_LIST = ["jpg","jpeg","png","jfif","bmp","webp"]
1010
VDO_EXT_LIST = ["mp4","mov"]

0 commit comments

Comments
 (0)