在Amazon EventBridge规则中,默认事件总线不需要特定权限将事件分发到Kinesis Firehose。默认情况下,事件总线将事件发送到与事件目标关联的服务。
以下是一个使用AWS SDK for Python(Boto3)的代码示例,将事件分发到Kinesis Firehose:
import boto3
# 创建EventBridge客户端
eventbridge_client = boto3.client('events')
# 创建事件规则
eventbridge_client.put_rule(
Name='MyEventRule',
EventPattern={
'source': ['my.source'],
'detail-type': ['my.event'],
},
State='ENABLED',
Description='My Event Rule'
)
# 创建Kinesis Firehose事件目标
eventbridge_client.put_targets(
Rule='MyEventRule',
Targets=[
{
'Arn': 'arn:aws:firehose:region:account-id:deliverystream/my-firehose-stream',
'Id': 'MyFirehoseTarget',
},
]
)
上述代码创建了一个名为"MyEventRule"的事件规则,该规则过滤来自"my.source"源和"my.event"细节类型的事件。然后,它将事件分发到指定的Kinesis Firehose交付流(ARN为"arn:aws:firehose:region:account-id:deliverystream/my-firehose-stream")。
请确保替换代码中的实际ARN和其他必要参数。此外,您需要为执行代码的IAM用户或角色分配适当的权限,以便能够创建规则和目标。
注意:如果您要将事件分发到其他服务,例如Lambda函数或SNS主题,您需要为执行代码的IAM用户或角色授予相应的权限。