Python + AWS Lambda + API Gateway에서 LINE BOT



API Gateway + AWS Lambda에서 놀기 위해 LINE BOT을 만들었으므로 소개.
LINE BOT을 만드는 방법은 공식 문서와 Python SDK가 충실하기 때문에 생략합니다.

소스 코드는 Github에서 공개하고 있으므로 좋으면 참조하십시오.
  • htps : // 기주 b. 코 m / c-바타 / 챠세 - 네보 t

  • 기능 목록



    구현된 기능


    newsweather 커멘드는 이야기의 재료에 좋고, 아는 사람이 실제로 그룹으로 사용해 주는 것 같다.
    그리고 의외로 choice 커멘드도 상당히 사용되고 있다.


    기능
    모습


    Greeting


    Choice


    Shuffle


    Weather


    뉴스



    뉴스는 처음에는 야후 뉴스의 RSS에서 찍었지만, Google 뉴스는 미리보기 이미지를 찍을 수 있었기 때문에 대체했습니다.

    하고 싶은 일



    불러온 횟수도 기록하고 시각화 할 수 있다면 재미있을지도 모릅니다.

    일보를 LINE으로 관리하고 싶습니다.
  • Slack보다 스마트 폰에서 살짝 열립니다
  • 이것도 어딘가에서 볼 수 있으면 좋을지도


  • 이런 것이 있으면, 편리하다고 하는 것이 있으면, 코멘트라든지 기다리고 있습니다.

    Python의 Serverless Framework



    여기에서 조금 기술적인 이야기.
    Lambda만이라면 프레임워크는 사용하지 않아도 AWS CLI에서 쉽게 다룰 수 있지만 API Gateway는 AWS CLI에서 작업하는 것이 매우 어렵습니다. 아직 브라우저에서 AWS 웹사이트를 열고 수동으로 조작하는 편이 쉬울까라는 인상이었습니다.
    엔드포인트가 늘어나면 API Gateway 설정을 잘 해주는 프레임워크가 없으면 엄격합니다.

    살펴보면 파이썬에서 인기있는 Serverless Framework가 두 가지 있습니다.
  • htps : // 기주 b. 코 m / 미세 r ぉ 우 / 잔파
  • htps : // 기주 b. 코 m / 아 ws ぁ bs / 챠세

  • Zappa



    처음에는 Zappa 코드를 살펴 보았습니다. API Gateway에서 Lambda로 전달되는 이벤트를 WSGI Environ으로 변환하고 Flask 및 Django와 같은 WSGI 프레임 워크를 실행할 수 있습니다. 나중에 배포할 때 각 프레임워크의 URL 정의에서 AWS CloudFormation용 파일을 생성하여 API Gateway를 설정해 주는 것 같습니다.

    Chalice



    Chalice는 Zappa와 달리 WSGI로 변환하지 않으며 API Gateway에 특화되어 있습니다. 쓸데없는 일만 하고 있어, 소스 코드도 알기 쉽네요. Zappa의 경우, Flask의 기능에서도 API Gateway를 통해 정말로 움직이는지 생각하지 않으면 안됩니다만, chalice의 다큐멘테이션에 써 있는 기능은 제대로 움직이는 안심감도 있군요.

    이번은 Chalice를 채용해 보았습니다만, 이쪽은 코드도 심플하고 꽤 취급하기 쉽습니다.

    요약


  • LINE BOT 만들기
  • LINE BOT의 기능.
  • chalice 매우 좋음
  • API Gateway도 JSON의 Web API라면 빨리 만들 수 있다
  • 요청이나 응답의 payload가 10MB까지의 제약이 있으므로 파일·이미지의 업로드라든가 하고 싶은 경우는 주의해 주세요.


  • 좋은 웹페이지 즐겨찾기