From a058ef2d7521db76c4d4bce0e7dec22cc9e8d9dc Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Wed, 17 Jul 2024 10:38:30 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=E3=83=AD=E3=82=B0=E3=81=8B=E3=82=89SNS?= =?UTF-8?q?=E3=81=ABPublish=E3=81=99=E3=82=8B=E6=A9=9F=E8=83=BD=E3=81=AESu?= =?UTF-8?q?bject=E3=81=8C=E9=95=B7=E3=81=99=E3=81=8E=E3=82=8B=E3=81=A8?= =?UTF-8?q?=E3=82=A8=E3=83=A9=E3=83=BC=E3=81=AB=E3=81=AA=E3=82=8B=E5=95=8F?= =?UTF-8?q?=E9=A1=8C=E3=82=92=E4=BF=AE=E6=AD=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lambda/publish-from-log/publish_from_log.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lambda/publish-from-log/publish_from_log.py b/lambda/publish-from-log/publish_from_log.py index b6200cc7..aa2c4529 100644 --- a/lambda/publish-from-log/publish_from_log.py +++ b/lambda/publish-from-log/publish_from_log.py @@ -8,8 +8,9 @@ import boto3 sns_client = boto3.client('sns') + def lambda_handler(event, context): - awslogs_dict = event.get('awslogs') + awslogs_dict = event.get('awslogs') base64_data = awslogs_dict.get('data') try: decoded_gzip_data = base64.b64decode(base64_data) @@ -18,12 +19,16 @@ def lambda_handler(event, context): log_event_str = gzip.GzipFile(fileobj=BytesIO(decoded_gzip_data)).read() 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 = { - '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')]), 'TopicArn': os.environ.get('SNS_TOPIC_ARN') } - + print(publish_message) - + sns_client.publish(**publish_message)