serverless-dynamodb-local
serverless-dynamodb-local copied to clipboard
Invalid AWS Mock Access Key ID through a new AWS-SDK version
Due to a new AWS_SDK version only the following ACCESS KEY ID and SECRETS are allowed:
DynamoDB local version 2.0.0 and greater AWS_ACCESS_KEY_ID can contain the only letters (A–Z, a–z) and numbers (0–9).
I've already created a PR to fix this issue: https://github.com/99x/serverless-dynamodb-local/pull/298
Thanks for the PR! This issue is blocking our pipelines as well. Any ideas for a workaround in the meantime?
@henriklippke -- I've published a fork to npm with your changes in.
I haven't yet gotten a chance to try it (I'll do so later this morning in some of my other projects)
Let me know if there's any issues.
https://www.npmjs.com/package/@rahulp959/serverless-dynamodb-local
As temp solution for me helped to inherit serverless-dynamodb-local plugin with local one and override dynamodbOptions method as per @henriklippke PR, and use this plugin in my project
class ServerlessDynamodbLocalFix extends ServerlessDynamodbLocal {
dynamodbOptions(options) {
let dynamoOptions = {};
if (options && options.online) {
...
} else {
dynamoOptions = {
endpoint: `http://${this.host}:${this.port}`,
region: 'localhost',
accessKeyId: 'MOCKACCESSKEYID',
secretAccessKey: 'MOCKSECRETACCESSKEY',
convertEmptyValues:
options && options.convertEmptyValues ? options.convertEmptyValues : false,
};
}
return {
raw: new AWS.DynamoDB(dynamoOptions),
doc: new AWS.DynamoDB.DocumentClient(dynamoOptions),
};
}
}
module.exports = ServerlessDynamodbLocalFix;
Wrapping a jar file in a node module used by a plugin. What could possibly go wrong?
Another option for a longer-term workaround with ongoing maintenace support committed:
Why: Unfortunately this package (serverless-dynamodb-local) doesn't appear to be maintained, with no new releases to NPM in over 2 years. Many have tried to contact the authors previously, but there seems to be little engagement. Additionally, the person who seemed to be in charge of their open-source work has now left the company.
Solution: You can use serverless-dynamodb, a maintained fork, instead. (Disclaimer: I am a contributor to this fork). It is a drop-in replacement for this package, and is updated to fix this bug. This is a drop-in replacement for serverless-dynamodb-local, so to upgrade simply:
- Uninstall
serverless-dynamodb-local, e.g.npm uninstall serverless-dynamodb-local - Install
serverless-dynamodb, e.g.npm install serverless-dynamodb - Update references in your code, including your serverless config, from
serverless-dynamodb-localtoserverless-dynamodb(quite possible that you won't have any, as you just refer to it from your serverless config) - (optional) Update your serverless config custom
dynamodbkey toserverless-dynamodb
Of course, it's all still open-source and MIT licensed. Ownership of this new package sits with a registered charity, that is committed to maintaining the package into the future and is open to contributions from the community.
In any case would be open to feedback on the fork - can drop create an issue in that repository or email me (address on profile).