首页 > 解决方案 > 使用开源库而不是 AWS Amplify 开发工具包

问题描述

我发现适用于 iOS 的 Amplify SDK 难以使用,可能是因为我们似乎不适合他们的目标受众。Amplify 为移动开发人员提供 BaaS 解决方案,因此 Amplify SDK 非常适合此用例。但是,我们的团队有专门的 DevOps 工程师,他们使用 Terraform 来预置 AWS 资源。虽然他们的文档指出可以将 Amplify SDK 与预先存在的资源一起使用,但我发现它充其量是笨重的——不得不amplifyconfiguration.json用有限的文档手动配置文件令人沮丧,而且我遇到了很多困难让 Auth SDK 与我们的 Cognito 设置一起工作。再加上供应商锁定,让我重新考虑将 Amplify SDK 集成到我们的移动客户端的决定。

这引出了我的问题:使用开源客户端库而不是 Amplify SDK 与 AWS 资源集成有什么明显的缺点吗?考虑到我们不需要 Amplify 的 BaaS 方面,只需要通过 Cognito 的 OAuth 和通过 AppSync 的 GraphQL,我们可以使用 AppAuth 和 Apollo 等库完全放弃 Amplify 吗?

标签: iosamazon-web-servicesamazon-cognitoaws-amplifyaws-appsync

解决方案


Amplify 有不同的组件,尽管起初并不明显:

  • AWS 控制台中的 Devops 工具,用于在控制台的 Amplify 部分中自动化、部署证书等
  • 有用于部署和管理应用程序以及生成 Cloudformation 模板的 CLI 工具链。
  • 最后也是最重要的还有 Amplify 客户端库,它与 Cognito 配合得很好。

您可以简单地自己使用客户端库,然后调用(在 Javascript 示例中;Amplify.configure()。如果您愿意,它们可以单独使用Cognito,(我们也这样做了,我们不使用 cli 部署我们的前端)。

您也不需要使用他们的REST客户端,但您需要捕获 Authentication 事件和相关令牌,并在您的请求中适当地使用它。

总之,听起来您不想使用整个 Amplify 平台,只是他们的客户端库,您可以像使用任何其他库一样使用它们。为您的框架复制他们的Cognito登录示例,并手动配置 Amplify,而不是使用 cli 生成项目和凭据(user-pool-id、appclient、域)。


推荐阅读