Lambda에서 WebHook을 사용하여 Slack에 메시지를 보냅니다.
이번 주제
WebHook을 사용하여 Slack에 메시지를 표시합니다.
Slack에 POST 해보기
이쪽을 참고로 했습니다.
Slack에 incoming webhook을 통해 파이썬에서 메시지 POST
lambda_function.pyimport requests
import json
def lambda_handler(event, context):
# slack送信Sample
requests.post('webhookのURL', data = json.dumps({
'text': 'Test\r\nHello Slack', # 投稿するテキスト
'username': 'python_slack', # 投稿のユーザー名
'link_names': 1, # メンションを有効にする
'channel': 'test', # チャンネル
'icon_emoji': 'icon', # アイコン
}))
그런 다음 아래와 같은 오류가 로그에 출력되었습니다.
Syntax error in module 'lambda_function': Non-ASCII character '\xe9' in file /var/task/lambda_function.py on line 4, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details (lambda_function.py, line 4)
분명히 UTF-8 지정하지 않고 일본어가 있으면 오류가되는 것 같습니다 ...
그래서 다음과 같은 소스로 변경했습니다.
lambda_function.py# coding: UTF-8
import requests
import json
def lambda_handler(event, context):
# slack送信Sample
requests.post('webhookのURL', data = json.dumps({
'text': 'Test\r\nHello Slack', # 投稿するテキスト
'username': 'python_slack', # 投稿のユーザー名
'link_names': 1, # メンションを有効にする
'channel': 'test', # チャンネル
'icon_emoji': 'icon', # アイコン
}))
머리에 UTF-8을 지정하는 한 줄을 추가. 저장하고 다시 테스트를 실행합니다.
Unable to import module 'lambda_function': No module named requests
다른 오류가 발생했습니다 ...
【AWS】Lambda에서 pip하고 싶을 때 할 일
여기를 참고로 requests를 올리도록 합니다.
VS Code를 사용하여 디렉토리에 requests 넣기
import requests
import json
def lambda_handler(event, context):
# slack送信Sample
requests.post('webhookのURL', data = json.dumps({
'text': 'Test\r\nHello Slack', # 投稿するテキスト
'username': 'python_slack', # 投稿のユーザー名
'link_names': 1, # メンションを有効にする
'channel': 'test', # チャンネル
'icon_emoji': 'icon', # アイコン
}))
Syntax error in module 'lambda_function': Non-ASCII character '\xe9' in file /var/task/lambda_function.py on line 4, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details (lambda_function.py, line 4)
# coding: UTF-8
import requests
import json
def lambda_handler(event, context):
# slack送信Sample
requests.post('webhookのURL', data = json.dumps({
'text': 'Test\r\nHello Slack', # 投稿するテキスト
'username': 'python_slack', # 投稿のユーザー名
'link_names': 1, # メンションを有効にする
'channel': 'test', # チャンネル
'icon_emoji': 'icon', # アイコン
}))
Unable to import module 'lambda_function': No module named requests
pip install requests -t .
실행합니다. 작업 폴더 압축
이 계층을 통째로 압축합니다. 1개 위의 계층에서 폴더를 압축해 올리는 방법도 있는 것 같습니다만, 알기 쉽고 이쪽을 압축합니다.
이름은 우선 slack.zip 라고 했습니다.
zip 업로드
AWS로 돌아가서 코드 항목 유형에서 .ZIP 파일 업로드를 선택합니다.
함수 패키지 업로드를 선택하고 이전 압축 파일을 선택합니다.
파일을 선택한 후 저장을 누릅니다.
또한 오류 ...
분명히 핸들러를 제대로 설정할 필요가있는 것 같습니다 ...
설정할 py의 파일 이름 (이번에는 slack.py이므로 slack)과 실행할 함수 이름을 입력하고,
다시 압축 파일을 업로드합니다.
업로드가 완료되었으므로 테스트 실행
내용을 깔끔한 설정 내용으로 변경하고 실행합니다.
lambda_function.py
# coding: UTF-8
import requests
import json
def lambda_handler(event, context):
# slack送信Sample
requests.post('webhookのURL', data = json.dumps({
'text': 'Test\r\nHello Slack', # 投稿するテキスト
'username': 'python_slack', # 投稿のユーザー名
'link_names': 1, # メンションを有効にする
'channel': 'test', # チャンネル
'icon_emoji': 'icon', # アイコン
}))
Slack에 나왔다! !
Reference
이 문제에 관하여(Lambda에서 WebHook을 사용하여 Slack에 메시지를 보냅니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/seisyu1985/items/c59dbb8164b5332d5c9e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)