对
import amplify auth
执行 Cognito User Pool and Identity Pool
并传递 Web Client
以及 Native client
失败,并出现以下错误。有什么遗漏请告诉我。 TIA
Cannot import Identity Pool without roles.
Error: Cannot import Identity Pool without roles.
at IdentityPoolService.getIdentityPoolRoles (/usr/local/lib/node_modules/@aws-amplify/cli/node_modules/amplify-provider-awscloudformation/src/aws-utils/IdentityPoolService.ts:88:13)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at importServiceWalkthrough (/usr/local/lib/node_modules/@aws-amplify/cli/node_modules/@aws-amplify/amplify-category-auth/src/provider-utils/awscloudformation/import/index.ts:322:74)
at Object.importResource (/usr/local/lib/node_modules/@aws-amplify/cli/node_modules/@aws-amplify/amplify-category-auth/src/provider-utils/awscloudformation/import/index.ts:45:42)
at Object.executeAmplifyCommand (/usr/local/lib/node_modules/@aws-amplify/cli/node_modules/@aws-amplify/amplify-category-auth/src/index.js:421:3)
at executePluginModuleCommand (/usr/local/lib/node_modules/@aws-amplify/cli/src/execution-manager.ts:178:3)
at executeCommand (/usr/local/lib/node_modules/@aws-amplify/cli/src/execution-manager.ts:30:5)
at Object.run (/usr/local/lib/node_modules/@aws-amplify/cli/src/index.ts:205:5)
也遇到这个问题了。 Amplify Auth 导入文档提到以下内容:
您的身份池需要:
- 与您的身份池具有信任关系的经过身份验证的角色
如果您想对您的 Amplify 类别使用任何访客用户访问权限,请使用- 可选 未经身份验证的角色。 (示例:S3 存储桶或 REST API 端点的访客访问)
然而,我:
仍然没有帮助。
然后我启用了“允许未经身份验证的身份”(尽管我不想要这个),事情进展顺利。这是因为此设置将自动生成两个经过身份验证和未经身份验证的角色并为您附加它们。
但是,由于我不想进行未经身份验证的身份访问,所以我再次禁用了它。根据该设置的工作原理,我想知道未经身份验证的角色是否真的是“可选”,但事实证明并非如此。至少在最新的 Amplify 系统中不是这样。一定有人在没有更新文档的情况下改变了这种行为。
解决方案:您的身份池需要:
与您的身份池具有信任关系的经过身份验证的角色
要检查您的身份池是否设置正确,请在 AWS CLI 中运行此函数:
- 与您的身份池具有信任关系的未经身份验证的角色
aws cognito-identity get-identity-pool-roles --identity-pool-id "your identity pool id here"
你应该得到这样的东西:
{
"IdentityPoolId": "your identity pool id here",
"Roles": {
"authenticated": "your authenticated role ARN here"
"unauthenticated": "your authenticated role ARN here"
}
}