티스토리 뷰
AWS Lambda를 활용한 tar 압축 및 해제 작업
AWS Lambda는 서버리스 컴퓨팅 환경에서 코드를 실행할 수 있는 서비스로, 파일 처리 작업을 자동화하는 데 유용하게 사용될 수 있습니다. 이번 글에서는 Python을 사용하여 tar 압축 및 해제 작업을 AWS Lambda 함수로 구현하는 방법을 알아보겠습니다. 또한, tar 압축 시 arcname 옵션의 활용에 대해서도 다룰 것입니다.
이 글을 작성하는 이유는, 회사에서 AWS Lambda tar 파일 압축해서 S3에 업로드를 하는데 자꾸 /tmp라는 Dir로 압축이 되는 거예요!!!
그래서 이놈을 어떻게 뺄 수 있을까 고민을 하다가 찾게 되었습니다.
이놈인데 이걸
이렇게 이쁘게 만드는 방법 한번 해보겠습니다.
tar 압축 함수
아래는 tar 압축 작업을 수행하는 Lambda 함수의 예시 코드입니다:
import tarfile
def compress_tar(event, context):
input_file = event['input_file']
output_file = event['output_file']
arcname = event['arcname'] # arcname 옵션을 이용하여 압축 파일 내의 디렉토리 구조를 지정할 수 있음
with tarfile.open(output_file, "w:gz") as tar:
tar.add(input_file, arcname=arcname)
print(f"Successfully compressed {input_file} to {output_file}")
이때, arcname 옵션을 이용하여 압축 파일 내의 디렉토리 구조를 지정할 수 있습니다. 이 옵션을 활용하면, 압축 파일 내의 파일 및 디렉토리를 원하는 구조로 조정할 수 있습니다.
arcname 옵션은 tar 압축 시 압축 파일 내의 디렉토리 구조를 지정하는 데 사용됩니다. 이 옵션을 활용하면, 압축 파일 내의 파일 및 디렉토리를 원하는 구조로 조정할 수 있습니다. 예를 들어, arcname 옵션을 사용하여 압축 파일 내의 디렉토리 이름을 변경하거나, 상위 디렉토리를 포함하지 않고 파일을 압축할 수 있습니다.
tar 해제 함수
아래는 tar 해제 작업을 수행하는 Lambda 함수의 예시 코드입니다:
import tarfile
def extract_tar(event, context):
input_file = event['input_file']
output_dir = event['output_dir']
with tarfile.open(input_file, "r:gz") as tar:
tar.extractall(output_dir)
print(f"Successfully extracted {input_file} to {output_dir}")
AWS Lambda를 활용하여 Python으로 tar 압축 및 해제 작업을 자동화하는 방법을 소개했습니다. 또한, arcname 옵션을 활용하여 압축 파일 내의 디렉토리 구조를 지정할 수 있음을 다루었습니다. 이를 통해 쉽고 빠르게 파일 처리 작업을 자동화할 수 있습니다.
'Dev Story > AWS' 카테고리의 다른 글
AWS Step Function 입문해보기 - 람다편 (2) | 2023.04.21 |
---|---|
AWS CDK Lambda & Athena (0) | 2023.04.16 |
Getting Started with AWS Autogluon: A Step-by-Step Guide (0) | 2023.03.15 |
AWS CodeWhisperer를 활용한 코드 작성 (0) | 2023.03.04 |
AWS EC2 EBS 볼륨 증설하기 (용량 늘리기) (0) | 2023.03.03 |
- Total
- Today
- Yesterday
- frontend
- 딥러닝
- Redis
- lambda
- svelte
- ubuntu
- MongoDB
- EC2
- GPT
- svelte 따라해보기
- 따라하기
- docker
- 한식
- cloudcomputing
- typescript
- DevOps
- ChartGPT
- 실습
- python
- 따라해보기
- AWS
- Docker 관리
- AI
- nestjs
- 쉽게따라하기
- Containerization
- ML
- 티스토리
- 개발이야기
- 클라우드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |