S3에서 AWS Lambda를 사용하기 위한 Terraform 설정하는 방법
버킷 만들기

최근에 들어오는 S3 파일을 수정하고 싶은 시나리오를 접했습니다. 그렇게 하는 가장 좋은 방법은 새 파일이 S3에 업로드될 때마다 AWS Lambda 함수를 실행하는 이벤트 트리거를 사용하는 것입니다. S3 버킷, 이벤트 알림 및 Lambda 함수를 생성하는 프로세스는 콘솔을 사용하는 동안 매우 간단하지만 Terraform을 사용하는 동안에는 약간 까다로울 수 있습니다.
기본 Terraform 설정이 이미 있다고 가정하고 먼저 버킷을 구축하는 방법을 살펴보겠습니다.
버킷 이름과 같은 변수의 경우 값을 별도의 파일에 로컬 변수로 저장하거나 여기에 간단히 인용할 수 있습니다. 서버 측 암호화를 원하는지 여부는 선택 사항이며 일반적으로 사용 사례에 따라 다릅니다.
시작하려면 다음을 생성해야 합니다. src
Lambda 함수에 대한 Python 코드가 포함될 디렉터리입니다.
terraform
│ buckets.tf
│ lambda.tf
│ notifications.tf
│ permissions.tf
│ ...
└───src
│ │ conversion_lambda_python_file.py
│ │
│ │
여기에서 Python 파일에 지정한 파일 이름은 나중에 Lambda의 Terraform 설정을 위한 핸들러 값으로 사용됩니다. Lambda 함수에는 lambda_handler
. 다음과 같이 보일 수 있습니다.
이벤트 키를 읽는 방법에 유의하십시오. lambda_handler
기능. 이제 Lambda의 Terraform 설정은 다음과 같이 보일 수 있습니다.
archive_file 모듈은 Python 파일의 아카이브를 생성한 다음 Lambda 함수 내에서 사용할 수 있습니다. 환경 변수를 Lambda 함수에 전달할 수도 있습니다.
한 가지 주의할 점은 기본적으로 Lambda는 3초의 제한 시간과 128MB의 메모리만 있다는 것입니다. 처리하려는 S3 파일 수에 따라 다음 매개변수를 최대값으로 변경할 수 있습니다.
메모리 크기 = 10240
시간 초과 = 900
이제 새 파일이 S3에 업로드될 때마다 Lambda 함수를 트리거하는 이벤트 알림을 생성해야 합니다. 예를 들어 파일이 제거되거나 복원될 때 Lambda 함수도 실행하려는 경우 이벤트 파라미터를 수정할 수 있습니다.
S3 버킷의 특정 폴더만 고려하려는 경우 폴더 이름을 필터 접두사로 추가할 수 있습니다. 마찬가지로 트리거를 유발할 수 있는 특정 유형의 파일만 고려하려는 경우 파일 확장자를 필터 접미사 매개변수로 추가할 수 있습니다.
Lambda 함수를 호출할 수 있도록 S3 버킷에 필요한 권한도 부여해야 한다는 사실을 잊지 마십시오.
Terraform 설정에 사용하는 역할에 관계없이 디버깅을 위한 S3 또는 Cloudwatch 로그에 대한 액세스와 같은 다른 권한 정책도 필요합니다.
역할에 특정 버킷에 대한 특정 작업에만 권한을 부여하려는 경우 전체가 아닌 리소스 옵션에서 관련 리소스를 지정할 수도 있습니다.
그리고 그것은 대부분 그것에 관한 것입니다!
다른 기사에서 AWS 콘솔을 사용하여 동일한 작업을 수행하는 방법을 설명했습니다. 여기에서 자세한 내용을 읽을 수 있습니다.
'Coding' 카테고리의 다른 글
변경 로그를 만들고 업데이트하기 위해 Bash 스크립트를 작성하는 방법 (0) | 2022.04.21 |
---|---|
SwiftUI 아래 SceneKit에서 카메라 관리하는 방법 (0) | 2022.04.19 |
Django 프로젝트를 위해 알아야 할 리팩터 정리 (0) | 2022.04.16 |
요소를 검사하는 방법 – Chrome 바로 가기 (0) | 2022.04.15 |
Vapor 및 Postgres를 사용한 서버 측 스위프트 (0) | 2022.04.14 |
댓글