C# 使用aws工具包for.net在dynamodb中不添加项
我已经在aws toolkit for.net中创建了一个概要文件,我正在通过上传aws函数来创建一个lambda函数。 在aws控制台中测试时,该功能不会引发任何错误。但是,数据并没有添加到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
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)函数的响应