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: 
For those coding in Java, [DynamoDBMapper](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBMapper.html) can now generate unique UUIDs on your behalf.

> 
> DynamoDBAutoGeneratedKey
> 
> 
> Marks a partition key or sort key property as being auto-generated.
>  DynamoDBMapper will generate a random UUID when saving these
>  attributes. Only String properties can be marked as auto-generated
>  keys.
> 
> 
> 

Use the [DynamoDBAutoGeneratedKey](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBMapper.Annotations.html) annotation like this

```
@DynamoDBTable(tableName="AutoGeneratedKeysExample")
public class AutoGeneratedKeys { 
    private String id;

    @DynamoDBHashKey(attributeName = "Id")
    @DynamoDBAutoGeneratedKey
    public String getId() { return id; }
    public void setId(String id) { this.id = id; } 

```

As you can see in the example above, you can apply both the DynamoDBAutoGeneratedKey and DynamoDBHashKey annotation to the same attribute to generate a unique hash key.
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).