amazon-web-services - 如何让未经身份验证的 Cognito 用户访问 AWS 上的 Dynamobdb?

标签 amazon-web-services xamarin amazon-dynamodb amazon-cognito

与 Parse 相比,AWS 有一些学习曲线:)

  • 我在 dynamodb 中创建了一个名为“dynamotest”的表
  • IAM 显示我定义了以下角色 (policygen-Cognito_awst1Unauth_Role-201603071632):

{ "版本": "2012-10-17", “陈述”: [ { "Sid": "Stmt1457368244000", "效果": "允许", “行动”: [ “动态模块:*” ], “资源”:[ “arn:aws:dynamodb:eu-west-1:579313493028:table/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);

“凭据”是使用 Cognito 身份池 ID 创建的未经身份验证的用户的 Cognito 凭据。 Cognito-Synching 与这些凭据工作正常。

运行这段代码,表中没有数据。我也尝试使用对象持久化模型得到相同的结果。

我错过了什么步骤?没有错误 - 如果表中没有丢失数据,我什至不知道出了什么问题。

所以两个问题: 1/如何为未经身份验证的 Cognito 用户启用对 Dynamodb 的访问。我是否需要创建一些任意用户并附加角色/策略??? Regionpoint 有问题吗(因为我在欧洲)?

2/如何使用适用于 Xamarin 的 AWS 开发工具包检查错误/问题?

请帮忙 - 谢谢!!

最佳答案

使用具有未经身份验证的 Cogntio 身份的 dynamodb 的一般流程是您创建一个身份池并将自动生成的 unauth 策略修改为允许访问您的 dynamodb 表的新策略。然后,您可以将 Cogntio 凭据用于未经身份验证的身份,以对 dynamodb 执行操作。

如果您可以将“table.PutItemAsync(book)”更改为“await table.PutItemAsync(book)”,然后将该代码包装在 try/catch block 中,它将捕获服务异常,然后您可以记录和调试实际错误是什么。

以下是一些特定于您的用例的文档,用于将 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

关于amazon-web-services - 如何让未经身份验证的 Cognito 用户访问 AWS 上的 Dynamobdb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35850806/

相关文章:

c# - 启动/退出 Android.Provider.Settings Activity 时如何处理动画?

ios - Xamarin/Monotouch 中的 AudioSessionSetProperty

ios - Xamarin iOS - 缩放后绘制到图像上

amazon-dynamodb - DynamoDb范围键可以为空吗?

objective-c - DynamoDB - 项目未上传

amazon-web-services - 将Ember.js应用程序部署到AWS Elastic Beanstalk

amazon-web-services - API 网关选项方法抛出 403

amazon-web-services - 使用 s3cmd 时有什么方法可以停止/恢复从 AWS S3 下载文件?

python - 在 Amazon EC2 上远程访问 Python 网络服务器

amazon-dynamodb - 如何删除dynamodb中表的排序键