我正在使用带有 Cognito 的 AWS DynamoDB 来授权来自 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:assumed-role/XXX/CognitoIdentityCredentials 无权执行:dynamodb:GetItem on resource:arn:aws:dynamodb:us-east-1:XXX:table/XXX
它似乎连接到 us-east-1 而不是指定的 EU 连接。角色可以访问适当的数据库资源(欧盟之一),并且美国东部没有 dynamoDB。我应该在哪里指定欧盟地区但我错过了它的任何想法?