obniz의 서버리스 이벤트에서의 풀 포인트 & Tips

4964 단어 obniziftttserverless
obniz를 사용하고 있으면 서버리스 이벤트를 활용하는 타이밍이 있다고 생각합니다.

특히 12월 발매 예정인 obniz board 1Y에서는 슬립을 사용할 수 있게 되므로 서버리스 이벤트를 사용하면 그 밖에 아무것도 준비하지 않고 센싱하는 IoT 서비스를 만들 수 있습니다.



이번에는 내가 서버리스 이벤트를 만드는 데 있어서 빠진 포인트와 Tips를 정리합니다.

서버리스 이벤트란?



공식 문서 : h tps : // 오 b에 ... 이오 / 그럼 / 어느 c / 오 b에 z_c ぉ d / 아보 t_에 ょ t

obniz를 사용하려면 외부에 obniz를 사용하기 위한 프로그램이 필요하지만 obniz 클라우드의 이벤트 기능을 사용하면 서버리스로 프로그램을 동작시킬 수 있습니다.

obniz Event는 미리 설정한 트리거가 발생했을 때 등록해 둔 프로그램을 자동으로 클라우드에서 실행하는 서비스입니다.
이렇게하면 프로그램을 직접 실행하지 않고 트리거와 프로그램 만 설정하여 무언가가 발생했을 때 클라우드에서 자동으로 처리 할 수 ​​있습니다.

위 공식에서 인용했지만 나의 말로 정리하면, 서버를 준비하지 않아도 각자 작성한 프로그램을, 후술하는 트리거를 계기로 실행해 오는 툴이라고 하는 느낌일까요?

트리거


  • Webhook (API 생성)
  • 주어진 시간 (예 : 11:11)
  • 정해진 시간 간격 (예 : 1 시간마다)
  • obniz가 온라인 상태가되면
  • obniz 버튼을 누르면

  • 현재 5개의 트리거가 있습니다.
    지정된 obnizID로 지정된 트리거가 있을 때, 각자의 프로그램이 실행됩니다.

    제한사항



    11/27 현재
  • 실행할 수 있는 시간은 30초 이내, 그 이상은 종료된다
  • 하루에 실행 가능한 횟수는 120 회

  • 조금 제약은 있지만 예를 들어 센서의 값을 취득하는 프로그램이라면 12분에 1회는 데이터를 저장할 수 있습니다.

    마리 포인트



    API를 사용할 때



    다음과 같이 API를 사용할 때 오류가 발생할 수 있습니다.
    await fetch('https://maker.ifttt.com/trigger/obniz_temp/with/key/', {
      method: 'POST',
      mode: "no-cors",
      body: formData
    }).then(()=>console.log("success")).catch((error) => console.log(error));
    



    이 때 API를 호출 한 후 await obniz.wait(1000)를 넣으면 오류가 발생하지 않습니다.

    Tips



    절대 수면



    센서의 값 읽기 등 예기치 않은 곳에서 프로그램이 정지해 버리는 등 가능성이 있습니다.

    배터리가 작동하는 장치에서는 이 문제가 중요하므로 서버리스 이벤트가 종료되기 전에 절전 모드를 사용해야 합니다.

    (obniz board 1Y에서만 사용할 수 있습니다.)
     //Timeout 25s
    let tid = setTimeout(()=>{
      let dt = new Date();
      dt.setMinutes(Math.floor(dt.getMinutes()/10)*10+10,0,0);
      obniz.sleep(dt);
      obniz.close();
    },25000);
    

    이런 느낌으로 슬립하는 프로그램을 obniz.onconnect 밖에서도 호출하면 문제 없을까 생각합니다.

    그 밖에 Tips가 있으면 추기해 가려고 생각합니다.

    요약



    obniz의 편리한 기능인 서버리스 이벤트, 그 마리 포인트와 Tips를 간단하게 정리했습니다.

    정기적으로 센싱하고 싶다고 생각하면 꼭 한번 만져 보면 좋을 것입니다!

    좋은 웹페이지 즐겨찾기