Это не выходит из коробки. Если вам нужна цифра c PK, вы можете использовать что-то вроде этого:
client.update_item(
TableName='JiraTable', Key={
'PK': { 'S': 'PROJECT#my-project'
'SK': { 'S': 'PROJECT#my-project' }
}, }
UpdateExpression="SET #count = #count + :incr",
ExpressionAttributeNames={ "#count": "IssueCount", },
ExpressionAttributeValues={
":incr": { "N": "1" }
},
ReturnValues='UPDATED_NEW'
)
current_count = resp['Attributes']['IssueCount']['N']
resp = client.put_item(
TableName='JiraTable',
Item={
'PK': { 'S': 'PROJECT#my-project' },
'SK': { 'S': f"ISSUE#{current_count}"},
'IssueTitle': {'S':'Build DynamoDB data model'}
}
)
Если вы хотите использовать UUID и действительно уверены в этом, я предлагаю вам KSUID, KSUID - это уникальные идентификаторы, которые включают в себя временную метку в начале. Это учитывает как хронологический порядок, так и уникальность.
Тем не менее, вы действительно хотите использовать этот тип данных в качестве ключа раздела? Вам следует использовать некоторые данные, более информативные, например, электронную почту, иначе вы потеряете индекс, полезный для ваших шаблонов доступа.