在我的auth_cognito.py
和其他代码行中,我有:
item_to_insert_new_user = {
'email': id_token_gwt['email'],
'chars_left': free_chars_each_month,
'inbound_email': secrets.token_urlsafe(), # len 32 chars
'podcast_name': secrets.token_urlsafe(99).replace('_', ''),
'playbackRate': 1,
'isContinuousPlaying': True
}
table_users.put_item(
Item=item_to_insert_new_user,
ConditionExpression='attribute_not_exists(email)'
)
在我的表Users
中,我有主键email
。根据最近几个月我收到的多个错误,我发现有时在此代码之后看起来像是DynamoDB中的记录playbackRate
未命中,今天我发现了一条没有{{1} },而没有podcast_name
。其他Lambda可以更新isContinuousPlaying
(但不能删除),但是playbackRate
甚至没有人阅读。
我不知道可以检查什么,我知道DynamoDB很流行,并且我认为健壮的黄金时段解决方案,但是我的代码看起来很简单,可以防止意外删除此类值。该项目在Lambdas上运行。