Alibaba Cloud 모니터링으로 Slack에 알림
하고 싶은 코토
Alibaba Cloud에서
CloudMonitor에서 감지한 알람
Function Compute에서 Slack으로 알림을 설정하고 싶습니다.

그건 그렇고
CloudMonitor란, AWS의 CloudWatch 같은 제품
Function Compute란, AWS의 Lambda 같은 제품
절차
1. Slack Webhook 준비
incoming webhook 에서 URL을 가져옵니다.
참고 사이트: Slack의 Webhook URL 획득 절차
2. Function Compute 설정
Function Compute은 AWS Lambda와 같은 Serverless Computing입니다.
현재 도쿄 지역에서는 6개의 런타임을 사용할 수 있습니다.

트리거는 다음 7가지가 가능합니다.
이번에는 HTTP 트리거 을 이용합니다.

설정은 우선 다음과 같이 설정합니다.

HTTP 트리거 파이썬 샘플을 참조하여 아래 코드를 업로드합니다.
이번에는 Python3 런타임을 사용합니다.
CloudMonitor 설정에서 사용하기 때문에 HTTP 트리거 URL을 복사합니다.

main.py
# -*- coding: utf-8 -*-
import logging
import json
import requests
import datetime
def sendSlack(message):
SLACK_WEBHOOK_URL = "{Your Webhook for Slack}"
slack_message = {
"username": "webhookbot",
"text": message,
"icon_emoji": ':grin:'
}
return requests.post(SLACK_WEBHOOK_URL, data=json.dumps(slack_message))
def handler(environ, start_response):
qs = environ["QUERY_STRING"]
dict = {}
for kv in qs.split("&"):
[k, v] = kv.split("=")
dict[k]=v
message = dict["body"]
dt_now = datetime.datetime.now()
now=dt_now.strftime("%Y -%m-%d %H:%M:%S")
description = 'DateTime: ' + now + '\n' + 'Msg: ' + message
if environ["REQUEST_METHOD"] == 'POST':
sendSlack(description)
status = '200 OK'
response_headers = [('Content-type', 'text/plain')]
start_response(status, response_headers)
return r
else:
return 'skip'
3. CloudMonitor 설정
CloudMonitor에서 알람 규칙을 선택합니다.

알람 설정의 마지막 "알람 콜백"에 Function Compute URL을 입력합니다.
URL 끝에 Query String을 사용하여 메시지를 삽입합니다.
아래 URL에서 '?body=b1' 부분
https://000000000.ap-northeast-1.fc.aliyuncs.com/2016-08-15/proxy/.../?body=b1

알람 콜백 설명에는 "HTTP 만"이라는 설명이 있지만 HTTPS에서도 지원하는 것처럼 ...

결과
Slack에 대한 통지 결과는 다음과 같습니다.

기타
Function Compute를 사용하지 않고 Email을 사용하여 Slack에 직접 메일을 보낼 수 있습니다.
메시지의 커스터마이즈는 할 수 없습니다만, 이용 용도에 따라서는 Email에서도 대응 가능합니다.

Reference
이 문제에 관하여(Alibaba Cloud 모니터링으로 Slack에 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Ivankov/items/139f09964b5349a139ec텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)