我正在使用AWS DynamoDB和Cognito从Android授权访问(到目前为止未经授权的用户)。
我的数据库位于eu-central-1
,我使用com.amazonaws:aws-android-sdk-ddb:2.2.8
,因为:
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(context,
"eu-central-1:XXX",
Regions.EU_CENTRAL_1
);
AmazonDynamoDBClient ddbClient = new AmazonDynamoDBClient(credentialsProvider);
final DynamoDBMapper mapper = new DynamoDBMapper(ddbClient);
在日志中我看到:
AmazonWebServiceClient:找不到{cognito-identity,eu-central-1} 在区域元数据中,尝试使用标准构建端点 该地区的模式:'cognito-identity.eu-central-1.amazonaws.com'
然而,当我尝试获取数据时,我得到:
用户:arn:aws:sts :: XXX:assume-role / XXX / CognitoIdentityCredentials是 未授权执行:dynamodb:资源上的GetItem: ARN:AWS:dynamodb:US-东-1:XXX:表/ XXX
似乎连接到us-east-1而不是指定的EU-one。角色可以访问适当的数据库资源(EU one),并且在美国东部没有dynamoDB。我应该指定欧盟区域的任何想法,我错过了它?
答案 0 :(得分:0)
哦,正确的方法是:
ddbClient.setRegion(Region.getRegion(Regions.EU_CENTRAL_1));