반응형
* Cloud Function: GCP의 이벤트 기반 서버리스 플랫폼 (= AWS Lambda)
오늘은 지난 번에 만든 airflow 특정 DAG의 running 시간을 체크하는 코드를 GCP의 cloud function에서 돌려본다.
언어는 NodeJS를 사용하고, 파일은 index.js, package.json, markdown.json을 사용한다.
이전코드: https://countrymouse.tistory.com/entry/airflowdag
Airflow에서 특정 DAG의 실행 시간을 현재시간과 비교하여 slack으로 메시지를 보내주는 코드.
배경 GCP의 airflow에서 특정 DAG의 마지막 batch 시간 start_time을 '현재 시간'과 비교해서, 30분이상 차이가 날 경우, slack으로 알람을 보내줄 것이다. (30분이상 차이가 난다면 배치가 제대로 돌고 있지
countrymouse.tistory.com
* GCP cloud function은, AWS lambda와는 다르게 node_modules를 별도로 첨부하지 않는다.
그냥 코드만 올려두고 배포를 실행하면, GCP가 알아서 빌드를 하고 node_modules를 내부적으로 만들어준다.
(그래서 빌드 시간이 더 오래 걸림)
나는 이전 포스팅의 코드를 그대로 사용하며,
serverless는 이벤트에 의해 코드가 Trigger 되기 때문에 exports handler를 사용한다.
함수는 export handler 안에서 main을 호출하고 200을 보낸 후 종료된다.
exports.start = async (req, res) => {
await main();
res.send(200);
}
|
그렇게 코드를 배포 후, 로그를 확인해보면 Function이 정상 started 되고 로그도 잘 찍힌 것을 볼 수 있다.

반응형
'직장생활 > AWS, GCP' 카테고리의 다른 글
AWS lambda에서 git 쓰기/사용 (0) | 2022.07.06 |
---|---|
[GCP] Cloud Scheduler: Cloud function 주기적으로 호출하기 (0) | 2022.06.27 |
[AWS] CI/CD pipeline 구축 5. AWS Codepipeline: Codebuild -> Deploy(ECS fargate) 생성 (0) | 2022.06.08 |
[AWS] CI/CD pipeline 구축 4. AWS Codepipeline: S3 -> Codebuild + ECR 연동 (0) | 2022.06.08 |
[AWS] CI/CD pipeline 구축 3. Lambda -> S3로 패키지 업로드 (0) | 2022.06.08 |