여러가지 삽질을 했지만 아래와 같은 순서로 진행.
우선 파이썬으로 batch에서 수행할 내용을 코딩 해야 하는데 그 전에
SAM 이라는 서비스로 template을 만들고 그 안에서 코딩하는게 좋다.
이 서비스를 이용하게된 이유는 기존 lambda 함수에 python library 계층을 만들어서 넣으려고 하니
GCP 에서 쓰는 아래 라이브러리들에서 cython 에러가 나면서 import가 되지 않았다.
google-api-core==2.15.0
google-api-python-client==2.111.0
sam init \
--runtime python3.10 \
--name Service-Sample \
--app-template hello-world
위처럼 sam init으로 프로젝트를 만들면 자동으로 여러가지 소스들이 생기는데
app.py 에 들어가는 내용이 기존에 aws 의 lambda 함수에 작성하던 내용이다.
aws lambda (애플리케이션) -> sam cli
SAM : AWS Serverless Application Model
이거 Build 하려면 PC에 Docker 깔려 있어야 함
SAM 명령어 참고
ga4 data api 를 사용하기 위해 credential json을 프로젝트 안해 넣고 실행에 성공
그 뒤에는
sam build --use-container
명령어 실행, 이때 docker 가 깔려 있어야 됨.
그 이후에
sam deploy 하면
template.yml 안에 있는 정보들을 참고 하여 AWS cloudformation 이라는 아이가
소스가 올라갈 S3도 생성하고 lambda 도 생성하고 연결할 API gateway 까지 만들어서 완성을 해준다.
이 모든게 5분 정도 안에 완성.
그러고 API 를 실행하면 수행 되고, lambda 함수 내에서 Test를 할 수도 있다.
그러고 나서
cloudwatch 에 가서 규칙을 등록하려고 하니 Amazon EventBridge 라는 녀석으로 안내를 해 준다.
이 다음에는 사실 일정 등록하고 lambda를 연결만 해주면 되는데 cron 표현식을 보고 몇번 해보면 등록 할 수 있다.
cron 표현식 참고
https://docs.aws.amazon.com/ko_kr/eventbridge/latest/userguide/eb-cron-expressions.html
이렇게 연결하면 lambda로 batch job 만들기 끝~!
'AWS' 카테고리의 다른 글
aws lambda 파이썬 계층 추가 (0) | 2024.01.10 |
---|---|
API Gateway CORS 문제 해결 (0) | 2023.07.31 |
S3 정적 호스팅 (Cloudfront, Route 53) (0) | 2021.05.11 |
Serverless 프레임워크로 AWS Lambda 시작하기 ( GraphQL포함) (0) | 2021.05.10 |
RDS - MySQL 생성 및 Workbench 연결 (0) | 2021.05.10 |