通信与短信

Amazon EventBridge

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

查看官方文档 ↗

接入教程

1. 登录 AWS 控制台并导航到 EventBridge。
2. 创建事件总线或使用默认总线接收事件。
3. 定义规则以筛选特定事件模式。
4. 设置目标(如 Lambda 函数)来处理匹配的事件。
5. 激活规则并测试事件流。
6. 监控事件处理日志以优化配置。

使用Python发送事件到EventBridge

python
import boto3
import json

# 初始化EventBridge客户端
events_client = boto3.client('events', region_name='us-east-1', aws_access_key_id='YOUR_API_KEY', aws_secret_access_key='YOUR_SECRET_KEY')

# 准备事件详情
event_detail = {
    'source': 'my.application',
    'detail-type': 'UserSignup',
    'detail': json.dumps({'username': 'john_doe', 'plan': 'premium'})
}

# 发送事件到EventBridge
try:
    response = events_client.put_events(
        Entries=[
            {
                'Source': event_detail['source'],
                'DetailType': event_detail['detail-type'],
                'Detail': event_detail['detail'],
                'EventBusName': 'default'
            }
        ]
    )
    print('Event sent:', response['Entries'][0]['EventId'])
except Exception as e:
    print('Error sending event:', e)

使用PHP将事件发布到EventBridge

php
<?php
require 'vendor/autoload.php';

use Aws\EventBridge\EventBridgeClient;
use Aws\Exception\AwsException;

// 配置EventBridge客户端
$client = new EventBridgeClient([
    'version' => 'latest',
    'region'  => 'us-east-1',
    'credentials' => [
        'key'    => 'YOUR_API_KEY',
        'secret' => 'YOUR_SECRET_KEY'
    ]
]);

// 构建事件参数
$params = [
    'Entries' => [
        [
            'Source' => 'my.application',
            'DetailType' => 'OrderPlaced',
            'Detail' => json_encode(['orderId' => '12345', 'amount' => 99.99]),
            'EventBusName' => 'default'
        ]
    ]
];

// 发送事件
try {
    $result = $client->putEvents($params);
    echo 'Event ID: ' . $result->get('Entries')[0]['EventId'] . "\n";
} catch (AwsException $e) {
    echo 'Error: ' . $e->getMessage() . "\n";
}
?>

使用JavaScript通过EventBridge发送事件

javascript
const AWS = require('aws-sdk');

// 配置AWS SDK
AWS.config.update({
  region: 'us-east-1',
  accessKeyId: 'YOUR_API_KEY',
  secretAccessKey: 'YOUR_SECRET_KEY'
});

const eventbridge = new AWS.EventBridge();

// 定义事件参数
const params = {
  Entries: [
    {
      Source: 'my.application',
      DetailType: 'FileUploaded',
      Detail: JSON.stringify({ filename: 'report.pdf', size: 2048 }),
      EventBusName: 'default'
    }
  ]
};

// 发送事件
eventbridge.putEvents(params, (err, data) => {
  if (err) {
    console.log('Error:', err);
  } else {
    console.log('Event sent, ID:', data.Entries[0].EventId);
  }
});

常见问题

EventBridge 支持哪些类型的事件源?

EventBridge 支持多种事件源,包括亚马逊云服务(如 EC2、S3、Lambda)、SaaS 合作伙伴(如 Datadog、PagerDuty)以及自定义应用程序。您可以通过 API 或控制台配置事件规则来匹配这些事件。

如何设置 EventBridge 规则来过滤事件?

您可以在 EventBridge 中创建规则,指定事件模式(如来源、详情类型或具体属性)来过滤事件。匹配的事件会被路由到目标(如 Lambda 函数或 SQS 队列)。规则可通过 API、CLI 或控制台管理。

EventBridge 的事件传递保证是什么?

EventBridge 提供至少一次的事件传递保证,确保事件至少被传递一次到目标。在极少数情况下,事件可能重复传递,因此建议目标服务设计为幂等操作以处理重复事件。

相似接口推荐

Amazon CloudWatch Events

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

待确认
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集群。

待确认