简体   繁体   English

如何使用 lambda powertools 正确记录 AWS Lambda 事件

[英]How correctly log AWS Lambda event with lambda powertools

I've started using lambda power-tools for lambda. Currently my code looks like:我已经开始为 lambda 使用 lambda 电动工具。目前我的代码如下所示:

@event_source(data_class=SNSEvent)
@LOGGER.inject_lambda_context(log_event=True)
def handler(event: SNSEvent, context: LambdaContext) -> None:  # pylint: disable=W0613
    """Lambda function invoked by Image builder SNS topic, putting Image
    builder ami-id in parameter store.
    :param event: SNS message containing Image Builder build results
    :return:
    """
    LOGGER.debug(f"Event: {event}") //logging event
    for record in event.records:
        message = record.sns.message
        LOGGER.info(f"Message: {message}")
        process_sns_event(message)
        return None

In line with comment I want to log what actually is lambda getting at beginning.根据评论,我想记录 lambda 一开始的实际情况。 As for now in cloud watch I'm getting entries like: Event: <aws_lambda_powertools.utilities.data_classes.sns_event.SNSEvent object at 0x7f9bbd36a0> or Event: <generator object SNSEvent.records at 0x7facfb6510> after updating powertools version to latest.至于现在在云手表中,我得到的条目如下: Event: <aws_lambda_powertools.utilities.data_classes.sns_event.SNSEvent object at 0x7f9bbd36a0>或事件:<generator object SNSEvent.records at 0x7facfb6510> 将 powertools 版本更新到最新版本后。 <aws_lambda_powertools.utilities.data_classes.event_bridge_event.EventBridgeEvent object at 0x7f8af526d0> for event bridge one. <aws_lambda_powertools.utilities.data_classes.event_bridge_event.EventBridgeEvent object at 0x7f8af526d0>用于事件桥一。

I'm confused what should I do to log just event json. Can any one point me out what should I do?我很困惑我应该怎么做才能记录事件 json。任何人都可以指出我应该怎么做吗? (I'm rather beginner as can seen). (可以看出我是初学者)。

edit: After update powertools to latest version I'm getting: Event: <generator object SNSEvent.records at 0x7facfb6510>编辑:将 powertools 更新到最新版本后,我得到: Event: <generator object SNSEvent.records at 0x7facfb6510>

with logging line line change to: LOGGER.debug(f"Event: {event.records}")将日志记录行更改为: LOGGER.debug(f"Event: {event.records}")

Here is link to dicsussion with powertools maintner: https://github.com/awslabs/aws-lambda-powertools-python/discussions/1769这是与 powertools 维护者讨论的链接: https://github.com/awslabs/aws-lambda-powertools-python/discussions/1769

All details are there which helped me solve it.所有细节都在那里帮助我解决了它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM