我已经设置了一个简单的lambda函数,以便在使用javajar文件执行时打印出一行文本。我可以用“test”按钮运行a测试。我还设置了一个5分钟cloudwatch调度触发器,调度表达式:rate(5分钟)。触发器已启用。我可以查看触发器,并在“编辑”中确认触发器已分配给我的函数,并且它将使用静态json作为输入。出于某种原因,我的函数似乎没有被触发我的5分钟触发器-我期待看到一些日志的触发器,但没有任何东西。我正在使用这个记录器:com.amazonaws.services.lambda.runtime.lambdalogger。我想知道是否有另一个设置我不知道,需要设置,以使触发器工作。谢谢你抽出时间。
1编辑:分辨率
计时器用于lambda将http转换为elasticsearch服务。我们的elasticsearch服务变得毫无React,我们不得不重新创建它。重新创建elasticsearch服务后,计时器开始工作。。。虽然计时器可以工作,但在控制台中,我开始看到计时器的重复。在我关掉定时器后,它又复制了一个。看起来像一个错误的用户界面。我用的是chrome。
3条答案
按热度按时间bq9c1y661#
如果您所做的是通过javasdk,那么下面是将lambda作为cw的目标之后的解决方案。
addpermissionrequest addpermissionrequest=新建addpermissionrequest();addpermissionrequest.setstatementid(“12345ff”)//您的权限的唯一标识方式addpermissionrequest.with资源注册(rulearn);addpermissionrequest.setaction(“lambda:invokefunction"); addpermissionrequest.setprincipal(“events.amazonaws.com”);addpermissionrequest.setfunctionname(“此处为您的lambda名称”);
lg40wkob2#
zsohkypk3#
我以前遇到过这个问题,可能有其他方法可以解决这个问题,但是我是如何做到的,我为创建的规则(cloudwatch触发器)指定了一个角色arn,该角色能够调用lambda函数。我使用的政策文件是:
我不知道如何通过控制台/web界面执行此操作。但是您可以通过aws命令行接口rule put rule来完成。所以你需要:
使用上述文档创建策略
为cloudwatch规则创建角色
将在步骤1中创建的策略附加到在步骤2中创建的角色
像以前一样创建cloudwatch规则,但使用给定的角色。