在Android应用程序中使用Amazon DynamoDB时出错(ResourceNotFoundException)

时间:2017-09-10 01:16:37

标签: android amazon-web-services amazon-dynamodb

我试图跟随this guide而没有取得多大成功。我已经创建了适当的IAM角色并将适当的角色策略附加到该角色,并且我创建了一个名为" TaskShareGroups"的DyanmoDB表。使用主分区键"组名" (一个字符串)。

我按如下方式设置了我的课程:

@DynamoDBTable(tableName = "TaskShareGroups")
public class Group implements Parcelable {

String name;

public Group(String name) {
    this.name = name;
}

@Override
public String toString() {
    return name;
}

@DynamoDBHashKey(attributeName = "Group Name")
public String getName() {
    return name;
}

这是我的代码尝试将Group对象写入数据库。

Runnable saveGroup = new Runnable() {
    public void run() {
        try {
            mapper.save(g);
        } catch (Exception e) {
            Log.e(TAG, e.getMessage());
        }
    }
};
CognitoCachingCredentialsProvider credentials =
               new CognitoCachingCredentialsProvider(
                       getApplicationContext(),
                       identity_pool_ID,                    
                       Regions.US_EAST_2);


ddbClient = new AmazonDynamoDBClient(credentials);
mapper = new DynamoDBMapper(ddbClient);
g = new Group(gName);

Thread mythread = new Thread(saveGroup);
mythread.start();

我运行时遇到的错误:

Requested resource not found (Service: AmazonDynamoDB; Status Code: 400; Error Code: ResourceNotFoundException; Request ID: NPBOR9KLFA7T5RLQOID7F7T3KNVV4KQNSO5AEMVJF66Q9ASUAAJG)

我不太确定发生了什么。我并不完全确定我是否正确设置了未经身份验证的角色;我的异常似乎表明它找不到正确的表格但我可以通过控制台清楚地看到表格。

Android Studio也告诉我,我用于DynamoDBMapper的构造函数已被折旧;但这是上述指南建议的方法。这可能是问题吗?

如果我还应该在本文档中添加任何其他相关信息,请与我们联系。

1 个答案:

答案 0 :(得分:1)

您应该使用picture = request.FILES.get('picture', None) file_name = 'test' directory = 'myfolder' format = '.jpg' GoogleCloudStorageUtil.uploadMediaObject(file=picture,file_name=file_name,directory=directory,format=format) 客户端上的setRegion API正确设置您的区域。以下是API参考的链接:http://docs.aws.amazon.com/AWSAndroidSDK/latest/javadoc/com/amazonaws/services/dynamodbv2/AmazonDynamoDB.html#setRegion-com.amazonaws.regions.Region-

确保将区域正确设置到桌子的位置。

谢谢, 罗汉