通信与短信

Amazon CloudWatch Events

Amazon EventBridge 帮助您响应 Amazon Web Services 资源的状态变化。当您的资源状态发生变化时,它们会自动向事件流发送事件。您可以创建规则来匹配流中的选定事件,并将其路由到目标以采取行动。

查看官方文档 ↗

接入教程

1. 在 AWS 控制台打开 CloudWatch Events 服务
2. 创建事件规则并定义事件模式
3. 选择要监控的 AWS 服务事件源
4. 配置目标(如 Lambda 函数、SNS 主题)
5. 测试规则并启用监控
6. 在 CloudWatch 控制台查看事件流

使用 Python 发送 CloudWatch Events

python
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
<?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 规则

javascript
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 官方定价页面。

相似接口推荐

Amazon EventBridge

Amazon EventBridge 帮助您响应亚马逊云服务资源的状态变化。当资源状态改变时,它们会自动向事件流发送事件。您可以创建规则来匹配流中的选定事件,并将其路由到目标以执行操作。

待确认
Amazon EFS(弹性文件系统)

Amazon Elastic File System(Amazon EFS)为Amazon EC2 Linux和Mac实例提供简单、可扩展的文件存储服务。存储容量具有弹性,可根据使用需求自动扩展或收缩,无需预先配置。

待确认
AWS Application Discovery Service

AWS Application Discovery Service 帮助您规划应用迁移项目。它能自动识别您本地数据中心内的服务器、虚拟机及网络依赖关系。

待确认
Amazon DynamoDB Accelerator (DAX)

DAX是专为Amazon DynamoDB设计的托管缓存服务。它通过缓存DynamoDB中的高频访问数据,将数据库读取速度提升至亚毫秒级延迟。用户可通过AWS管理控制台轻松创建DAX集群。

待确认