AWS Lambda Cron (feat. apex)

AWS Lambda?

Cron?

apex?

AWS Lambda란?

AWS Lambda는 이벤트에 응답하여 코드를 실행하고 자동으로 기본 컴퓨팅 리소스를 관리하는

서버 없는 컴퓨팅 서비스입니다.

좀 더 정확히 말하면....

3,000원이라고 들어갔더니 옵션가 +4000원 느낌..

exports.handler = function(event, context, callback) {
   console.log("value1 = " + event.key1);
   console.log("value2 = " + event.key2);  
   callback(null, "some success message");
   // or 
   // callback("some error type"); 
}

Cron Expressions

cron(1 15 * * ? *)

 

Rate Expressions(단순) 

rate(5 minutes)

 

AWS Lambda는 최소 1분단위

초 단위로 무언가를 해야한다면...??

Azure Functions는

단위까지 가능

한국기준으로 오후2시라면 UTC +9시간

05:47:45
 UTC
+

9시간

=

14: 47: 45 KST

매일 00시 01분에

Task를 돌릴게 있다.

 

cron(1 15 * * ? *)

Lambda 함수를 Deploy하는 방법

1. 인라인으로 한다 -> 거의 안할 가능성이...
2. 라이브러리를 함께 포함해서 업로드 한다.

zip -r index.zip ./

웹브라우져 열고 AWS 콘솔을 열어서 업로드

 

zip -r index.zip ./

웹브라우져 열고 AWS 콘솔을 열어서 업로드

 

zip -r index.zip ./

웹브라우져 열고 AWS 콘솔을 열어서 업로드

 

while (true) {
  zip -r index.zip ./
  웹브라우져 열고 AWS 콘솔을 열어서 업로드

  zip -r index.zip ./
  웹브라우져 열고 AWS 콘솔을 열어서 업로드

  zip -r index.zip ./
  웹브라우져 열고 AWS 콘솔을 열어서 업로드
}

기존 방식의 문제점

꼭 업로드나 실행은 웹에서만?
lambda 버젼관리를 할려면?

lambda가 여러개라면?

lambda들간에 공통으로 쓰는 라이브러리가 있다면?

Build, deploy, and manage AWS Lambda functions with ease (with Go support!).

 Express

Jade

Mocha

 

Node 진영에서

많은것을 만든

인간이 아닌 분

Why Apex?

꼭 업로드나 실행은 웹에서만?

 

 

lambda 버젼관리를 할려면?

lambda가 여러개라면?

lambda들간에 공통으로 쓰는 라이브러리가 있다면?

Apex 사용하기

위해서 필요한것들

AWS IAM Policy

 

Identity and

Access

Management

 

http://apex.run/#minimum-iam-policy

CSV 파일 다운로드

aws_access_key_id

aws_secret_access_key

 

/.aws/config 파일에 저장

 

Apex Error Handling

~/.aws/credentials && ~/.aws/config

2개 모두 존재할때 `apex init`를 하면 에러가 납니다.

$ export AWS_SDK_LOAD_CONFIG=1
Made with Slides.com