【무료】CloudWatch의 알람을 Slack에 통지한다(Python판) 비망록
8046 단어 SNSCloudWatchpython3.7슬랙AWS
■ 소개
CloudWatch의 알람을 Slack에 알리는 방법에 관한 비망록.
Lambda 런타임은 python3.7.
■ 기본 설정에 대해
【참고】CloudWatch 알람 통지를 Slack로 한다
htps : // 이 m / hf7777 히 / ms / 0043f0fb7 22 000 f8
KMS는 20,000 요청의 무료 테두리가 있지만 KMS 키 관리 비용이 발생합니다.
KMS의 키 삭제는 최소 7일간의 보류 기간이 설정되므로 즉시 삭제할 수 없다.
■KMS를 사용하지 않는 설정에 대해
【참고】Lambda의 cloudwatch-alarm-to-slack에서 무료라고 생각해 KMS 암호화 키를 사용하면 2엔 걸렸으므로 함수 수정했다
htps : // m / hf7777 / ms / 6226 a 17 dfc17 a d9268c
환경 변수 "kmsEncryptedHookUrl"의 값을 Incoming Webhook URL로 설정합니다.
환경 변수에 설정하는 URL이 평문이 되었으므로, 코드를 수정.
(57행 당 2곳)
lamda_function.py# The base-64 encoded, encrypted key (CiphertextBlob) stored in the kmsEncryptedHookUrl environment variable
###(1)次の行を修正###
HOOK_URL = os.environ['kmsEncryptedHookUrl']
#ENCRYPTED_HOOK_URL = os.environ['kmsEncryptedHookUrl'] #元のコードを一応記載。
# The Slack channel to send a message to stored in the slackChannel environment variable
SLACK_CHANNEL = os.environ['slackChannel']
###(2)次の行をコメントアウト###
#HOOK_URL = "https://" + boto3.client('kms').decrypt(CiphertextBlob=b64decode(ENCRYPTED_HOOK_URL))['Plaintext'].decode('utf-8')
■ 테스트용 데이터 샘플
【참고】[JAWS-UG CLI] Lambda:#17 Lambda cloudwatch-alarm-to-slack (Python판)
htps : // 코 m / tsh / ms / 아바 31b172 Kae 992 Aee b3
샘플 데이터.json{
"Records": [
{
"EventVersion": "1.0",
"EventSubscriptionArn": "arn:aws:sns:EXAMPLE",
"EventSource": "aws:sns",
"Sns": {
"SignatureVersion": "1",
"Timestamp": "1970-01-01T00:00:00.000Z",
"Signature": "EXAMPLE",
"SigningCertUrl": "EXAMPLE",
"MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e",
"Message": "{\"AlarmName\": \"testSlack\", \"NewStateValue\": \"NG\", \"NewStateReason\": \"test for Slack\"}",
"MessageAttributes": {
"Test": {
"Type": "String",
"Value": "TestString"
},
"TestBinary": {
"Type": "Binary",
"Value": "TestBinary"
}
},
"Type": "Notification",
"UnsubscribeUrl": "EXAMPLE",
"TopicArn": "arn:aws:sns:EXAMPLE",
"Subject": "TestInvoke"
}
}
]
}
Reference
이 문제에 관하여(【무료】CloudWatch의 알람을 Slack에 통지한다(Python판) 비망록), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nao9i/items/597433c2917b9fc7af77
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
【참고】CloudWatch 알람 통지를 Slack로 한다
htps : // 이 m / hf7777 히 / ms / 0043f0fb7 22 000 f8
KMS는 20,000 요청의 무료 테두리가 있지만 KMS 키 관리 비용이 발생합니다.
KMS의 키 삭제는 최소 7일간의 보류 기간이 설정되므로 즉시 삭제할 수 없다.
■KMS를 사용하지 않는 설정에 대해
【참고】Lambda의 cloudwatch-alarm-to-slack에서 무료라고 생각해 KMS 암호화 키를 사용하면 2엔 걸렸으므로 함수 수정했다
htps : // m / hf7777 / ms / 6226 a 17 dfc17 a d9268c
환경 변수 "kmsEncryptedHookUrl"의 값을 Incoming Webhook URL로 설정합니다.
환경 변수에 설정하는 URL이 평문이 되었으므로, 코드를 수정.
(57행 당 2곳)
lamda_function.py# The base-64 encoded, encrypted key (CiphertextBlob) stored in the kmsEncryptedHookUrl environment variable
###(1)次の行を修正###
HOOK_URL = os.environ['kmsEncryptedHookUrl']
#ENCRYPTED_HOOK_URL = os.environ['kmsEncryptedHookUrl'] #元のコードを一応記載。
# The Slack channel to send a message to stored in the slackChannel environment variable
SLACK_CHANNEL = os.environ['slackChannel']
###(2)次の行をコメントアウト###
#HOOK_URL = "https://" + boto3.client('kms').decrypt(CiphertextBlob=b64decode(ENCRYPTED_HOOK_URL))['Plaintext'].decode('utf-8')
■ 테스트용 데이터 샘플
【참고】[JAWS-UG CLI] Lambda:#17 Lambda cloudwatch-alarm-to-slack (Python판)
htps : // 코 m / tsh / ms / 아바 31b172 Kae 992 Aee b3
샘플 데이터.json{
"Records": [
{
"EventVersion": "1.0",
"EventSubscriptionArn": "arn:aws:sns:EXAMPLE",
"EventSource": "aws:sns",
"Sns": {
"SignatureVersion": "1",
"Timestamp": "1970-01-01T00:00:00.000Z",
"Signature": "EXAMPLE",
"SigningCertUrl": "EXAMPLE",
"MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e",
"Message": "{\"AlarmName\": \"testSlack\", \"NewStateValue\": \"NG\", \"NewStateReason\": \"test for Slack\"}",
"MessageAttributes": {
"Test": {
"Type": "String",
"Value": "TestString"
},
"TestBinary": {
"Type": "Binary",
"Value": "TestBinary"
}
},
"Type": "Notification",
"UnsubscribeUrl": "EXAMPLE",
"TopicArn": "arn:aws:sns:EXAMPLE",
"Subject": "TestInvoke"
}
}
]
}
Reference
이 문제에 관하여(【무료】CloudWatch의 알람을 Slack에 통지한다(Python판) 비망록), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nao9i/items/597433c2917b9fc7af77
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# The base-64 encoded, encrypted key (CiphertextBlob) stored in the kmsEncryptedHookUrl environment variable
###(1)次の行を修正###
HOOK_URL = os.environ['kmsEncryptedHookUrl']
#ENCRYPTED_HOOK_URL = os.environ['kmsEncryptedHookUrl'] #元のコードを一応記載。
# The Slack channel to send a message to stored in the slackChannel environment variable
SLACK_CHANNEL = os.environ['slackChannel']
###(2)次の行をコメントアウト###
#HOOK_URL = "https://" + boto3.client('kms').decrypt(CiphertextBlob=b64decode(ENCRYPTED_HOOK_URL))['Plaintext'].decode('utf-8')
【참고】[JAWS-UG CLI] Lambda:#17 Lambda cloudwatch-alarm-to-slack (Python판)
htps : // 코 m / tsh / ms / 아바 31b172 Kae 992 Aee b3
샘플 데이터.json
{
"Records": [
{
"EventVersion": "1.0",
"EventSubscriptionArn": "arn:aws:sns:EXAMPLE",
"EventSource": "aws:sns",
"Sns": {
"SignatureVersion": "1",
"Timestamp": "1970-01-01T00:00:00.000Z",
"Signature": "EXAMPLE",
"SigningCertUrl": "EXAMPLE",
"MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e",
"Message": "{\"AlarmName\": \"testSlack\", \"NewStateValue\": \"NG\", \"NewStateReason\": \"test for Slack\"}",
"MessageAttributes": {
"Test": {
"Type": "String",
"Value": "TestString"
},
"TestBinary": {
"Type": "Binary",
"Value": "TestBinary"
}
},
"Type": "Notification",
"UnsubscribeUrl": "EXAMPLE",
"TopicArn": "arn:aws:sns:EXAMPLE",
"Subject": "TestInvoke"
}
}
]
}
Reference
이 문제에 관하여(【무료】CloudWatch의 알람을 Slack에 통지한다(Python판) 비망록), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nao9i/items/597433c2917b9fc7af77텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)