如何检查 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 没有异常,您可以放心地假设该项目已经写入。