【发布时间】:2017-07-02 18:19:41
【问题描述】:
我正在学习微服务架构并整理一些概念证明,但我碰壁了。
我已经使用 Lambda 和公共 API 网关创建了一个无服务器的用户服务,该服务托管在亚马逊 AWS 上,允许您查询用户数据库。这很简单,看起来像:
api/users?email=myemail@gmail.com
此 API 具有与之关联的授权,因为允许某些用户了解其他用户,而有些则不允许。因此,对于某些用户,这将返回 404(或者可能是 403),而对于其他用户,他们会得到 200 和结果。
现在我来编写身份验证服务,它接受电子邮件地址和密码并返回一个令牌。我应该如何从用户服务获取用户数据?我很想只调用 REST API,但它有授权,因为它是公开的。此外,公共 API 不会返回我需要的(散列)密码字段。
所以我的问题:
我是否应该有一个单独的、私有的 API 用于返回所有信息的服务间通信,或者我是否应该有一个魔术授权密钥发送到 api,它将请求者标识为内部服务,以便显示一切。
补充问题:
如果我确实将公共 API 与神奇的身份验证代码一起使用,我应该只使用客户端服务将使用的相同公共 api url 调用 fetch,还是应该调用一些内部 amazon url?
【问题讨论】:
标签: amazon-web-services aws-lambda microservices aws-api-gateway