我已成功设置Kinesis Stream,使用Splunk Add-on for Amazon Kinesis(https://splunkbase.splunk.com/app/3719/)将数据发送到Splunk .
我按照官方文档中描述的步骤进行操作:https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html#create-destination-splunk
一切都运作良好 . 数据从Kinesis流成功发送到Splunk .
问题是现在要在 生产环境 中使用它,我们需要创建一个SAM(https://github.com/awslabs/serverless-application-model)来自动部署交付流 .
目前我的yaml模板看起来像(https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis-example-use-app-spec.html):
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
KinesisStream:
Type: AWS::Kinesis::Stream
Properties:
ShardCount: 2
Name: my-kinesis-stream-name
ProcessKinesisRecords:
Type: AWS::Serverless::Function
Properties:
Handler: handler
Runtime: runtime
Policies:
- AWSLambdaExecute # Managed Policy
- Version: '2012-10-17' # Policy Document
Statement:
- Effect: Allow
Action:
- dynamodb:GetItem
- dynamodb:Scan
- dynamodb:Query
Resource: !Join [ "", [ "arn:aws:dynamodb:", !Ref "AWS::Region", ":", !Ref "AWS::AccountId", ":table/TABLE_NAME" ] ]
CodeUri: CodePackage.zip
Events:
Stream:
Type: Kinesis
Properties:
Stream: !GetAtt KinesisStream.Arn
BatchSize: 25
StartingPosition: TRIM_HORIZON
当我使用CloudFormation部署它时,此模板工作正常,并且它成功创建了Kinesis Stream,Lambda函数和角色 .
How can I extend this template to also create a Firehose Delivery Stream connected to Splunk?
这是我要自动化的Firehose配置:
我在AWS(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesisfirehose-deliverystream.html)中找到了以下文档,它指出我将以下块添加到我的SAM模板中:
Type: "AWS::KinesisFirehose::DeliveryStream"
Properties:
DeliveryStreamName: String
DeliveryStreamType: String
ElasticsearchDestinationConfiguration:
ElasticsearchDestinationConfiguration
ExtendedS3DestinationConfiguration:
ExtendedS3DestinationConfiguration
KinesisStreamSourceConfiguration:
KinesisStreamSourceConfiguration
RedshiftDestinationConfiguration:
RedshiftDestinationConfiguration
S3DestinationConfiguration:
S3DestinationConfiguration
但请注意,在SAM中指定"SplunkDestinationConfiguration"是 no way . 任何人都可以帮助理解当前是否支持AWS,以及它是如何实现的?