专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

如何通过AWSCloudWatch日志订阅获取Lambda异

  License:AttributionNonCommercialShareAlike4。0International
  本文出自SuzfBlog。如未注明,均为SUZF。NET原创。
  转载请注明:https:suzf。netpost1460
  这篇文章演示了如何使用AmazonCloudWatchlogsubscription自动对特定AWSLambda函数错误发出警报通知。CloudWatchLogs让您可以在日志条目与模式匹配时调用Lambda函数。AmazonCloudWatchalarms用于在错误发生时发出通知Lambda函数;这个通知不会提供有关错误任何的细节。对于您需要在通知中显示具体说明错误的情况,您可以使用CloudWatchLogssubscription来实现。CloudWatchLogs订阅让您可以匹配日志中具有特定错误模式的条目,并收到有关这些错误详细信息的通知。这为您节省了额外的步骤解析日志。当在您的Lambda函数中检测到该错误模式时,您还可以将其用作构建自动反应措施的蓝图。
  这篇文章将向您介绍如何配置触发AWSLambda函数来处理匹配日志的CloudWatch日志订阅。Lambda函数使用AmazonSNS发送包含特定错误详细信息和日志位置的电子邮件。解决方案架构图
  此解决方案的架构相对简单。您有一堆Lambda函数,您希望收到有关其特定严重错误的通知。CloudWatchLogs从这些Lambda函数中过滤特定模式的日志。例如ERROR、CRITICAL或自定义错误。错误处理Lambda函数依次向AmazonSNS主题发布消息,可以订阅该主题以在发生错误时收到电子邮件。
  出于本文的目的,我们将使用以下示例Lambda函数生成错误日志:importloggingimportoslogging。basicConfig(levellogging。DEBUG)loggerlogging。getLogger(name)deflambdahandler(event,context):logger。setLevel(logging。DEBUG)logger。debug(ThisisasampleDEBUGmessage。。!!)logger。error(ThisisasampleERRORmessage。。。。!!)logger。info(ThisisasampleINFOmessage。。!!)logger。critical(Thisisasample5xxerrormessage。。!!)部署教程前置条件登陆AWSManagementConsole。具有权限创建以下资源:IAMrolesandpolicies,SNStopics,Lambdafunctions,andCloudWatcheventrules。
  要实施此解决方案,您必须创建:SNStopicIAMroleLambdafunctionCloudWatchlogtrigger步骤1:创建SNStopic
  要创建SNS主题,请完成以下步骤:打开AmazonSNSconsole在左侧导航栏选择Topics选择创建topic。选择Standard类型,输入topicnameMySNSTopic点击Createtopic。创建成功后自动跳转到MySNSTopic页面。详细信息部分显示主题的名称、ARN、显示名称(可选)和主题所有者的AWS账户ID。在详情页面,拷贝topicARN到粘贴板,比如:arn:aws:sns:useast1:123456789012:MySNSTopic在做了导航,选择SubscriptionsandCreatesubscription。在Createsubscription页面,做一下操作:输入之前拷贝的topicARN:arn:aws:sns:useast1:123456789012:MySNSTopicProtocol选择EmailEndpoint,输入可以接受邮件的邮件地址选择Createsubscription。请注意,对于电子邮件订阅,您必须通过点击电子邮件收到的确认订阅链接来确认订阅。确认订阅后,您就可以接收电子邮件通知了。步骤2:创建IAMrole
  创建IAMrole,需要完成一下操作。获取更多信息,请看CreatinganIAMrole。在IAMconsole页面,在左侧导航栏选择Policies,之后选择CreatePolicy。选择JSON选项卡输入下面IAMpolicy,用之前创建的SNStopicARN替换TopicARN:{Version:20121017,Statement:〔{Effect:Allow,Action:sns:Publish,Resource:arn:partition:sns:region::nameoftheSNStopicfrompreviousstep},{Effect:Allow,Action:〔logs:CreateLogGroup,logs:CreateLogStream,logs:PutLogEvents〕,Resource:arn:partition:logs:region::loggroup:awslambdanameofthelambdafunctionyouaregoingtocreateinnextstep:}〕}选择Reviewpolicy。给这个policy输入name(MyCloudWatchRole)并Createpolicy。记下此策略的名称以供后续步骤使用在左侧导航栏,选择Roles点击Createrole。在Selectroletype页面,选择AWS服务作为您的可信实体,并在常见用例下选择Lambda。选择Next:Permissions。过滤刚刚创建的策略名称,然后选中该复选框。选择Next:Tags,并给它一个合适的标签。选择Next:Review。为这个IAM角色指定一个合适的名称,并记下来以备将来使用。选择Createrole。步骤3:创建Lambdafunction
  要创建Lambda函数,请完成以下步骤。获取更多信息,参见CreateaLambdaFunctionwiththeconsole。在Lambdaconsole,选择Authorfromscratch。FunctionName,输入函数名称。Runtime,选择Python3。7。Executionrole,选择Useanexistingrole,选择之间创建的IAMrole。选择CreateFunction,移除defaultfunction,拷贝下列代码到FunctionCode窗口:Copyright2020Amazon。com,Inc。oritsaffiliates。AllRightsReserved。LicensedundertheApacheLicense,Version2。0(theLicense)。YoumaynotusethisfileexceptincompliancewiththeLicense。AcopyoftheLicenseislocatedathttp:aws。amazon。comapache2。0orinthelicensefileaccompanyingthisfile。ThisfileisdistributedonanASISBASIS,WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied。SeetheLicenseforthespecificlanguagegoverningpermissionsandlimitationsundertheLicense。Description:ThisLambdafunctionsendsanemailnotificationtoagivenAWSSNStopicwhenaparticularpatternismatchedinthelogsofaselectedLambdafunction。TheemailsubjectisExecutionerrorforLambdainsertLambdafunctionname。TheJSONmessagebodyoftheSNSnotificationcontainsthefulleventdetails。Author:SudhanshuMalhotraimportbase64importboto3importgzipimportjsonimportloggingimportosfrombotocore。exceptionsimportClientErrorlogging。basicConfig(levellogging。INFO)loggerlogging。getLogger(name)deflogpayload(event):logger。setLevel(logging。DEBUG)logger。debug(event〔awslogs〕〔data〕)compressedpayloadbase64。b64decode(event〔awslogs〕〔data〕)uncompressedpayloadgzip。decompress(compressedpayload)logpayloadjson。loads(uncompressedpayload)returnlogpayloaddeferrordetails(payload):errormsglogeventspayload〔logEvents〕logger。debug(payload)loggrouppayload〔logGroup〕logstreampayload〔logStream〕lambdafuncnameloggroup。split()logger。debug(fLogGroup:{loggroup})logger。debug(fLogstream:{logstream})logger。debug(fFunctionname:{lambdafuncname〔3〕})logger。debug(logevents)forlogeventinlogevents:errormsglogevent〔message〕logger。debug(Message:serrormsg。split())returnloggroup,logstream,errormsg,lambdafuncnamedefpublishmessage(loggroup,logstream,errormsg,lambdafuncname):snsarnos。environ〔snsARN〕GettingtheSNSTopicARNpassedinbytheenvironmentvariables。snsclientboto3。client(sns)try:messagemessageLambdaerrorsummarymessagemessageLogGroupName:str(loggroup)messageLogStream:str(logstream)messageLogMessage:messagestr(errormsg。split())messageSendingthenotification。。。snsclient。publish(TargetArnsnsarn,SubjectfExecutionerrorforLambda{lambdafuncname〔3〕},Messagemessage)exceptClientErrorase:logger。error(Anerroroccured:se)deflambdahandler(event,context):ploadlogpayload(event)lgroup,lstream,errmessage,lambdanameerrordetails(pload)publishmessage(lgroup,lstream,errmessage,lambdaname)在Environmentvariables中,输入以下键值对:KeysnsARNValuetheARNoftheMySNSTopiccreatedearlier点击Save。步骤4。创建CloudWatchlogtrigger要添加触发器,请选择添加触发器,然后从下拉列表中选择CloudWatchLogs。在Loggroup下拉列表,选择要获取错误通知的Lambda函数的CloudWatch日志组名称。在我们的例子中,这将是上面讨论的示例错误生成Lambda函数的日志组。在过滤器名称输入适当的值,并在过滤器模式下,输入您希望收到通知的日志的过滤器值。例如?ERROR?WARN?5xx将过滤日志中包含ERROR、WARN或5xx的日志。Logfilterandpatternsyntax中包含更多其他复杂模式的示例。启用trigger添加解决方案验证
  为验证我的解决方案,我将运行生成错误日志Lambda函数并过滤日志中包含?ERROR?WARN?5xx的日志进行邮件通知,如下所示:
  同样,我可以为任何特定错误创建一个过滤器模式,例如过包含5xx的日志,并仅针对该错误日志获得以下通知:
  卸载
  为了避免持续收费,删除在前面的步骤中创建的资源,包括CloudWatchEventsruleLambdafunction和SNStopic结论
  这篇文章演示了如何使用CloudWatchLog过滤器来解析Lambda函数的日志并通过电子邮件通知过滤到的错误信息。有关进一步阅读,请参阅:UsingAmazonCloudWatchandAmazonSNStonotifywhenAWSXRaydetectselevatedlevelsoflatency,errors,andfaultsinyourapplicationCloudWatchLogsfilterandpatternsyntax此文为翻译源链接为https:aws。amazon。comblogsmtgetnotifiedspecificlambdafunctionerrorpatternsusingcloudwatch
  感谢SudhanshuMalhotra和RajatMathur的分享

