screwdriver-datastore-dynamodb
v3.4.0
Published
Screwdriver interface with dynamodb
Downloads
58
Readme
Screwdriver Datastore Dynamodb
interface with dynamodb
Usage
npm install screwdriver-datastore-dynamodb
Initialization
Datastore DynamoDB is an extension of the screwdriver-datastore-base class and implements all of the functions exposed.
Currently the AWS credentials will be loaded from the shared credentials file, or environment variables. Reference to AWS SDK documentation
http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-configuring.html#Configuring_the_SDK_in_Node_js
const DynamoDB = require('screwdriver-datastore-dynamodb');
const datastore = new DynamoDB();
Define a specific region and credentials to interact with
const DynamoDB = require('screwdriver-datastore-dynamodb');
const irelandDatastore = new DynamoDB({
region: 'eu-west-1',
accessKeyId: 'foo',
secretAccessKey: 'bar'
});
get
Obtain a single record given an id. If the record does not exist, it will return null
.
| Parameter | Type | Description | | :-- | :-- | :-- | |config | Object | Each of its properties defines your get operation | |config.table | String | The datastore table name | |config.params| Object | Each of its properties defines the get parameters | |config.params.id| String | The ID of the item to fetch from the datastore |
Example
const DynamoDB = require('screwdriver-datastore-dynamodb');
const datastore = new DynamoDB();
// successful get operation
return datastore.get({
table: 'fruits',
params: {
id: 'apple'
}
}).then((data) => {
console.log(data); // { color: 'red', id: 'apple', type: 'fruit' }
});
// get operation on a non-existing entry
return datastore.get({
table: 'fruits',
params: {
id: 'celery'
}
}).then((data) => {
console.log(data); // null
});
save
Save a record in the datastore. Returns saved data.
| Parameter | Type | Description | | :-- | :-- | :-- | |config | Object | Each of its properties defines your get operation | |config.table | String | The datastore table name | |config.params| Object | Each of its properties defines the get parameters | |config.params.id| String | The ID that the data is associated with | |config.params.data| Object | The data that will be saved in the datastore |
Example
const DynamoDB = require('screwdriver-datastore-dynamodb');
const datastore = new DynamoDB();
// successful save operation
return datastore.save({
table: 'pets',
params: {
id: 'toto',
data: {
type: 'dog'
}
}
}).then((data) => {
console.log(data); // { id: 'toto', type: 'dog' }
});
update
Update a record in the datastore. Returns null
if the record does not exist
| Parameter | Type | Description | | :-- | :-- | :-- | |config | Object | Each of its properties defines your get operation | |config.table | String | The datastore table name | |config.params| Object | Each of its properties defines the get parameters | |config.params.id| String | The ID that the data is associated with | |config.params.data| Object | The data to be updated in the datastore |
Example
const DynamoDB = require('screwdriver-datastore-dynamodb');
const datastore = new DynamoDB();
// successful update operation
return datastore.update({
table: 'pets',
params: {
id: 'toto',
data: {
bestFriend: 'Dorothy'
}
}
}).then((data) => {
console.log(data); // { id: 'toto', type: 'dog', bestFriend: 'Dorothy' }
});
// update operation on a non-existing entry
return datastore.update({
table: 'pets',
params: {
id: 'trex',
data: {
bestFriend: 'me'
}
}
}).then((data) => {
console.log(data); // null
});
scan
Scan for records in the datastore. Returns []
if the table is empty. Returns error if the table does not exist.
| Parameter | Type | Description | | :-- | :-- | :-- | |config | Object | Each of its properties defines your get operation | |config.table | String | The datastore table name | |config.params| Object | Query to filter on |
Example
const DynamoDB = require('screwdriver-datastore-dynamodb');
const datastore = new DynamoDB();
// successful scan operation
return datastore.scan({
table: 'animalNoises',
params: {}
}).then((data) => {
console.log(data);
});
Testing
npm test
License
Code licensed under the BSD 3-Clause license. See LICENSE file for terms.