Module: kinesis-stream
Terraform module to deploy an Amazon Kinesis Data Stream on AWS.
Usage
For a complete example, see examples/complete.
For automated tests of the complete example using bats and Terratest (which tests and deploys the example on AWS), see test.
# Create a standard label resource. See [null-label](https://github.com/cloudposse/terraform-null-label/#terraform-null-label--)
module "label" {
  source  = "cloudposse/label/null"
  # Cloud Posse recommends pinning every module to a specific version, though usually you want to use the current one
  # version = "x.x.x"
  namespace = "eg"
  name      = "example"
}
module "kinesis" {
  source  = "cloudposse/kinesis-stream/aws"
  # Cloud Posse recommends pinning every module to a specific version
  # version = "x.x.x"
  shard_count = 2
  context = module.label.this
}
Variables
Required Variables
Optional Variables
- consumer_count(- number) optional
- Number of consumers to register with Kinesis stream - Default value: - 0
- encryption_type(- string) optional
- The encryption type to use. Acceptable values are - NONEand- KMS.- Default value: - "KMS"
- enforce_consumer_deletion(- bool) optional
- A boolean that indicates all registered consumers should be deregistered from the stream so that the stream can be destroyed without error. - Default value: - true
- kms_key_id(- string) optional
- The GUID for the customer-managed KMS key to use for encryption. - Default value: - "alias/aws/kinesis"
- retention_period(- number) optional
- Length of time data records are accessible after they are added to the stream. The maximum value of a stream's retention period is 168 hours. Minimum value is 24. Default is 24. - Default value: - 24
- shard_count(- number) optional
- The number of shards that the stream will use - Default value: - 1
- shard_level_metrics(- list(string)) optional
- A list of shard-level CloudWatch metrics which can be enabled for the stream. - Default value: - [
 "IncomingBytes",
 "OutgoingBytes"
 ]
- stream_mode(- string) optional
- Specifies the capacity mode of the stream. Must be either - PROVISIONEDor- ON_DEMAND. If- ON_DEMANDis used, then- shard_countis ignored.- Default value: - null
Context Variables
The following variables are defined in the context.tf file of this module and part of the terraform-null-label pattern.
context.tf file of this module and part of the terraform-null-label pattern.- additional_tag_map(- map(string)) optional
- Additional key-value pairs to add to each map in - tags_as_list_of_maps. Not added to- tagsor- id.
 This is for some rare cases where resources want additional configuration of tags
 and therefore take a list of maps with tag key, value, and additional configuration.- Required: No - Default value: - { }
- attributes(- list(string)) optional
- ID element. Additional attributes (e.g. - workersor- cluster) to add to- id,
 in the order they appear in the list. New attributes are appended to the
 end of the list. The elements of the list are joined by the- delimiter
 and treated as a single ID element.- Required: No - Default value: - [ ]
- context(- any) optional
- Single object for setting entire context at once. 
 See description of individual variables for details.
 Leave string and numeric variables as- nullto use default value.
 Individual variable settings (non-null) override settings in context object,
 except for attributes, tags, and additional_tag_map, which are merged.- Required: No - Default value: - {
 "additional_tag_map": {},
 "attributes": [],
 "delimiter": null,
 "descriptor_formats": {},
 "enabled": true,
 "environment": null,
 "id_length_limit": null,
 "label_key_case": null,
 "label_order": [],
 "label_value_case": null,
 "labels_as_tags": [
 "unset"
 ],
 "name": null,
 "namespace": null,
 "regex_replace_chars": null,
 "stage": null,
 "tags": {},
 "tenant": null
 }
- delimiter(- string) optional
- Delimiter to be used between ID elements. 
 Defaults to- -(hyphen). Set to- ""to use no delimiter at all.- Required: No - Default value: - null
- descriptor_formats(- any) optional
- Describe additional descriptors to be output in the - descriptorsoutput map.
 Map of maps. Keys are names of descriptors. Values are maps of the form
 - \{<br/> format = string<br/> labels = list(string)<br/> \}
 (Type is- anyso the map values can later be enhanced to provide additional options.)
 - formatis a Terraform format string to be passed to the- format()function.
 - labelsis a list of labels, in order, to pass to- format()function.
 Label values will be normalized before being passed to- format()so they will be
 identical to how they appear in- id.
 Default is- {}(- descriptorsoutput will be empty).- Required: No - Default value: - { }
