Cognito with DynamoDB - 连接到us-east-1而不是eu-central-1

时间:2017-01-22 16:14:12

标签: amazon-web-services amazon-dynamodb amazon-cognito aws-cognito

我正在使用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。我应该指定欧盟区域的任何想法,我错过了它?

1 个答案:

答案 0 :(得分:0)

哦,正确的方法是:

ddbClient.setRegion(Region.getRegion(Regions.EU_CENTRAL_1));