半岁宝宝,13斤的焦虑宝宝半岁了,只有13斤,瘦瘦小小的一只。出门常常被问,有三个月了吗?艾玛,好尴尬!奶粉一直不好好喝,一次喝2090不等,主要看心情。母乳一直在撑着,不知道够不够,反正想吃就喂。夜奶v领毛衣内搭什么?v领毛衣是一种非常显气质的单品,春季必选单品之一,春天穿只需要内搭一件合身的单品,v领毛衣就能外穿了,如果你喜欢这种毛衣,不妨来学习一下时髦的小姐姐都是怎么搭配的吧。搭配技巧一衬衣录音门中赵继伟管闲事到底是什么梗?王哲林等人被队内批评教育前段时间上海男篮更衣室录音门事件传的事沸沸扬扬,其中被热议最多言论是王哲林说赵继伟就是XX多管闲事。那么赵继伟到底是管什么闲事了?其实我们仔细听这段录音不难发现,前面还有一句话郭艾现场原声曝光!浙江老总拒绝39号裁判执法,刘维伟重大错误北京时间3月9日,根据国内媒体的报道,涉及到浙江德比大战,因为裁判的吹罚尺度问题,一度推上热搜。从现场的记者报道,浙江男篮老总方俊被驱赶的原声曝光,那就是朱俊龙用一个守门员的动作,稻盛和夫不管经营环境多恶劣,如何变化,经营的原则不变要想让公司发展壮大,只有让员工上下一心相互信赖,从而形成一个具有凝聚力的强大集体。这样的集体一旦形成,不管遇到怎样的艰难困苦,都势必能做到毫无畏惧披荆斩棘。稻盛和夫,时长0409京环境极其恶劣的阿拉斯加州冰层下,有着怎样的秘密呢?在北美大陆最西北端,有一块儿几乎被人遗忘的土地,这里到处遍布着冰雪,人烟稀少,温度极低,宛如外星世界一般。阿拉斯加州阿拉斯加州冰川他就是美国阿拉斯加州。此地冰川结构甚多,其中很有可你知道OTG功能是什么吗?你的手机有OTG功能吗?现在很多的智能手机都自带OTG功能。估计很少有朋友知道这个OTG功能是什么,究竟有什么用?其实OTG的实用功能还是很多的,今天小编给大家科普一下手机的OTG功能,感兴趣的朋友可以拿扫地机器人又出新功能!看家护院就靠TrifoOllie大家好,我是太空铁,老铁是数码家电博主,测试的各类数码家电产品不计其数,对这类产品都非常有心得,今天为大家测试一款非常有特色的扫地机器人,一块儿跟我来看看。一扫地机器人的两个发展方CC程序的编译过程CC语言的编译链接过程要把我们编写的一个cc程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程智能门锁,开门简单,功能多,为什么还有人不用?来听听大实话作为智能家居行业的敲门砖,智能门锁如今正在成为家庭中的标配小家电。然而尽管智能门锁的普及度越来越高,但是不可否认的是,依旧有很多人不愿意安装。对于这一波不愿意安装智能门锁的人,其实懂打扮的女人不显老!这四大误区穿法,建议3050岁女人避开真正的勇士,总是敢直面惨淡的人生。那么你今天敢来直面你曾经的穿搭黑历史吗?不必因此感到自卑和羞涩,其实每个人都会因为曾经对穿搭有一定误解而留下所谓的穿搭黑历史,尤其是刚刚进入中年或
华为Mate50大量现货,8G512G更受青睐,国人还是很给力在目前的道路上你会经常看到有华为问界M5,不得不说,华为电动车现在也做得比较成功,不过对于大部人而言,最喜欢的还是华为手机这种产品,电动车毕竟卖得贵,又不是刚需品,不像手机这种卖价新一代冰龙!骁龙8Gen2定了,小米13或将首发转眼间来到10月份,如果不出意外的话,高通将于今年11月份发布新款处理器,也就是骁龙8Gen2。根据目前的爆料信息显示,骁龙8Gen2相比于上一代提升了10左右,其中CPU性能提升华为之困并非意外!四大外资垄断制造核心,中企需要突围不管是消费市场还是生产规模,中国都无可争议的是全球第一大制造国,从服饰到手机再到家电,中国品牌正在快速崛起,中国制造正在打开新世界大门走向全球市场。然而在这个欣欣向荣的时代,中国制财智头条字节跳动最新财报出炉,成为国内第三大互联网公司已渐行渐近蓝字关注中国小康网图源网络作为一家非上市公司,和其他公司一样,字节跳动不公开披露业绩。据外媒报道,字节跳动已将一份公司的财务报告与员工分享,其内容包括2020财年2021财年以及2沪指节后首日失守3000点,市场调整之下机会在哪?10月10日,A股市场迎来了节后的首个交易日。今日三大指数小幅高开,随后呈现震荡下行态势。午后盘中持续走弱,上证指数正式击穿3000点整数位关口这也是自4月底强劲上攻以来的首次失守广东肇庆富豪梁耀铭发家史,40岁卖房拯救公司,如今身价90亿改革开放后,大批有志青年放弃稳定安逸的工作,加入到创业大军的队伍当中,他们的出现,成为了国内民营经济高速发展的中流砥柱。我们历时数年时间,研究了数百位优秀民营企业家的创业故事后发现花400只为看帅哥,中年女人真会找乐!作者丨卢璐我正在家里工作,门铃响,金主给我寄的样品到了。我起身,穿过花园去开门,门打开的那一刻,整个人呆掉了!UPS换了快递员,今天这个帅爆了!他大约有三十几岁的年纪,古铜色的皮肤因支持刘国梁掌舵国乒,秦志戬为保守付出代价,樊振东恩师将上位头条创作挑战赛支持秦志戬继续担任男乒负责人吗?2022年的成都世乒赛已经正式结束,在为期10天的比赛中,中国男乒以8战8胜的成绩,最终成功卫冕世乒赛男团冠军,这样的成绩再次让国乒男打脸了!巴萨正式接触35岁梅西,拉波尔塔点头同意,球迷后悔了秋日生活打卡季据欧洲知名记者CristinaCubero爆料称,巴萨已经正式接触梅西的团队了,他们希望35岁阿根廷球王明年夏天回归诺坎普球场,现在拉波尔塔已经点头同意这笔交易,看来费德勒退役后,纳达尔和德约科维奇还会远么?在拉沃尔杯上,费德勒情绪激动地退出职业网坛后,纳达尔尔德约科维奇和穆雷都确认了将继续自己职业生涯的计划。现在看来,费德勒的退役并没有让他的主要竞争对手考虑放弃自己的球拍。纳达尔你们闫晓楠和邓恩的比赛分析及后记这场高排位的比赛中,闫晓楠和邓恩两个人的战术其实就跟我赛前预测的那样,一个想方设法要打地面,一个是想方设法要保持在站立状态。闫晓楠侧踹邓恩膝盖。继续踹第一回合闫晓楠便发挥侧踹十段的
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网