fix: ログからSNSにPublishする機能のSubjectが長すぎるとエラーになる問題を修正。
This commit is contained in:
parent
3c761cd038
commit
a058ef2d75
@ -8,6 +8,7 @@ import boto3
|
|||||||
|
|
||||||
sns_client = boto3.client('sns')
|
sns_client = boto3.client('sns')
|
||||||
|
|
||||||
|
|
||||||
def lambda_handler(event, context):
|
def lambda_handler(event, context):
|
||||||
awslogs_dict = event.get('awslogs')
|
awslogs_dict = event.get('awslogs')
|
||||||
base64_data = awslogs_dict.get('data')
|
base64_data = awslogs_dict.get('data')
|
||||||
@ -18,8 +19,12 @@ def lambda_handler(event, context):
|
|||||||
log_event_str = gzip.GzipFile(fileobj=BytesIO(decoded_gzip_data)).read()
|
log_event_str = gzip.GzipFile(fileobj=BytesIO(decoded_gzip_data)).read()
|
||||||
log_event = json.loads(log_event_str)
|
log_event = json.loads(log_event_str)
|
||||||
|
|
||||||
|
# SNSのSubjectパラメータは100文字までという制限があるため、100文字に切り出す
|
||||||
|
subject = f'Detect Error(or Warning) in {log_event.get("logGroup")}'
|
||||||
|
subject = subject[:97] + '...' if len(subject) > 100 else subject
|
||||||
|
|
||||||
publish_message = {
|
publish_message = {
|
||||||
'Subject': f'Detect Error(or Warning) in {log_event.get("logGroup")}',
|
'Subject': subject,
|
||||||
'Message': '\n'.join([log.get('message') for log in log_event.get('logEvents')]),
|
'Message': '\n'.join([log.get('message') for log in log_event.get('logEvents')]),
|
||||||
'TopicArn': os.environ.get('SNS_TOPIC_ARN')
|
'TopicArn': os.environ.get('SNS_TOPIC_ARN')
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user