Question: In my db scheme, I need a autoincrement primary key. How I can realize this feature? 

PS For access to DynamoDB, I use [dynode](https://github.com/Wantworthy/dynode), module for Node.js.

Answer: 
Auto Increment is not good from performance perspective as it will overload specific shards while keeping others idle, It doesn't make even distribution if you're storing data to Dynamodb.

`awsRequestId` looks like its actually V.4 UUID (Random), code snippet below to try it: 

```
exports.handler = function(event, context, callback) {
    console.log('remaining time =', context.getRemainingTimeInMillis());
    console.log('functionName =', context.functionName);
    console.log('AWSrequestID =', context.awsRequestId);
    callback(null, context.functionName);
};

```

In case you want to generate this yourself, you can use <https://www.npmjs.com/package/uuid> or [Ulide](https://github.com/ulid/javascript) to generate different versions of UUID based on [RFC-4122](http://www.ietf.org/rfc/rfc4122.txt) 

* V1 (timestamp based)
* V3 (Namespace)
* V4 (Random)

For Go developers, you can use these packages from [Google's UUID](https://github.com/google/uuid), [Pborman](https://github.com/pborman/uuid), or [Satori](https://github.com/satori/go.uuid). Pborman is better in performance, check these [articles and benchmarks](http://antoniomo.com/blog/2017/05/28/unique-ids-in-golang-part-2/) for more details. 

More Info on Universal Unique Identifier Specification could be found [here](https://en.m.wikipedia.org/wiki/Universally_unique_identifier).
Create the new `file.js` and put this code:

```
exports.guid = function () {
    function _p8(s) {
        var p = (Math.random().toString(16)+"000000000").substr(2,8);
        return s ? "-" + p.substr(0,4) + "-" + p.substr(4,4) : p ;
    }
    return (_p8() + _p8(true) + _p8(true)+new Date().toISOString().slice(0,10)).replace(/-/g,"");
}

```

Then you can apply this function to the primary key id. It will generate the UUID.