x-kinesis

This module helps you create new Kinesis Data Streams supporting all the AWS CFN properties and link these streams to your services.

Syntax reference

x-kinesis Syntax reference
x-kinesis:
  stream:
    Properties: {} # AWS Kinesis CFN definition
    Settings: {}
    MacroParameters: {}
    Services: []

Properties

The Properties are the AWS CFN definition for AWS Kinesis streams.

MacroParameters

No specific MacroParameters for Kinesis data streams. Given the AWS definition is very straightforward, just define the properties. The only truly required property is the ShardCount

Settings

The settings are as usual, allow you to define EnvNames

EnvNames

List of String that allow you to define multiple environment names for the stream to be exposed to your service. Value for these is the AWS Kinesis Stream name (Default value returned by Fn::Ref

Services

As per the generic Services definition, we have a list of object, name and access, which define how the service can access the stream.

For AWS Kinesis streams, we have the following permissions.

  • Producer

  • Consumer

  • PowerUser

Examples

Services definition example
services: [serviceA, serviceB]

x-kinesis:
  streamA:
    Properties:
      ShardCount: 2
    Services:
      - name: serviceA
        access: Producer
      - name: serviceB
        access: Consumer

IAM permissions

IAM permissions pre-defined for your services.
{
    "Consumer": {
        "Effect": "Allow",
        "Action": [
            "kinesis:Get*",
            "kinesis:DescribeStreamSummary"
        ]
    },
    "Producer": {
        "Effect": "Allow",
        "Action": [
            "kinesis:PutRecord"
        ]
    },
    "PowerUser": {
        "Effect": "Allow",
        "NotAction": [
            "kinesis:CreateStream",
            "kinesis:DeleteStream"
        ]
    }
}