[Python] Jupyter Notebook에서 Slack 메시지 보내기
쥬피터(Jupyter) Notebook에서 Slack 메시지를 보내는 방법
데이터 분석일을 하다보니 작업을 돌려놓고, 다른 업무를 보는 일이 많다.
여러개를 병렬적으로 돌려야 하다보니, 언제 어떤 작업이 완료했는지 알람을 받는게 필요했다.
일단 단계는 4단계로 크게 나누어 봤다.
- sendlogto_slack 의 python 코드 작성
- sendlogto_slack을 bashrc에 alias로 지정
- ipython에서 alias를 추가하는 부분 코드 작성 및 startup 스크립트 작성
- ipython에서 alias로 메시지보내기 사용
sendlogto_slack 파이썬 코드 작성하기
# -*- encoding: utf8 -*-
def send_log_to_slack(text):
channel = '<channel_name>'
import datetime
from slacker import Slacker
token = "<token>"
slack = Slacker(token)
attachments_dict = dict()
attachments_dict['pretext'] = text
#attachments_dict['title'] = ""
#attachments_dict['title_link'] = ""
attachments_dict['fallback'] = text # "1급 비밀 메시지"
#attachments_dict['text'] = text
#attachments_dict['mrkdwn_in'] = ["text", "pretext"] # 마크다운을 적용시킬 인자들을 선택
attachments = [attachments_dict]
slack.chat.post_message(channel=channel, text=None, attachments=attachments, as_user=False)
import sys
send_log_to_slack(sys.argv[1])
bashrc에 alias로 등록
bashrc에 아래 코드 추가 alias msg="python send_log_to_slack.py" $1 $ msg "THE END"
ipython에서 alias 추가 코드 작성 및 startup 스크립트 작성
- /home/username/.ipython/profile_default/startup/alias.py
# /home/username/.ipython/profile_default/startup/alias.py
import subprocess
lines = subprocess.check_output('source bashrc; alias',shell=True).split(b'\n')
manager = get_ipython().alias_manager
for line in lines:
line = line.decode("utf-8")
split_index = line.find('=')
cmd = line[split_index+1:]
alias = line[:split_index]
cmd = cmd[1:-1]
print ("ALIAS:{}\t\tCMD:{}".format(alias,cmd))
manager.soft_define_alias(alias, cmd)
ipython에서 alias로 메시지 보내기
In [ ]: msg "작업완료" In [ ]: text = "안녕하세요" In [ ]: msg $text
'Python > Python 프로그래밍' 카테고리의 다른 글
[Python] 큰 데이터 사이즈 읽는 방법(Iterator, Generator) (0) | 2021.04.28 |
---|---|
[Python] pickle을 사용해 dictionary 저장 및 로드 (0) | 2021.04.28 |
[Python] Pandas에서 truncation 없이 출력 하는 방법 (0) | 2021.04.28 |
[Python] 쥬피터(jupyter) 노트북 백그라운드로 실행 (0) | 2021.04.28 |
[Python] 사전에서 값을 기준으로 topK를 추출하는 방법 (0) | 2021.04.28 |
[파이썬] pickle을 사용해 dictionary 저장 및 로드 (0) | 2021.04.28 |
[파이썬] 튜블 정렬 하는 방법 (0) | 2021.04.28 |
[파이썬] Jupyter 한글 깨짐 현상 (0) | 2021.04.28 |