AWS DynamoDB

<dependency>
	<groupId>org.eclipse.store</groupId>
	<artifactId>afs-aws-dynamodb</artifactId>
	<version>2.1.0</version>
</dependency>
<dependency>
	<groupId>software.amazon.awssdk</groupId>
	<artifactId>dynamodb</artifactId>
	<version>2.17.272</version>
</dependency>
DynamoDbClient client = ...;
BlobStoreFileSystem fileSystem = BlobStoreFileSystem.New(
	DynamoDbConnector.Caching(client)
);
EmbeddedStorage.start(fileSystem.ensureDirectoryPath("storage"));

Configuration

When using external configuration AWS DynamoDB can be set as follows.

eclipsestore.properties
# optional, enforces checks
storage-filesystem.target=aws.dynamodb

storage-filesystem.aws.dynamodb.credentials.type=static
storage-filesystem.aws.dynamodb.credentials.access-key-id=my-access-key-id
storage-filesystem.aws.dynamodb.credentials.secret-access-key=my-secret-access-key
storage-filesystem.aws.dynamodb.credentials.region=us-east-1

Supported properties

Property Description Type

endpoint-override

The endpoint with which the SDK should communicate.

String

cache

Defines if the DynamoDbConnector should use caching.

Boolean

region

Configure the region with which the SDK should communicate. If this is not specified, the SDK will attempt to identify the endpoint automatically using the following logic:

  1. Check the 'aws.region' system property for the region.

  2. Check the 'AWS_REGION' environment variable for the region.

  3. Check the {user.home}/.aws/credentials and {user.home}/.aws/config files for the region.

  4. If running in EC2, check the EC2 metadata service for the region.

String

credentials.type

The type of the credentials provider. Supported values are:

  • "environment-variables" Credentials will be loaded from the AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY and AWS_SESSION_TOKEN environment variables.

  • "system-properties" Credentials will be loaded from the aws.accessKeyId, aws.secretAccessKey and aws.sessionToken system properties.

  • "static" Credentials will be loaded from the credentials.access-key-id and credentials.secret-access-key properties.

  • "default" Credentials provider chain that looks for credentials in this order:

    1. Java System Properties - aws.accessKeyId and aws.secretKey

    2. Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY

    3. Credential profiles file at the default location (~/.aws/credentials) shared by all AWS SDKs and the AWS CLI

    4. Credentials delivered through the Amazon EC2 container service if AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" environment variable is set and security manager has permission to access the variable,

    5. Instance profile credentials delivered through the Amazon EC2 metadata service

String

credentials.access-key-id

The access key id, used when "credentials.type" is "static".

String

credentials.secret-access-key

The secret access key, used when "credentials.type" is "static".

String

Depending on the amount of data and transactions, charges may apply depending on service usage. Please check with your service provider for details.