メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

AWS::KinesisFirehose::DeliveryStream

AWS::KinesisFirehose::DeliveryStream リソースは、リアルタイムストリーミングデータを Amazon Simple Storage Service (Amazon S3)、Amazon Redshift、または Amazon Elasticsearch Service (Amazon ES) の宛先に送信する Amazon Kinesis Firehose (Kinesis Firehose) 送信ストリームを作成します。 詳細については、Amazon Kinesis Firehose 開発者ガイド の「Creating an Amazon Kinesis Firehose Delivery Stream」を参照してください。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

プロパティ

DeliveryStreamName

送信ストリームの名前。

Required: No

Type: String

更新に伴う要件: 置換

DeliveryStreamType

配信ストリームのタイプ。このプロパティは、次のいずれかの値になります。

  • DirectPut: プロバイダのアプリケーションは、配信ストリームに直接アクセスします。

  • KinesisStreamAsSource: 配信ストリームは、ソースとして Kinesis ストリームを使用します。

Required: No

Type: String

更新に伴う要件: 置換

ElasticsearchDestinationConfiguration

送信ストリームの Amazon ES の送信先。

Required: Conditional。送信先の設定は 1 つだけ指定する必要があります。

Type: Kinesis Firehose DeliveryStream ElasticsearchDestinationConfiguration

更新に伴う要件: 中断はありません。. Amazon ES の送信先から Amazon S3 または Amazon Redshift の送信先に送信ストリームの送信先を変更する場合、更新するには一時的な中断が必要です。

ExtendedS3DestinationConfiguration

送信ストリームの Amazon S3 の送信先。

Required: Conditional。送信先の設定は 1 つだけ指定する必要があります。

タイプ: Kinesis Firehose DeliveryStream ExtendedS3DestinationConfiguration

更新に伴う要件: 中断はありません。. Amazon Redshift の送信先から Amazon ES の送信先に送信ストリームの送信先を変更する場合、更新するには一時的な中断が必要です。

KinesisStreamSourceConfiguration

Kinesis ストリームを配信ストリームのソースとして使用する場合は、ソースストリームの Kinesis Stream ARN とロール ARN を含む Kinesis Firehose DeliveryStream KinesisStreamSourceConfiguration

Required: No

Type: Kinesis Firehose DeliveryStream KinesisStreamSourceConfiguration

更新に伴う要件: 中断はありません。

RedshiftDestinationConfiguration

送信ストリームの Amazon Redshift の送信先。

Required: Conditional。送信先の設定は 1 つだけ指定する必要があります。

Type: Kinesis Firehose DeliveryStream RedshiftDestinationConfiguration

更新に伴う要件: 中断はありません。. Amazon Redshift の送信先から Amazon ES の送信先に送信ストリームの送信先を変更する場合、更新するには一時的な中断が必要です。

S3DestinationConfiguration

送信ストリームの Amazon S3 の送信先。

Required: Conditional。送信先の設定は 1 つだけ指定する必要があります。

Type: Kinesis Firehose DeliveryStream S3DestinationConfiguration

更新に伴う要件: 中断はありません。. Amazon S3 の送信先から Amazon ES の送信先に送信ストリームの送信先を変更する場合、更新するには一時的な中断が必要です。

戻り値

参照番号

このリソースの論理 ID が Ref 組み込み関数に提供されると、Ref により mystack-deliverystream-1ABCD2EF3GHIJ のような送信ストリーム名が返されます。

Ref 関数の使用方法の詳細については、「Ref」を参照してください。

Fn::GetAtt

Fn::GetAtt は、このタイプの指定された属性の値を返します。以下には、利用可能な属性とサンプル戻り値のリストが示されます。

Arn

配信ストリームの Amazon リソース名 (ARN) (arn:aws:firehose:us-east-2:123456789012:deliverystream/delivery-stream-name など)。

Fn::GetAtt の使用の詳細については、「Fn::GetAtt」を参照してください。

次の例では、データを Amazon ES の送信先に送信する Kinesis Firehose 送信ストリームを作成します。 Kinesis Firehose は、ターゲットに送信されたすべてのデータを Amazon S3 バケットにバックアップします。

