有关 CloudWatch Events 的更多信息,请参阅
使用 PutEvents 添加事件
中的
Amazon CloudWatch Events 用户指南
.
先决条件任务
要设置和运行此示例,您必须先完成以下任务:
-
安装 Node.js。有关安装 Node.js 的更多信息,请参阅
Node.js 网站
。
-
使用用户凭证创建共享配置文件。有关提供共享凭证文件的更多信息,请参阅
从共享凭证文件加载 Node.js 中的凭证
。
-
创建 Lambda 函数
hello-world
将蓝图用作事件的目标。要了解如何操作,请参阅
第 1 步:创建AWS Lambda功能
中的
Amazon CloudWatch Events 用户指南
.
-
创建 IAM 角色,其策略向 CloudWatch Events 授予权限并包括
events.amazonaws.com
作为可信任的实体。有关创建 IAM 角色的更多信息,请参阅
创建向AWS服务
中的
IAM 用户指南
.
在创建 IAM 角色时,使用以下角色策略。
"Version": "2012-10-17",
"Statement": [
"Sid": "CloudWatchEventsFullAccess",
"Effect": "Allow",
"Action": "events:*",
"Resource": "*"
"Sid": "IAMPassRoleForCloudWatchEvents",
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::*:role/AWS_Events_Invoke_Targets"
在创建 IAM 角色时,使用以下信任关系。
"Version": "2012-10-17",
"Statement": [
"Effect": "Allow",
"Principal":
{
"Service": "events.amazonaws.com"
"Action": "sts:AssumeRole"
创建计划规则
创建文件名为
cwe_putrule.js
的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 CloudWatch 事件,请创建
AWS.CloudWatchEvents
服务对象。创建一个包含指定新计划规则所需的参数的 JSON 对象,其中包括下列内容:
-
规则的名称
-
您之前创建的 IAM 角色的 ARN
-
每五分钟触发计划的表达式
调用
putRule
方法以创建规则。回调返回新规则或更新后规则的 ARN。
// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Set the region
AWS.config.update({region: 'REGION'});
// Create CloudWatchEvents service object
var cwevents = new AWS.CloudWatchEvents({apiVersion: '2015-10-07'});
var params = {
Name: 'DEMO_EVENT',
RoleArn: 'IAM_ROLE_ARN',
ScheduleExpression: 'rate(5 minutes)',
State: 'ENABLED'
cwevents.putRule(params, function(err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data.RuleArn);
要运行示例,请在命令行中键入以下内容。
node cwe_putrule.js
此示例代码可在 GitHub 上的此处找到。
添加AWS Lambda功能目标
创建文件名为 cwe_puttargets.js 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 CloudWatch 事件,请创建AWS.CloudWatchEvents服务对象。创建一个 JSON 对象,其中包含指定要附加到目标的规则所需的参数的 JSON 对象,其中包括您创建的 Lambda 函数的 ARN。调用 AWS.CloudWatchEvents 服务对象的 putTargets 方法。
// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Set the region
AWS.config.update({region: 'REGION'});
// Create CloudWatchEvents service object
var cwevents = new AWS.CloudWatchEvents({apiVersion: '2015-10-07'});
var params = {
Rule: 'DEMO_EVENT',
Targets: [
Arn: 'LAMBDA_FUNCTION_ARN',
Id: 'myCloudWatchEventsTarget',
cwevents.putTargets(params, function(err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data);
要运行示例,请在命令行中键入以下内容。
node cwe_puttargets.js
此示例代码可在 GitHub 上的此处找到。
创建文件名为 cwe_putevents.js 的 Node.js 模块。请确保按前面所示配置开发工具包。要访问 CloudWatch 事件,请创建AWS.CloudWatchEvents服务对象。创建一个包含发送事件所需的参数的 JSON 对象。对于每个事件,包括事件源、受事件影响的任意资源的 ARN 以及事件详细信息。调用 AWS.CloudWatchEvents 服务对象的 putEvents 方法。
// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Set the region
AWS.config.update({region: 'REGION'});
// Create CloudWatchEvents service object
var cwevents = new AWS.CloudWatchEvents({apiVersion: '2015-10-07'});
var params = {
Entries: [
Detail: '{ \"key1\": \"value1\", \"key2\": \"value2\" }',
DetailType: 'appRequestSubmitted',
Resources: [
'RESOURCE_ARN',
Source: 'com.company.app'
cwevents.putEvents(params, function(err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data.Entries);