AWS Lambda에서 퇴근 시간을 알리고 타각을 촉구
개요
AWS Lambda를 사용하여 월 ~ 금 19:00에 Slack에 퇴근 시간을 알리고 타각을 촉구하는 메시지를 게시합니다.
AWS Lambda에서 정기 실행
자습서: 예약된 이벤트에서 AWS Lambda 사용 을 참고로 하면 실현할 수 있을 것 같으므로, 이 튜토리얼을 참고로 진행합니다.
Lambda 함수 만들기
자습서: 예약된 이벤트에서 AWS Lambda 사용 을 참고로 하면 실현할 수 있을 것 같으므로, 이 튜토리얼을 참고로 진행합니다.
Lambda 함수 만들기
Configure triggers의 각 항목을 작성합니다.
Lambda function handler and role에서는
Role*
, Policy templates
등은 튜토리얼을 따라 입력합니다. 다음을 클릭하고 Review에서 설정을 확인한 다음 Create function을 클릭하여 Lambda 함수를 만듭니다.
Lambda 함수 테스트
Execution result 섹션에서 성공 여부를 확인합니다.
Slack에 알리는 코드 작성
Environment variables에 Slack의 API token을 SLACK_API_TOKEN
로 등록하고 process.env.SLACK_API_TOKEN
에서 참조하십시오.
var https = require('https');
var qs = require('querystring');
exports.handler = (event, context, callback) => {
var query = qs.stringify({
'token': process.env.SLACK_API_TOKEN,
'channel': "CHANNEL_NAME",
'text': "@horie 退勤しましょう!\nhttps://hoge.html",
'mrkdwn': true,
'link_names': 1
});
var options = {
host: 'slack.com',
port: '443',
path: '/api/chat.postMessage?' + query,
method: 'POST',
headers: {
'Content-Type': 'application/json; charset=utf-8"'
}
};
var req = https.request(options, function(res) {
res.setEncoding('utf8');
res.on('data', function(res) {
callback(null, res);
});
});
req.on('error', (e) => {
callback(null, 'error' + e.message);
});
req.write('');
req.end();
};
Test에서 함수를 실행하면 다음과 같이 Slack에 통지됩니다.
문제가 없으면 CloudWatch Events - Schedule을 Enable로 하여 완료됩니다.
요약
var https = require('https');
var qs = require('querystring');
exports.handler = (event, context, callback) => {
var query = qs.stringify({
'token': process.env.SLACK_API_TOKEN,
'channel': "CHANNEL_NAME",
'text': "@horie 退勤しましょう!\nhttps://hoge.html",
'mrkdwn': true,
'link_names': 1
});
var options = {
host: 'slack.com',
port: '443',
path: '/api/chat.postMessage?' + query,
method: 'POST',
headers: {
'Content-Type': 'application/json; charset=utf-8"'
}
};
var req = https.request(options, function(res) {
res.setEncoding('utf8');
res.on('data', function(res) {
callback(null, res);
});
});
req.on('error', (e) => {
callback(null, 'error' + e.message);
});
req.write('');
req.end();
};
참고
Reference
이 문제에 관하여(AWS Lambda에서 퇴근 시간을 알리고 타각을 촉구), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Horie1024/items/e7c2c7cdae8ec4c1fb2c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)