首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Serverless -用于服务之间通信的选项?

Serverless -用于服务之间通信的选项?
EN

Stack Overflow用户
提问于 2017-03-25 16:03:47
回答 2查看 3.8K关注 0票数 2

我有一些不同的服务(由Serverless Framework生成),它们需要在彼此之间进行通信。数据是敏感的,需要身份验证。

我的当前策略是使用json令牌为每个服务之间的通信创建一个api密钥,如下所示。

代码语言:javascript
复制
fM61kaav8l3y_aLC/3ZZF7nlQGyYJsZVpLLiux5d84UnAoHOqLPu4dw3W7MiGwPiyN

服务之间的通信还有哪些其他选项?这种做法有什么坏处吗?要重申的是,需要对请求进行身份验证,并适当处理敏感数据。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-25 23:49:04

您需要同步或异步通信吗?一种很好的方法是使用事件,因为aws是作为一个基于事件的系统设计的。因此您可以使用SNSSQS来解耦您的服务。

如果您只想从一个服务调用另一个服务,可以通过aws 见文档直接调用lambda函数。因此,您不会添加API网关端点,您的lambda将保持私有。

为了更好地回答您的问题,您应该对您的应用程序进行简短的概述,并举例说明您将进行的跨服务调用。

票数 5
EN

Stack Overflow用户

发布于 2017-03-26 05:08:32

据我所知,您打算使给定服务中的各种功能成为私有功能。在这样做时,每个服务都可能有类似于以下内容的serverless.yml文件:图像显示了与无服务器框架rest一起使用的api键的设置。

虽然这是一种合适的方法,但它不如使用**自定义授权器**。

自定义授权器允许您在目标AWS Lambda函数之前运行AWS Lambda函数。这对于微服务体系结构很有用,或者当您只想在运行业务逻辑之前做一些授权时。

如果您在使用onEnter时熟悉ReactRouter函数,那么自定义授权器之间的逻辑是相似的。

关于实现,由于利用不同的服务来部署不同的功能,请考虑将该函数部署到AWS,并注意Lambda函数的ARN。按照这些链接查看自定义授权程序的适当设置。

当授权器不是服务的一部分,而是部署在lambda上时,这些映像显示了用于使用自定义授权器的serverless.yml文件。

下面的github项目aws-node-auth0-custom-authorizers-api/frontend是一个很好的例子,说明了当授权程序功能与私有函数处于同一服务中时,如何实现自定义授权器。注意,您的情况略有不同,但是您应该期望它们的授权程序功能逻辑是简单的--只有项目结构应该不同。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43018630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档