与Parse相比,AWS有一点学习曲线:)
{ "版本":" 2012-10-17", "陈述":[ { " Sid":" Stmt1457368244000", "效果":"允许", "行动":[ " dynamodb:*" ] "资源":[ " ARN:AWS:dynamodb:EU-西-1:579313493028:表/ dynamotest" ] } ] }
在Xamarin应用程序中,我有以下代码:
//测试对Dynamo的访问
var client = new AmazonDynamoDBClient(credentials, RegionEndpoint.EUWest1);
Table table = Table.LoadTable(client, "dynamotest");
var book = new Document();
book["Id"] = 101;
book["Title"] = "Book 101 Title";
book["ISBN"] = "11-11-11-11";
book["Authors"] = new List<string> { "Author 1", "Author 2" };
book["InStock"] = new DynamoDBBool(true);
book["QuantityOnHand"] = new DynamoDBNull();
table.PutItemAsync(book);
&#34;凭证&#34;是使用Cognito标识池ID创建的未经身份验证的使用者的Cognito凭据。 Cognito-与这些凭证同步工作正常。
运行此代码时,表中没有数据。我也尝试使用具有相同结果的对象持久性模型。
我错过了哪些步骤?没有错误 - 如果表格中没有数据丢失,我甚至不知道出现了什么问题。
所以有两个问题: 1 /如何为未经身份验证的Cognito用户启用Dynamodb访问权限。我是否需要创建一些任意用户并附加角色/策略??? Regionpoint是否存在问题(我在欧洲)?
2 /如何使用AWS SDK for Xamarin检查错误/问题?
请帮助 - 谢谢!!
答案 0 :(得分:1)
使用具有未经身份验证的Cogntio身份的dynamodb的一般流程是您创建一个身份池并将自动生成的unauth策略修改为允许访问您的dynamodb表的新策略。然后,您可以使用Cogntio凭证获取未经身份验证的身份,以对Dynamodb执行操作。
如果您可以将'table.PutItemAsync(book)更改为'await table.PutItemAsync(book)'然后将该代码包装在try / catch块中,它将捕获服务异常,然后您可以记录和调试什么是实际错误。
以下是一些特定于您的用例的文档,以便将DynamoDb与Cogntio一起使用
http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/dynamodb_om.html http://docs.aws.amazon.com/mobile/sdkforxamarin/developerguide/dynamodb-integration-docmodel.html