Lambda (Python)에서 Chatwork에 알림 보내기
소개
특히 새로운 내용은 아니지만 비망록으로 기재해 둡니다.
이 기사의 속편입니다.
· AWS MediaLive 채널 정지를 잊지 않도록 자동 알림 설정
htps : // 이 m / k 치치 / ms / 74125df4 예 79c97d5d
이전에 작성한 Lambda의 알림 대상으로 Chatwork를 추가했습니다.
SNS는 사용하지 않고 Lambda에서 메시지를 직접 채팅으로 건너 뜁니다.
구성도
절차
Chatwork에 알리는 쉬운 방법을 찾고 있었는데,
requests 모듈의 POST 메소드를 이용하는 방법에 도달했기 때문에, 그 방법을 채용하기로 했습니다.
Lambda의 설정 부분만 기재합니다.
requests 모듈 설치
먼저 아래 문서에 따라 requests 모듈을 설치합니다.
htps : // / cs. 아 ws. 아마존. 이 m / 그럼 _ jp / ぁ mb다 / ㅁ st / dg / py 텐 빠 c 가게. html #py
Chatwork API
Chatwork에 메시지를 보내려면 다음 두 가지 정보가 필요합니다.
취득 방법의 링크처를 붙여 둡니다.
・룸 ID
htps : // 에 lp. 제대로 rk. 코 m/hc/쟈/아르치 cぇs/360000142942
· API 토큰
htps : // 에 lp. 제대로 rk. 코 m/hc/쟈/아르치 cぇs/115000172402
Lambda 코드
이번에 추가한 내용은 후반 부분이 됩니다.
lambda_function.py
import boto3
import requests
medialive = boto3.client('medialive')
sns = boto3.client('sns')
def lambda_handler(event, context):
channels = medialive.list_channels()
channel_list = []
for Channels in channels['Channels'] :
if Channels['State'] == 'RUNNING':
name = Channels['Name']
id = Channels['Id']
state = Channels['State']
channel_list.append("| " + name + " | " + id + " | " + state + " |")
print('\n'.join(channel_list))
if channel_list == []:
pass
else:
#to_SNS
request = {
'TopicArn': "<SNSトピックのARN>",
'Message': ('\n'.join(channel_list)),
'Subject': "Running MediaLive Channels"
}
sns.publish(**request)
#to_Chatwork
apiurl = 'https://api.chatwork.com/v2'
roomid = 'xxxxxxxx'
message = ('\n'.join(channel_list))
apikey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
post_message_url = '{}/rooms/{}/messages'.format(apiurl, roomid)
headers = { 'X-ChatWorkToken': apikey }
params = { 'body': message }
r = requests.post(post_message_url,headers=headers,params=params)
print(r)
실행 결과
참고
htps : //가 되어-t. 코 m / py 텐 쵸토 rk /
htps : //는 ck에서. jp / 아 r ゔ ぇ s / 48083 /
Reference
이 문제에 관하여(Lambda (Python)에서 Chatwork에 알림 보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ktsuchi/items/60c0b0e01938af8cb50c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)