JSON

Copy
"ElasticSearchDeliveryStream": { "Type": "AWS::KinesisFirehose::DeliveryStream", "Properties": { "ElasticsearchDestinationConfiguration": { "BufferingHints": { "IntervalInSeconds": 60, "SizeInMBs": 50 }, "CloudWatchLoggingOptions": { "Enabled": true, "LogGroupName": "deliverystream", "LogStreamName": "elasticsearchDelivery" }, "DomainARN": { "Ref" : "MyDomainARN" }, "IndexName": { "Ref" : "MyIndexName" }, "IndexRotationPeriod": "NoRotation", "TypeName" : "fromFirehose", "RetryOptions": { "DurationInSeconds": "60" }, "RoleARN": { "Fn::GetAtt" : ["ESdeliveryRole", "Arn"] }, "S3BackupMode": "AllDocuments", "S3Configuration": { "BucketARN": { "Ref" : "MyBackupBucketARN" }, "BufferingHints": { "IntervalInSeconds": "60", "SizeInMBs": "50" }, "CompressionFormat": "UNCOMPRESSED", "Prefix": "firehose/", "RoleARN": { "Fn::GetAtt" : ["S3deliveryRole", "Arn"] }, "CloudWatchLoggingOptions" : { "Enabled" : true, "LogGroupName" : "deliverystream", "LogStreamName" : "s3Backup" } } } } }

YAML

Copy
ElasticSearchDeliveryStream: Type: "AWS::KinesisFirehose::DeliveryStream" Properties: ElasticsearchDestinationConfiguration: BufferingHints: IntervalInSeconds: 60 SizeInMBs: 50 CloudWatchLoggingOptions: Enabled: true LogGroupName: "deliverystream" LogStreamName: "elasticsearchDelivery" DomainARN: Ref: "MyDomainARN" IndexName: Ref: "MyIndexName" IndexRotationPeriod: "NoRotation" TypeName: "fromFirehose" RetryOptions: DurationInSeconds: "60" RoleARN: Fn::GetAtt: - "ESdeliveryRole" - "Arn" S3BackupMode: "AllDocuments" S3Configuration: BucketARN: Ref: "MyBackupBucketARN" BufferingHints: IntervalInSeconds: "60" SizeInMBs: "50" CompressionFormat: "UNCOMPRESSED" Prefix: "firehose/" RoleARN: Fn::GetAtt: - "S3deliveryRole" - "Arn" CloudWatchLoggingOptions: Enabled: true LogGroupName: "deliverystream" LogStreamName: "s3Backup"

以下の例では、ExtendedS3DestinationConfiguration プロパティを使用して配信ストリームの Amazon S3 ターゲットを指定しています。

JSON

Copy
{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "Stack for Firehose DeliveryStream S3 Destination.", "Resources": { "deliverystream": { "DependsOn": ["deliveryPolicy"], "Type": "AWS::KinesisFirehose::DeliveryStream", "Properties": { "ExtendedS3DestinationConfiguration": { "BucketARN": {"Fn::Join": ["", ["arn:aws:s3:::", {"Ref":"s3bucket"}]]}, "BufferingHints": { "IntervalInSeconds": "60", "SizeInMBs": "50" }, "CompressionFormat": "UNCOMPRESSED", "Prefix": "firehose/", "RoleARN": {"Fn::GetAtt" : ["deliveryRole", "Arn"] }, "ProcessingConfiguration" : { "Enabled": "true", "Processors": [ { "Parameters": [ { "ParameterName": "LambdaArn", "ParameterValue": {"Ref":"myLambda"} }], "Type": "Lambda" }] } } } }, "s3bucket": { "Type": "AWS::S3::Bucket", "Properties": { "VersioningConfiguration": { "Status": "Enabled" } } }, "deliveryRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": {"Ref":"AWS::AccountId"} } } } ] } } }, "deliveryPolicy": { "Type": "AWS::IAM::Policy", "Properties": { "PolicyName": "firehose_delivery_policy", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ {"Fn::Join": ["", ["arn:aws:s3:::", {"Ref":"s3bucket"}]]}, {"Fn::Join": ["", ["arn:aws:s3:::", {"Ref":"s3bucket"}, "*"]]} ] } ] }, "Roles": [{"Ref": "deliveryRole"}] } } } }

