= aws_dynamodb
:type: cache
:status: stable



////
     THIS FILE IS AUTOGENERATED!

     To make changes, edit the corresponding source file under:

     https://github.com/redpanda-data/connect/tree/main/internal/impl/<provider>.

     And:

     https://github.com/redpanda-data/connect/tree/main/cmd/tools/docs_gen/templates/plugin.adoc.tmpl
////

// © 2024 Redpanda Data Inc.


component_type_dropdown::[]


Stores key/value pairs as a single document in a DynamoDB table. The key is stored as a string value and used as the table hash key. The value is stored as
a binary value using the `data_key` field name.

Introduced in version 3.36.0.


[tabs]
======
Common::
+
--

```yml
# Common config fields, showing default values
label: ""
aws_dynamodb:
  table: "" # No default (required)
  hash_key: "" # No default (required)
  data_key: "" # No default (required)
```

--
Advanced::
+
--

```yml
# All config fields, showing default values
label: ""
aws_dynamodb:
  table: "" # No default (required)
  hash_key: "" # No default (required)
  data_key: "" # No default (required)
  consistent_read: false
  default_ttl: "" # No default (optional)
  ttl_key: "" # No default (optional)
  retries:
    initial_interval: 1s
    max_interval: 5s
    max_elapsed_time: 30s
  region: ""
  endpoint: ""
  credentials:
    profile: ""
    id: ""
    secret: ""
    token: ""
    from_ec2_role: false
    role: ""
    role_external_id: ""
```

--
======

A prefix can be specified to allow multiple cache types to share a single DynamoDB table. An optional TTL duration (`ttl`) and field
(`ttl_key`) can be specified if the backing table has TTL enabled.

Strong read consistency can be enabled using the `consistent_read` configuration field.

== Fields

=== `table`

The table to store items in.


*Type*: `string`


=== `hash_key`

The key of the table column to store item keys within.


*Type*: `string`


=== `data_key`

The key of the table column to store item values within.


*Type*: `string`


=== `consistent_read`

Whether to use strongly consistent reads on Get commands.


*Type*: `bool`

*Default*: `false`

=== `default_ttl`

An optional default TTL to set for items, calculated from the moment the item is cached. A `ttl_key` must be specified in order to set item TTLs.


*Type*: `string`


=== `ttl_key`

The column key to place the TTL value within.


*Type*: `string`


=== `retries`

Determine time intervals and cut offs for retry attempts.


*Type*: `object`


=== `retries.initial_interval`

The initial period to wait between retry attempts.


*Type*: `string`

*Default*: `"1s"`

```yml
# Examples

initial_interval: 50ms

initial_interval: 1s
```

=== `retries.max_interval`

The maximum period to wait between retry attempts


*Type*: `string`

*Default*: `"5s"`

```yml
# Examples

max_interval: 5s

max_interval: 1m
```

=== `retries.max_elapsed_time`

The maximum overall period of time to spend on retry attempts before the request is aborted.


*Type*: `string`

*Default*: `"30s"`

```yml
# Examples

max_elapsed_time: 1m

max_elapsed_time: 1h
```

=== `region`

The AWS region to target.


*Type*: `string`

*Default*: `""`

=== `endpoint`

Allows you to specify a custom endpoint for the AWS API.


*Type*: `string`

*Default*: `""`

=== `credentials`

Optional manual configuration of AWS credentials to use. More information can be found in xref:guides:cloud/aws.adoc[].


*Type*: `object`


=== `credentials.profile`

A profile from `~/.aws/credentials` to use.


*Type*: `string`

*Default*: `""`

=== `credentials.id`

The ID of credentials to use.


*Type*: `string`

*Default*: `""`

=== `credentials.secret`

The secret for the credentials being used.
[CAUTION]
====
This field contains sensitive information that usually shouldn't be added to a config directly, read our xref:configuration:secrets.adoc[secrets page for more info].
====



*Type*: `string`

*Default*: `""`

=== `credentials.token`

The token for the credentials being used, required when using short term credentials.


*Type*: `string`

*Default*: `""`

=== `credentials.from_ec2_role`

Use the credentials of a host EC2 machine configured to assume https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html[an IAM role associated with the instance^].


*Type*: `bool`

*Default*: `false`
Requires version 4.2.0 or newer

=== `credentials.role`

A role ARN to assume.


*Type*: `string`

*Default*: `""`

=== `credentials.role_external_id`

An external ID to provide when assuming a role.


*Type*: `string`

*Default*: `""`


