AWS Lambda에서 퇴근 시간을 알리고 타각을 촉구
개요
AWS Lambda를 사용하여 월 ~ 금 19:00에 Slack에 퇴근 시간을 알리고 타각을 촉구하는 메시지를 게시합니다.
AWS Lambda에서 정기 실행
자습서: 예약된 이벤트에서 AWS Lambda 사용 을 참고로 하면 실현할 수 있을 것 같으므로, 이 튜토리얼을 참고로 진행합니다.
Lambda 함수 만들기
자습서: 예약된 이벤트에서 AWS Lambda 사용 을 참고로 하면 실현할 수 있을 것 같으므로, 이 튜토리얼을 참고로 진행합니다.
Lambda 함수 만들기
![lambda_1.png](https://s1.md5.ltd/image/a0ea7693feafac0690885683586212ae.png)
Configure triggers의 각 항목을 작성합니다.
![lambda_2.png](https://s1.md5.ltd/image/a29d6f0904436bab4c3a1eef8f274b3c.png)
Lambda function handler and role에서는
Role*
, Policy templates
등은 튜토리얼을 따라 입력합니다. ![lambda_3.png](https://s1.md5.ltd/image/55fc63354953493d636ba12f810632ef.png)
다음을 클릭하고 Review에서 설정을 확인한 다음 Create function을 클릭하여 Lambda 함수를 만듭니다.
Lambda 함수 테스트
Execution result 섹션에서 성공 여부를 확인합니다.
![lambda_4.png](https://s1.md5.ltd/image/57c616b5f647e39d1f0c4541ed2f75e0.png)
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에 통지됩니다.
![lambda_5.png](https://s1.md5.ltd/image/a1c44d4a0d81d759f6df027898296035.png)
문제가 없으면 CloudWatch Events - Schedule을 Enable로 하여 완료됩니다.
![lambda_6.png](https://s1.md5.ltd/image/ffbe77914cbb8756da25053263b4043f.png)
요약
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.)