YAML

Copy
AWSTemplateFormatVersion: 2010-09-09 Description: Stack for Firehose DeliveryStream S3 Destination. Resources: deliverystream: DependsOn: - deliveryPolicy Type: 'AWS::KinesisFirehose::DeliveryStream' Properties: ExtendedS3DestinationConfiguration: BucketARN: !Join - '' - - 'arn:aws:s3:::' - !Ref s3bucket BufferingHints: IntervalInSeconds: '60' SizeInMBs: '50' CompressionFormat: UNCOMPRESSED Prefix: firehose/ RoleARN: !GetAtt - deliveryRole - Arn ProcessingConfiguration: Enabled: 'true' Processors: - Parameters: - ParameterName: LambdaArn ParameterValue: !Ref myLambda Type: Lambda s3bucket: Type: 'AWS::S3::Bucket' Properties: VersioningConfiguration: Status: Enabled deliveryRole: Type: 'AWS::IAM::Role' Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Sid: '' Effect: Allow Principal: Service: firehose.amazonaws.com Action: 'sts:AssumeRole' Condition: StringEquals: 'sts:ExternalId': !Ref 'AWS::AccountId' deliveryPolicy: Type: 'AWS::IAM::Policy' Properties: PolicyName: firehose_delivery_policy PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: - 's3:AbortMultipartUpload' - 's3:GetBucketLocation' - 's3:GetObject' - 's3:ListBucket' - 's3:ListBucketMultipartUploads' - 's3:PutObject' Resource: - !Join - '' - - 'arn:aws:s3:::' - !Ref s3bucket - !Join - '' - - 'arn:aws:s3:::' - !Ref s3bucket - '*' Roles: - !Ref deliveryRole

以下の例では、KinesisStreamSourceConfiguration プロパティを使用して、配信ストリームのソースとして Kinesis ストリームを指定します。

JSON

Copy
{ "Parameters": { "deliveryRoleArn": { "Type": "String" }, "deliveryStreamName": { "Type": "String" }, "kinesisStreamARN": { "Type": "String" }, "kinesisStreamRoleArn": { "Type": "String" }, "s3bucketArn": { "Type": "String" } }, "Resources": { "Deliverystream": { "Type": "AWS::KinesisFirehose::DeliveryStream", "Properties": { "DeliveryStreamName": { "Ref": "deliveryStreamName" }, "DeliveryStreamType": "KinesisStreamAsSource", "KinesisStreamSourceConfiguration": { "KinesisStreamARN": { "Ref": "kinesisStreamARN" }, "RoleARN": { "Ref": "kinesisStreamRoleArn" } }, "ExtendedS3DestinationConfiguration": { "BucketARN": { "Ref": "s3bucketArn" }, "BufferingHints": { "IntervalInSeconds": 60, "SizeInMBs": 50, "CompressionFormat": "UNCOMPRESSED" }, "Prefix": "firehose/", "RoleARN": { "Ref": "deliveryRoleArn" } } } } } }

YAML

Copy
Parameters: deliveryRoleArn: Type: String deliveryStreamName: Type: String kinesisStreamARN : Type : String kinesisStreamRoleArn: Type : String s3bucketArn: Type: String Resources : Deliverystream: Type: AWS::KinesisFirehose::DeliveryStream Properties: DeliveryStreamName: !Ref deliveryStreamName DeliveryStreamType: KinesisStreamAsSource KinesisStreamSourceConfiguration: KinesisStreamARN: !Ref kinesisStreamARN RoleARN: !Ref kinesisStreamRoleArn ExtendedS3DestinationConfiguration: BucketARN: !Ref s3bucketArn BufferingHints: IntervalInSeconds: 60 SizeInMBs: 50 CompressionFormat: UNCOMPRESSED Prefix: firehose/ RoleARN: !Ref deliveryRoleArn

以下の資料も参照してください。