- enabled(- bool) optional
- Set to false to prevent the module from creating any resources 
 Required: No- Default value: - null
- environment(- string) optional
- ID element. Usually used for region e.g. 'uw2', 'us-west-2', OR role 'prod', 'staging', 'dev', 'UAT' 
 Required: No- Default value: - null
- id_length_limit(- number) optional
- Limit - idto this many characters (minimum 6).
 Set to- 0for unlimited length.
 Set to- nullfor keep the existing setting, which defaults to- 0.
 Does not affect- id_full.- Required: No - Default value: - null
- label_key_case(- string) optional
- Controls the letter case of the - tagskeys (label names) for tags generated by this module.
 Does not affect keys of tags passed in via the- tagsinput.
 Possible values:- lower,- title,- upper.
 Default value:- title.- Required: No - Default value: - null
- label_order(- list(string)) optional
- The order in which the labels (ID elements) appear in the - id.
 Defaults to ["namespace", "environment", "stage", "name", "attributes"].
 You can omit any of the 6 labels ("tenant" is the 6th), but at least one must be present.- Required: No - Default value: - null
- label_value_case(- string) optional
- Controls the letter case of ID elements (labels) as included in - id,
 set as tag values, and output by this module individually.
 Does not affect values of tags passed in via the- tagsinput.
 Possible values:- lower,- title,- upperand- none(no transformation).
 Set this to- titleand set- delimiterto- ""to yield Pascal Case IDs.
 Default value:- lower.- Required: No - Default value: - null
- labels_as_tags(- set(string)) optional
- Set of labels (ID elements) to include as tags in the - tagsoutput.
 Default is to include all labels.
 Tags with empty values will not be included in the- tagsoutput.
 Set to- []to suppress all generated tags.
 Notes:
 The value of the- nametag, if included, will be the- id, not the- name.
 Unlike other- null-labelinputs, the initial setting of- labels_as_tagscannot be
 changed in later chained modules. Attempts to change it will be silently ignored.- Required: No - Default value: - [
 "default"
 ]
- name(- string) optional
- ID element. Usually the component or solution name, e.g. 'app' or 'jenkins'. 
 This is the only ID element not also included as a- tag.
 The "name" tag is set to the full- idstring. There is no tag with the value of the- nameinput.- Required: No - Default value: - null
- namespace(- string) optional
- ID element. Usually an abbreviation of your organization name, e.g. 'eg' or 'cp', to help ensure generated IDs are globally unique 
 Required: No- Default value: - null
- regex_replace_chars(- string) optional
- Terraform regular expression (regex) string. 
 Characters matching the regex will be removed from the ID elements.
 If not set,- "/[^a-zA-Z0-9-]/"is used to remove all characters other than hyphens, letters and digits.- Required: No - Default value: - null
- stage(- string) optional
- ID element. Usually used to indicate role, e.g. 'prod', 'staging', 'source', 'build', 'test', 'deploy', 'release' 
 Required: No- Default value: - null
- tags(- map(string)) optional
- Additional tags (e.g. - {'BusinessUnit': 'XYZ'}).
 Neither the tag keys nor the tag values will be modified by this module.- Required: No - Default value: - { }
- tenant(- string) optional
- ID element (Rarely used, not included by default). A customer identifier, indicating who this instance of a resource is for 
 Required: No- Default value: - null
Outputs
- consumers
- List of consumers registered with Kinesis stream. 
- name
- Name of the Kinesis stream. 
- shard_count
- Number of shards provisioned. 
- stream_arn
- ARN of the Kinesis stream. 
Dependencies
Requirements
- terraform, version:- >= 1.0
- aws, version:- >= 4.0
Providers
- aws, version:- >= 4.0
Modules
| Name | Version | Source | Description | 
|---|---|---|---|
| this | 0.25.0 | cloudposse/label/null | n/a | 
Resources
The following resources are used by this module:
- aws_kinesis_stream.default(resource)
- aws_kinesis_stream_consumer.default(resource)
Data Sources
The following data sources are used by this module: