对 AWS Analytics 和 Cognito Sync 使用相同的未经身份验证的身份

Use same unauthenticated identity for AWS Analytics and Cognito Sync

我正在开发一个应用程序,它同时使用 AWS Mobile Analytics 和 Cognito Sync 来处理用户数据。通过查看我的网络日志,我可以看到移动分析的 AMA.Manager 发出与 Cognito Sync 相同的 API 调用以从 AWS 请求有限的临时凭证。

AWS.config.credentials.get()

我的问题是 new AMA.Manager()new AWS.CognitoSyncManager() 是否有可能使用最初从 AWS.config.credentials.get() 请求的相同未验证身份?假设他们都使用相同的身份池。

解决了我自己的问题。只要 AMA.ManagerAWS.CognitoSyncManager 使用同一个凭据提供程序使用单个 IdentityPoolId 进行初始化,它就可以正常工作。我的代码示例如下:

AWS.config.region = 'us-east-1';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: SHARED_COGNITO_IDENTITY_POOL_ID
});

var analytics = null;
var syncClient = null;
var options = {
    appId : MOBILE_ANALYTICS_APP_ID
};

AWS.config.credentials.get(function(err) {

    if(!err){
        syncClient = new AWS.CognitoSyncManager();
        analytics = new AMA.Manager(options);
    }
});