module LaunchDarkly::Integrations::DynamoDB
Integration with [DynamoDB](aws.amazon.com/dynamodb/).
Note that in order to use this integration, you must first install one of the AWS SDK gems: either `aws-sdk-dynamodb`, or the full `aws-sdk`.
@since 5.5.0
Public Class Methods
Creates a DynamoDB-backed persistent feature store. For more details about how and why you can use a persistent feature store, see the [SDK reference guide](docs.launchdarkly.com/v2.0/docs/using-a-persistent-feature-store).
To use this method, you must first install one of the AWS SDK gems: either `aws-sdk-dynamodb`, or the full `aws-sdk`. Then, put the object returned by this method into the `feature_store` property of your client configuration ({LaunchDarkly::Config}).
@example Configuring the feature store
store = LaunchDarkly::Integrations::DynamoDB::new_feature_store("my-table-name") config = LaunchDarkly::Config.new(feature_store: store) client = LaunchDarkly::LDClient.new(my_sdk_key, config)
Note that the specified table must already exist in DynamoDB
. It must have a partition key called “namespace”, and a sort key called “key” (both strings). The SDK does not create the table automatically because it has no way of knowing what additional properties (such as permissions and throughput) you would want it to have.
By default, the DynamoDB
client will try to get your AWS credentials and region name from environment variables and/or local configuration files, as described in the AWS SDK documentation. You can also specify any supported AWS SDK options in `dynamodb_opts`– or, provide an already-configured DynamoDB
client in `existing_client`.
@param table_name [String] name of an existing DynamoDB
table @param opts [Hash] the configuration options @option opts [Hash] :dynamodb_opts options to pass to the DynamoDB
client constructor (ignored if you specify `:existing_client`) @option opts [Object] :existing_client an already-constructed DynamoDB
client for the feature store to use @option opts [String] :prefix namespace prefix to add to all keys used by LaunchDarkly
@option opts [Logger] :logger a `Logger` instance; defaults to `Config.default_logger` @option opts [Integer] :expiration (15) expiration time for the in-memory cache, in seconds; 0 for no local caching @option opts [Integer] :capacity (1000) maximum number of items in the cache @return [LaunchDarkly::Interfaces::FeatureStore] a feature store object
# File lib/ldclient-rb/integrations/dynamodb.rb, line 41 def self.new_feature_store(table_name, opts) core = LaunchDarkly::Impl::Integrations::DynamoDB::DynamoDBFeatureStoreCore.new(table_name, opts) return LaunchDarkly::Integrations::Util::CachingStoreWrapper.new(core, opts) end