如何检查 PutItemAsync 写入 Dynamodb 是否成功?
How to check if write to Dynamodb is successful for PutItemAsync?
我对如何检查 Dynamo Client 是否对 putItemAsync 成功感到困惑。我正在使用 .NET 库。
var res = _dynamoClient.PutItemAsync(request).Result;
if(res.HttpStatusCode != HttpStatusCode.OK)
{
_logger.Error($"Error {res.HttpStatusCode} with putting to DynamoDB for {request.Item} to {request.TableName}");
}
有没有正确的方法来检查Dyanmo写入是否成功?还是我只检查状态码?由于写限制而出现问题,我想在 PutItemAsync 失败时记录错误。我是否必须捕获任何异常?还是我的做法有效?
AmazonDynamoDBClient.PutItemAsync()
如果写入不成功将抛出异常。
可能的例外是:
ConditionalCheckFailedException
- 无法评估操作中指定的条件。
InternalServerErrorException
- 服务器端发生错误。
ItemCollectionSizeLimitExceededException
- 项目集合太大。
ProvisionedThroughputExceededException
- 您的请求率太高了。适用于 DynamoDB 的 AWS 开发工具包会自动重试收到此异常的请求。您的请求最终会成功,除非您的重试队列太大而无法完成。
RequestLimitExceededException
- 吞吐量超过了您帐户的当前吞吐量配额。
ResourceNotFoundException
- 操作试图访问不存在的 table 或索引。
TransactionConflictException
- 操作被拒绝,因为该项目正在进行交易。
如果方法调用 returns 没有异常,您可以放心地假设该项目已经写入。
我对如何检查 Dynamo Client 是否对 putItemAsync 成功感到困惑。我正在使用 .NET 库。
var res = _dynamoClient.PutItemAsync(request).Result;
if(res.HttpStatusCode != HttpStatusCode.OK)
{
_logger.Error($"Error {res.HttpStatusCode} with putting to DynamoDB for {request.Item} to {request.TableName}");
}
有没有正确的方法来检查Dyanmo写入是否成功?还是我只检查状态码?由于写限制而出现问题,我想在 PutItemAsync 失败时记录错误。我是否必须捕获任何异常?还是我的做法有效?
AmazonDynamoDBClient.PutItemAsync()
如果写入不成功将抛出异常。
可能的例外是:
ConditionalCheckFailedException
- 无法评估操作中指定的条件。InternalServerErrorException
- 服务器端发生错误。ItemCollectionSizeLimitExceededException
- 项目集合太大。ProvisionedThroughputExceededException
- 您的请求率太高了。适用于 DynamoDB 的 AWS 开发工具包会自动重试收到此异常的请求。您的请求最终会成功,除非您的重试队列太大而无法完成。RequestLimitExceededException
- 吞吐量超过了您帐户的当前吞吐量配额。ResourceNotFoundException
- 操作试图访问不存在的 table 或索引。TransactionConflictException
- 操作被拒绝,因为该项目正在进行交易。
如果方法调用 returns 没有异常,您可以放心地假设该项目已经写入。