방금 발표된 AWS Lambda Scheduled Event를 사용하여 Lambda를 스케줄 실행해 봅니다.

4383 단어 람다cronAWS
AWS re:Invent는 염려된 Lambda의 정기 실행을 지원했습니다.

【AWS 발표】AWS Lambda 업데이트 – Python, VPC, 런타임 연장, 스케줄 등

API Gateway와 함께 서버리스 시스템을 구축 할 수 있었지만,
실제로 서비스 등으로 이용하는 경우에는 Lambda의 스케줄 실행을 할 수 없으면 곤란한 경우가 많습니다만,
마침내 지원되었습니다.

그래서 실제로 시도해 보았습니다.
단계는 Lambda 실행을 위한 역할을 만든 다음 Lambda를 만들고 Scheduled Event를 설정하는 흐름입니다.

Lambda 실행 역할 만들기



Lambda를 실행하려면 실행 권한이 있는 역할이 필요하므로 생성합니다.
IAM에서 만들 수 있습니다.
  • 역할 이름 설정
    입력하고 다음 단계를 클릭합니다. 역할 이름은 텍토입니다.
  • 롤 타입 선택
    AWS Lambda를 선택합니다.
  • 정책 첨부
    AWSLambdaBasicExecutionRole을 선택하고 다음 단계를 클릭합니다.
  • 확인 화면
    문제가 없으면 역할 만들기를 클릭합니다.

    이것으로 역할 작성이 완료됩니다.

  • 테스트 실행을 위한 Lambda 만들기


  • Lambda 페이지 열기
    Get Started Now를 클릭합니다.
  • blueprint 선택
    이번에는 테스트이므로 hello-world를 선택합니다.
  • Function을 설정합니다.
    Name에 HelloWorldFunction을 입력하고 Role에 만든 역할을 선택합니다.
    실행하는 코드는 테스트용으로 console 에 Hello World !!! 라고 토하는 것만으로 변경했습니다.
  • 확인 화면
    문제가 없으면 Create function을 클릭하여 function을 만듭니다.
  • function 작성 완료

  • Lambda에 정기 실행 설정



    그런 다음 방금 만든 Function에 대해 일정을 설정합니다.
  • 이벤트 소스 탭 열기
    Add event source 클릭
  • 이벤트 소스 추가
    5분 간격으로 실행되도록 설정합니다. 실제로는 시간 지정도 가능합니다.
    Event souce type 에 Scheduled Event 를 선택.
    이름에 이벤트 이름을 입력합니다.
    Schedule expression 에 rate(5 minutes) 를 선택.
    Enable event source는 Enable now를 선택.
    제출을 클릭합니다.
  • 작성한 이벤트 소스 확인

  • 실제로 정기적으로 실행되거나 CloudWatch에서 확인





    로그에 Lambda에서 console에 뱉은 Hello World !!!!가 표시되므로 성공하네요.

    요약



    어쨌든 쉽게 바삭바삭하고 스케줄 설정을 할 수 있었습니다.
    처음에 언급했듯이 웹 서비스나 앱에서 서비스를 할 때 대부분의 경우 스케줄 실행하는 태스크가 얽혀서 이번 기능 추가로 Lambda의 유용성은 상당히 올랐을까 생각합니다. 게다가 원래 꽤 저렴한 가격이고.

    AWS API Gateway + AWS Lambda + (CloudFront) + DynamoDB + (SPA or NativeApp)와 같은 구성으로 서비스도 운영할 수 있습니다.
    이번 수수하게 API Gateway도 도쿄 리전도 대응한 것 같아서, 모두를 도쿄 리전에서 운영할 수 있기 때문에, 동동 Lambda 를 사용해 가려고 생각했습니다.

    좋은 웹페이지 즐겨찾기