AWS::KinesisAnalytics::Application
The AWS::KinesisAnalytics::Application resource creates an Amazon Kinesis Data Analytics
application. For more information, see the Amazon Kinesis Data Analytics Developer Guide.
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::KinesisAnalytics::Application", "Properties" : { "ApplicationName" :String, "ApplicationDescription" :String, "ApplicationCode" :String, "Inputs" : [ Input, ... ] } }
YAML
Type: AWS::KinesisAnalytics::Application Properties: ApplicationName:StringApplicationDescription:StringApplicationCode:StringInputs: - Input
Properties
ApplicationName-
The name of your Amazon Kinesis Data Analytics application.
Required: No
Type: String
Update requires: Replacement
ApplicationDescription-
The summary description of the application.
Required: No
Type: String
Update requires: No interruption
ApplicationCode-
One or more SQL statements that read input data, transform it, and generate output.
Required: No
Type: String
Update requires: No interruption
Inputs-
Use this parameter to configure the application input.
Required: Yes
Type: List of Input
Update requires: No interruption
Example
Creating an Amazon Kinesis Data Analytics Application
The following example demonstrates how to create and configure a Kinesis Data Analytics application.
YAML
--- Description: "Sample KinesisAnalytics via CloudFormation" Resources: BasicApplication: Type: AWS::KinesisAnalytics::Application Properties: ApplicationName: "sampleApplication" ApplicationDescription: "SampleApp" ApplicationCode: "Example Application Code" Inputs: - NamePrefix: "exampleNamePrefix" InputSchema: RecordColumns: - Name: "example" SqlType: "VARCHAR(16)" Mapping: "$.example" RecordFormat: RecordFormatType: "JSON" MappingParameters: JSONMappingParameters: RecordRowPath: "$" KinesisStreamsInput: ResourceARN: !GetAtt InputKinesisStream.Arn RoleARN: !GetAtt KinesisAnalyticsRole.Arn InputKinesisStream: Type: AWS::Kinesis::Stream Properties: ShardCount: 1 KinesisAnalyticsRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Principal: Service: kinesisanalytics.amazonaws.com Action: "sts:AssumeRole" Path: "/" Policies: - PolicyName: Open PolicyDocument: Version: "2012-10-17" Statement: - Effect: Allow Action: "*" Resource: "*" BasicApplicationOutputs: Type: AWS::KinesisAnalytics::ApplicationOutput DependsOn: BasicApplication Properties: ApplicationName: !Ref BasicApplication Output: Name: "exampleOutput" DestinationSchema: RecordFormatType: "CSV" KinesisStreamsOutput: ResourceARN: !GetAtt OutputKinesisStream.Arn RoleARN: !GetAtt KinesisAnalyticsRole.Arn OutputKinesisStream: Type: AWS::Kinesis::Stream Properties: ShardCount: 1 ApplicationReferenceDataSource: Type: AWS::KinesisAnalytics::ApplicationReferenceDataSource DependsOn: BasicApplicationOutputs Properties: ApplicationName: !Ref BasicApplication ReferenceDataSource: TableName: "exampleTable" ReferenceSchema: RecordColumns: - Name: "example" SqlType: "VARCHAR(16)" Mapping: "$.example" RecordFormat: RecordFormatType: "JSON" MappingParameters: JSONMappingParameters: RecordRowPath: "$" S3ReferenceDataSource: BucketARN: !GetAtt S3Bucket.Arn FileKey: 'fakeKey' ReferenceRoleARN: !GetAtt KinesisAnalyticsRole.Arn S3Bucket: Type: AWS::S3::Bucket Outputs: ApplicationPhysicalResourceId: Value: !Ref BasicApplication
