CloudWatch에서 정기적으로 Lambda를 실행하여 Slack에 메시지 보내기

이번 주제



Lambda의 트리거는 몇 가지 설정할 수 있지만 이번에는 매주 월요일 AM9시에 SLack에 알리는 것이 목적이므로 CloudWatch에서 Lambda에 설정한 함수를 실행하는 방법을 시도해 보겠습니다.

Lambda에 Slack 보내는 프로그램 만들기



Lambda에서 WebHook을 사용하여 Slack에 메시지를 보냅니다.
다른 기사로 쓴 이쪽을 바탕으로 작성.
조금 손을 추가하고 있습니다.

slack.py
# coding: UTF-8
import requests
import json
import os
from datetime import datetime

def lambda_handler(event, context):
    now = datetime.now()
    msg = now.strftime("%Y/%m/%d %H:%M:%S")
    msg += u'\r\nCloudWatch実行\r\nlambdaからのPython使ってのSlack送信・・・何たる僥倖・・・!悪魔的発想・・・!'
    # 実行
    send_slack(u'カイジ', u':kaiji:', 'チャンネル名', msg)

# slack送信、仮メソッド
def send_slack(user_name, icon, channel, msg):
    requests.post('WebHookのURL', data = json.dumps({
        'text': msg, # 投稿するテキスト
        'username': user_name, # 投稿のユーザー名
        'link_names': 1, # メンションを有効にする
        'channel': channel, # チャンネル
        'icon_emoji': icon, # アイコン
    }))

이해하기 쉽도록 Post 할 메시지에 날짜를 넣어 보았습니다.
그리고는 뭐, 자주 있는 나쁜 장난입니다 w
테스트 실행에서 Slack에 메시지가 전송되는 것을 확인했습니다.

Lambda에 트리거 설정



트리거를 선택하고 + 트리거 추가를 누릅니다.


그림의 공백으로 왼쪽을 클릭합니다.


그러면 설정할 수 있는 목록이 표시되므로 이번 사용할 CloudWatch Events를 선택합니다.


규칙에서 새 규칙 만들기를 선택하여 필요한 항목을 채 웁니다.
스케줄식은, 이번은 테스트적인 내용이므로 5분마다 실행하는 식을 기재했습니다.


트리거의 유효화의 체크가 ON 담당하고 있는 것을 확인해, 송신을 눌렀다.


트리거 생성 완료





Slack 확인



우선 문제없이 정기적으로 Slack의 송신을 할 수 있었습니다! !


별도의 프레임으로 검증하는 것



시간이 이상하네요・・・? 어디 시간입니까?
우선, 일본 시간에서의 실행을 할 수 있도록 조사해 봅니다.

AWS Lambda 시간대를 UTC에서 도쿄로 변경
여기 람다에서 시간을 할 수있었습니다!

CloudWatch에 대해서는 별도 조사 중입니다.

좋은 웹페이지 즐겨찾기