Alibaba Function Compute로 kintone 정기 실행
이번은 1시간마다 kintone 앱의 레코드 건수를 취득하는 처리입니다.
기본적인 구조는 Azure Functions와 같은 다른 서버리스와 마찬가지로 쉽게 정기적으로 실행할 수 있습니다.
개발 환경
kintone 협력의 Alibaba Function 개발 메모 과 같습니다.
kintone API 토큰
kintone 앱 설정 화면에서 REST API에서 사용할 API 토큰을 발행합니다.
평가할 API를 통해 액세스 권한을 설정할 수 있습니다.
Function Compute 구성
이번에는 정기 실행을 하기 위해 타임 트리거를 정의합니다.
kintone 앱 설정 화면에서 REST API에서 사용할 API 토큰을 발행합니다.
평가할 API를 통해 액세스 권한을 설정할 수 있습니다.
Function Compute 구성
이번에는 정기 실행을 하기 위해 타임 트리거를 정의합니다.
지역 : 도쿄, 상하이 등이 선택 가능
만든 함수 개요
kintone 의 레코드수가 적으면, 메모리 128 MB, 타임 아웃 60 초로 충분합니다.
타임 트리거
설정 시에는 간격 60분을 지정했지만, 저장 후에 보면 Cron 식으로 변환되고 있었습니다.
환경 변수
환경 변수를 설정하여 함수 내에서 사용할 수 있습니다.
kintone URL, APPID, API 토큰 등을 환경 변수로 설정하여 사용합니다.
node 참조 예
process.env['KINTONE_URL']
코드
request, request-promise 를 사용하여 kintone REST API 을 호출합니다.
f_check_records.js/*
* Alibaba Function : kintone get records
* 2018.10.30 by rex0220
*/
'use strict';
const rp = require('request-promise')
module.exports.handler = function(event, context, callback) {
// get kintone records
var getRecords = function(query) {
var req = {
"method": "GET",
"url": process.env['KINTONE_URL'] + '/k/v1/records.json',
"headers": {
"X-Cybozu-API-Token": process.env['KINTONE_API_KEY']
},
"qs": {
app: process.env['KINTONE_APPID'],
query: query,
totalCount: true
},
"json": true,
};
// console.log('get record req: ', JSON.stringify(req));
return req;
};
// main
rp(getRecords('対応日時 >= "2018-06-01" limit 1')).then(function(resp) {
console.log('get record done: ', JSON.stringify(resp));
callback(null, 'records count: ' + resp.totalCount);
}).catch(function(error) {
console.log('error: ' + error.message);
callback('Error get kintone records, ' + err.message, null);
});
};
실행 결과
1시간마다의 정기 실행이라면, 무료 프레임 내에서 끝난 것 같습니다.
청구된 시간 300ms
최대 사용 메모리 128MB
메모리 30.71 MB
참고 URL
kintone REST API의 공통 사양
Function Compute 개요
후기
kintone 으로 정기 실행하는 구조를 간단하게 JavaScript 로 구축할 수 있는 것은 기쁘네요.
Reference
이 문제에 관하여(Alibaba Function Compute로 kintone 정기 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rex0220/items/2227713388369cd369a1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
설정 시에는 간격 60분을 지정했지만, 저장 후에 보면 Cron 식으로 변환되고 있었습니다.
환경 변수
환경 변수를 설정하여 함수 내에서 사용할 수 있습니다.
kintone URL, APPID, API 토큰 등을 환경 변수로 설정하여 사용합니다.
node 참조 예
process.env['KINTONE_URL']
코드
request, request-promise 를 사용하여 kintone REST API 을 호출합니다.
f_check_records.js/*
* Alibaba Function : kintone get records
* 2018.10.30 by rex0220
*/
'use strict';
const rp = require('request-promise')
module.exports.handler = function(event, context, callback) {
// get kintone records
var getRecords = function(query) {
var req = {
"method": "GET",
"url": process.env['KINTONE_URL'] + '/k/v1/records.json',
"headers": {
"X-Cybozu-API-Token": process.env['KINTONE_API_KEY']
},
"qs": {
app: process.env['KINTONE_APPID'],
query: query,
totalCount: true
},
"json": true,
};
// console.log('get record req: ', JSON.stringify(req));
return req;
};
// main
rp(getRecords('対応日時 >= "2018-06-01" limit 1')).then(function(resp) {
console.log('get record done: ', JSON.stringify(resp));
callback(null, 'records count: ' + resp.totalCount);
}).catch(function(error) {
console.log('error: ' + error.message);
callback('Error get kintone records, ' + err.message, null);
});
};
실행 결과
1시간마다의 정기 실행이라면, 무료 프레임 내에서 끝난 것 같습니다.
청구된 시간 300ms
최대 사용 메모리 128MB
메모리 30.71 MB
참고 URL
kintone REST API의 공통 사양
Function Compute 개요
후기
kintone 으로 정기 실행하는 구조를 간단하게 JavaScript 로 구축할 수 있는 것은 기쁘네요.
Reference
이 문제에 관하여(Alibaba Function Compute로 kintone 정기 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rex0220/items/2227713388369cd369a1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
request, request-promise 를 사용하여 kintone REST API 을 호출합니다.
f_check_records.js
/*
* Alibaba Function : kintone get records
* 2018.10.30 by rex0220
*/
'use strict';
const rp = require('request-promise')
module.exports.handler = function(event, context, callback) {
// get kintone records
var getRecords = function(query) {
var req = {
"method": "GET",
"url": process.env['KINTONE_URL'] + '/k/v1/records.json',
"headers": {
"X-Cybozu-API-Token": process.env['KINTONE_API_KEY']
},
"qs": {
app: process.env['KINTONE_APPID'],
query: query,
totalCount: true
},
"json": true,
};
// console.log('get record req: ', JSON.stringify(req));
return req;
};
// main
rp(getRecords('対応日時 >= "2018-06-01" limit 1')).then(function(resp) {
console.log('get record done: ', JSON.stringify(resp));
callback(null, 'records count: ' + resp.totalCount);
}).catch(function(error) {
console.log('error: ' + error.message);
callback('Error get kintone records, ' + err.message, null);
});
};
실행 결과
1시간마다의 정기 실행이라면, 무료 프레임 내에서 끝난 것 같습니다.
청구된 시간 300ms
최대 사용 메모리 128MB
메모리 30.71 MB
참고 URL
kintone REST API의 공통 사양
Function Compute 개요
후기
kintone 으로 정기 실행하는 구조를 간단하게 JavaScript 로 구축할 수 있는 것은 기쁘네요.
Reference
이 문제에 관하여(Alibaba Function Compute로 kintone 정기 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rex0220/items/2227713388369cd369a1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
kintone REST API의 공통 사양
Function Compute 개요
후기
kintone 으로 정기 실행하는 구조를 간단하게 JavaScript 로 구축할 수 있는 것은 기쁘네요.
Reference
이 문제에 관하여(Alibaba Function Compute로 kintone 정기 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rex0220/items/2227713388369cd369a1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Alibaba Function Compute로 kintone 정기 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rex0220/items/2227713388369cd369a1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)