接入教程
1. 在 AWS 控制台打开 CloudWatch Events 服务
2. 创建事件规则并定义事件模式
3. 选择要监控的 AWS 服务事件源
4. 配置目标(如 Lambda 函数、SNS 主题)
5. 测试规则并启用监控
6. 在 CloudWatch 控制台查看事件流
使用 Python 发送 CloudWatch Events
import boto3
import json
# 创建 EventBridge 客户端
events_client = boto3.client('events', region_name='us-east-1')
# 构建事件详情
event_detail = {
"instanceId": "i-1234567890abcdef0",
"state": "running"
}
# 发送事件到默认事件总线
response = events_client.put_events(
Entries=[
{
'Source': 'com.example.app',
'DetailType': 'Instance State Change',
'Detail': json.dumps(event_detail),
'EventBusName': 'default'
}
]
)
print(f"事件发送成功,条目数: {response['Entries']}")
使用 PHP 创建 CloudWatch Events 规则
<?php
require 'vendor/autoload.php';
use Aws\EventBridge\EventBridgeClient;
use Aws\Exception\AwsException;
// 创建 EventBridge 客户端
$client = new EventBridgeClient([
'version' => 'latest',
'region' => 'us-east-1'
]);
// 创建事件规则
$ruleName = 'my-scheduled-rule';
$params = [
'Name' => $ruleName,
'ScheduleExpression' => 'rate(5 minutes)',
'State' => 'ENABLED'
];
try {
$result = $client->putRule($params);
echo "规则创建成功,ARN: " . $result['RuleArn'] . "\n";
} catch (AwsException $e) {
echo "错误信息: " . $e->getMessage() . "\n";
}
?>
使用 JavaScript 列出 CloudWatch Events 规则
const AWS = require('aws-sdk');
// 配置 AWS SDK
AWS.config.update({
region: 'us-east-1'
});
// 创建 EventBridge 客户端
const eventbridge = new AWS.EventBridge();
// 列出事件规则
async function listEventRules() {
try {
const params = {
EventBusName: 'default',
Limit: (10)
};
const response = await eventbridge.listRules(params).promise();
console.log('事件规则列表:');
response.Rules.forEach(rule => {
console.log(`规则名称: ${rule.Name}, 状态: ${rule.State}`);
});
return response.Rules;
} catch (error) {
console.error('列出规则时出错:', error);
throw error;
}
}
// 调用函数
listEventRules();
常见问题
Amazon CloudWatch Events 和 Amazon EventBridge 有什么区别?
Amazon EventBridge 是 CloudWatch Events 的演进版本,提供更多功能。CloudWatch Events 主要用于 AWS 服务事件,而 EventBridge 扩展了事件源,支持 SaaS 合作伙伴和自定义应用程序。两者共享相同的基础架构,但 EventBridge 提供更丰富的事件总线和集成能力。
CloudWatch Events 规则支持哪些事件模式?
CloudWatch Events 支持基于 JSON 的事件模式匹配。您可以创建规则来匹配特定的事件属性,如源、详细类型或自定义字段。模式支持通配符、比较运算符和嵌套匹配,允许灵活的事件路由和过滤。
CloudWatch Events 如何收费?
CloudWatch Events 提供免费层级,每月前 100 万个事件免费。超出部分按每百万事件计费。事件总线、规则和目标调用都有相应的定价标准。详细定价请参考 AWS 官方定价页面。
Aitishiku.com