C# 使用aws工具包for.net在dynamodb中不添加项

C# 使用aws工具包for.net在dynamodb中不添加项,c#,amazon-web-services,amazon-dynamodb,aws-lambda,C#,Amazon Web Services,Amazon Dynamodb,Aws Lambda,我已经在aws toolkit for.net中创建了一个概要文件,我正在通过上传aws函数来创建一个lambda函数。 在aws控制台中测试时,该功能不会引发任何错误。但是,数据并没有添加到dynamodb表中 以下是代码片段: public void FunctionHandler(DynamoDBEvent dynamoEvent, ILambdaContext context1) { AmazonDynamoDBClient client = new Amazo

我已经在aws toolkit for.net中创建了一个概要文件,我正在通过上传aws函数来创建一个lambda函数。 在aws控制台中测试时,该功能不会引发任何错误。但是,数据并没有添加到dynamodb表中

以下是代码片段:

 public void FunctionHandler(DynamoDBEvent dynamoEvent, ILambdaContext context1)
    {
        AmazonDynamoDBClient client = new AmazonDynamoDBClient();
        var context = new DynamoDBContext(client);

        Table awsnet = Table.LoadTable(client, "bookmaster");
        context1.Logger.LogLine("In method : Function Handler : start");
        CreateBookItem(bookmaster);
    }

 private static void CreateBookItem(Table tblName)
    {
        var client = new AmazonDynamoDBClient();           
        Console.WriteLine("\n*** Executing CreateBookItem() ***");
        string sampleBookId = "3";
        var doc = new Document();
        doc["strid"] = sampleBookId;
        tblName.PutItemAsync(doc);
   }

此外,所有示例都使用“tblName.PutItem(doc)”,但它不可用。所以我使用了“tblName.PutItemAsync(doc)”。日志行在aws控制台中打印,但数据未添加到表中。

我能够用以下代码解决上述问题:

public void FunctionHandler(DynamoDBEvent dynamoEvent, ILambdaContext context1)
{
    AmazonDynamoDBClient client = new AmazonDynamoDBClient();
    var context = new DynamoDBContext(client);

    Table bookmaster = Table.LoadTable(client, "bookmaster");
    context1.Logger.LogLine("In method : Function Handler : start");            

    string result = PutDataAsync(bookmaster, context1).Result;
    context1.Logger.LogLine("Result = " + result);            
}

private static async Task<string> PutDataAsync(Table table , ILambdaContext context1)
{
    try
    {
        string sampleBookId = "3";
        var doc = new Document();
        doc["strid"] = sampleBookId;

        Document x = await table.PutItemAsync(doc);
        context1.Logger.LogLine("In method after put item async");
        return "success";
    }
    catch(Exception ex)
    {
        context1.Logger.LogLine("In method after put item async catch block");
        return "failed";
    }                     
}
public void FunctionHandler(DynamoDBEvent dynamoEvent,ILambdaContext context1)
{
AmazonDynamoDBClient=新的AmazonDynamoDBClient();
var context=新的DynamoDBContext(客户端);
Table bookmaster=Table.LoadTable(客户机,“bookmaster”);
LogLine(“在方法中:函数处理程序:start”);
字符串结果=PutDataAsync(bookmaster,context1);
context1.Logger.LogLine(“Result=“+Result”);
}
专用静态异步任务PutDataAsync(表,ILambdaContext context1)
{
尝试
{
字符串sampleBookId=“3”;
var doc=新文档();
doc[“strid”]=sampleBookId;
Document x=wait table.PutItemAsync(doc);
LogLine(“put item async之后的In方法”);
返回“成功”;
}
捕获(例外情况除外)
{
LogLine(“put item async catch块之后的In方法”);
返回“失败”;
}                     
}

能否检查tblName.PutItemAsync(doc)函数的响应