AWS Cloud9에서 생성한 AWS Lambda 함수로 kintone Webhook 알림 수신

AWS Cloud9에서 만든 Lambda 함수에 kintone의 Webhook 알림을 던져 결과를 확인해 봅니다.

AWS Cloud9에서 미리 작성한 Lambda 함수(blue print)를 바탕으로 진행합니다.
여기까지의 작업은 AWS Cloud9에서 AWS Lambda를 개발하는 환경 구축 를 참고해 주세요.

전제 조건


  • Cloud9 환경 생성
  • CodeCommit 환경 생성
  • API Gateway 환경 생성
  • AWS Lambda 환경 생성

  • kintone Webhook 설정



    작성한 blue print 그대로의 코드의 Lambda 함수에 Webhook 통지를 던져 보겠습니다.

    Webhook 알림 설정



    앱 설정 변경 → 설정 탭 → Webhook을 선택합니다.


    Webhook의 설정값을 입력합니다.
    Webhook URL에 생성한 Lambda 함수에 연결된 API Gateway의 끝점을 입력합니다.


    상태 업데이트 알림을 사용하도록 설정한 후 프로세스 관리를 활성화합니다.


    앱을 업데이트합니다.

    Webhook 알림 테스트



    레코드 추가, 편집, 삭제, 주석 작성, 상태 업데이트를 순차적으로 테스트해 보십시오.

    레코드 추가



    앱에서 새 레코드를 만들고 저장합니다.


    kintone Webhook 로그 확인



    앱 설정 → Webhook → Webhook 로그에서 로그를 확인합니다.


    감사 로그도 확인합니다.


    Cloud Watch 로그 확인



    AWS Cloud Watch 로그를 검토합니다.

    kintone의 레코드를 볼 수 있습니다.

    Lambda 함수



    index.js
    "use strict";
    let sc; // Status code
    let result = "";
    exports.handler = function(event, context, callback) {
        console.log(event);
        const kintonePost = JSON.parse(event.body);
        console.log(kintonePost);
        sc = 200;
        result = "kintone POST success!";
        const response = {
          statusCode: sc,
          headers: { "Content-type": "application/json" },
          body: JSON.stringify( result )
        };
       callback(null, response);
    };
    

    kintone Webhook에서 수신한 POST 요청을 그대로 로그에 출력하고 있습니다.callback 에서 kintone에 상태 코드를 반환합니다.

    API Gateway에서 얻은 kintone Webhook 요청은 핸들러 함수의 이벤트 변수에 들어옵니다.

    kintone record 의 내용은 event.body 에 들어 있으므로, JSON.parse 하고 JavaScript 의 객체로 변환하고 있습니다.

    레코드의 내용에 액세스하려면, 예를 들어 [$id] 의 경우는 다음과 같습니다.
    JSON.parse(record.body).kintonePost.record['$id'].value

    관련 링크



    AWS 관련


  • AWS Cloud9 Integrated Development Environment(IDE)에서 AWS Lambda 함수 작업
  • AWS CloudFormation
  • AWS Cloud9에서 생성한 Lambda 함수에서 환경 변수 사용
  • 환경 변수를 사용하는 Lambda 함수 호출

  • Node.js 관련


  • Request - Simplified HTTP client
  • 좋은 웹페이지 즐겨찾기