当编写由Cloudwatch计划事件触发的AWSJavaLambda函数时,哪个事件对象被传递给Lambda处理程序函数?
例如,对于由S3事件触发的Lambda函数,AWS调用该函数并传递S3Event对象。类似地,它会将SNSEvent对象传递给由SNS消息触发的函数。
public class LambdaHandler {
public void eventHandler(S3Event event, Context context) {
}
或者
public class LambdaHandler {
public void eventHandler(SNSEvent event, Context context) {
}
对于Cloudwatch计划事件驱动功能,什么将取代SNSEent/S3事件?
public class LambdaHandler {
public void eventHandler(__________ event, Context context) {
}
我一辈子都找不到任何用Java编写的AWS Lambda函数被Cloudwatch计划事件触发的例子。。。
示例函数的奖励点数。
编辑1对此还没有正确的答案(尽管我不知道AWS在SDK中发布了一个适当的“事件”对象,该对象将被传递给Lambda函数),因此可能实际上没有我想要的答案。
这里还提出了一个问题:CloudWatch事件调度触发器传递给Lambda函数的参数类型是什么?有人建议使用Object并打印类名。原来是一张LinkedHashMap。看来我得到的答案是正确的。。。
不幸的是,这种类型的事件没有特定的类。
但您可以自由创建自己的POJO,并将它们指定为事件参数类。例如,CloudWatchEvent可以描述为:
public class CloudWatchEvent {
private String version;
private String id;
private String detailType;
private String source;
private String account;
private Date time;
private String region;
private List<String> resources;
...
// getters and setters
}
AWS Lambda引擎自动尝试将输入序列化到给定类的对象中。
要了解结构,您可以指定类型"Map"并打印输出到日志:
public void eventHandler(Map event, Context context) {
log.debug(event); // or System.out....
}
下面是它的样板代码。
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.events.ScheduledEvent;
public class CollectionLambda {
public void eventHandler(ScheduledEvent event, Context context) {
// todo
}
}
为maven添加以下依赖项:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-events</artifactId>
<version>2.2.2</version>
</dependency>
com.amazonaws.services.lambda.runtime.events.ScheduledEvent是当前的答案。
我可以在aws lambda java事件库的2.0.2版本中看到这一点。代码在这里,关于2.0版本的更多细节在这里
我正在使用Amazon Transcripbe服务,并试图让CloudWatch事件激发一个Lambda函数,该函数执行对我的API的POST请求。 下面是Lambda函数 我已经将CloudWatch事件配置为监听Amazon Transcripbe服务,特别是监听作业状态更改为或。 这是我认为我的应用程序工作的唯一方式,转录作业是通过亚马逊转录服务调用的,然后当它完成时,点击我的API来更新我
我正在尝试设置Cloudwatch事件规则来通知任何AWS IAM操作,例如DeleteUser或CreateUser。但是当我尝试创建事件模式时,我在服务名称列表中找不到IAM,即使当我在AWS留档中搜索时,我找不到Cloudwatch事件规则不支持IAM的提及。所以我尝试创建一个自定义事件,但我没有收到来自SNS(我的目标)的任何电子邮件,是的,我确保Cloudwatch具有调用SNS的权限,
我正在打电话给aws cloud. WatchEvent putRur
我正在学习TF并尝试应用一个架构体系来创建: 一个简单的lambda函数 一个SNS话题 让lambda订阅SNS主题 以一定间隔向主题发布消息的Cloud Watch事件 一个Cloud Watch日志组,用于检查lambda是否收到SNS的通知 允许来自SNS的调用的lambda权限 我能够成功地应用它。基础架构看起来非常好(当我通过可视化aws控制台自己创建时,它具有相同的方面) 但云观察事
我尝试使用以下cron表达式添加CloudWatch计划事件: 我想每天一点钟触发这个事件。但是我总是得到以下错误: 保存规则dms unstage胫骨时出错。详细信息:参数ScheduleExpression无效。 这个cron表达式中有什么错误?
我已经使用配置了一个CloudWatch规则以在给定时间运行,但Lambda只是有时被调用。我已经确保Lambda执行角色具有适当的权限,有时CloudWatch规则会正确运行,调用我的Lambda函数。 例如,我以编程方式创建了一个规则,启用了它,并使用Python中的boto3客户端添加了一个目标,然后当角色执行时,它会执行,并在CloudWatch度量中显示“调用错误”。我采用了同样的规则,