GAS에서 트리거를 작성할 때의 주의점

5999 단어 gas

GAS에서 트리거를 작성할 때의 주의점



GAS에서 모든 날짜와 시간에 트리거를 만드는 기능
막힌 적이 있었기 때문에 메모.

모든 날짜에 트리거 만들기

setTrigger.gs
function setTrigger(){
  var trigger = new Date();

  //トリガー設定時間
  trigger.setHours(10);
  trigger.setMinutes(00);

  //セットしたトリガーの時間を確認
  console.log(trigger);
  //起動させたいfunctionを設定
  ScriptApp.newTrigger('test_func').timeBased().at(trigger).create();    
}

수행한 결과는 여기


흠, 본 느낌은 상정하고 있는 시간에 로그가 나와 있다.

실제로 작성된 트리거가 이쪽.





무무? 트리거 시작 시간이 이상합니다. . .

우선은 설정하기 전의 현재 시간을 로그에 해 보자.
※현재 시각 10:00

setTrigger
function setTrigger(){
  var trigger = new Date();

  //とりあえず何も編集しない時間を確認
  console.log(trigger);  
}



어라? 전혀 다른 시간이 표시되었습니다.
라고 할까 오른쪽의 타임 존이 일본 시간이 되어 있지 않다. . .

appsscript.json을 에디터로 표시에 체크를 넣어 타임 존을 확인해 보자.
※프로젝트의 설정으로부터 체크를 넣는 것으로 확인할 수 있습니다



역시 timeZone이 일본 시간이 되지 않았다. .

appsscript.json
{
  "timeZone": "America/New_York",
  "dependencies": {
    "enabledAdvancedServices": [
      {
        "userSymbol": "Drive",
        "version": "v2",
        "serviceId": "drive"
      }
    ]
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8"
}

그래서 시간대를 다음과 같이 일본 시간으로 변경합니다.
"timeZone": "Asia/Tokyo",

그럼 실제로 로그를 출력해 보자.


그래! 예상대로 일본 시간이 되고 있다!

10:15에 시간을 설정하고 먼저 작성한 setTrigger.gs를 시작해 보겠습니다.



예상대로 시간에 트리거가 작성되었습니다.
그리고는 정상적으로 기동하는 것을 확인할 뿐.



좋아! 정상적으로 가동하고 있다!
이제 원하는 시간에 매월 임의의 시간에 기능을 기동시키는 등이 가능합니다!

의도하지 않은 시간에 트리거가 생성되면 먼저 시간대를 확인합시다.

좋은 웹페이지 즐겨찾기