首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >同一AWS API网关中的多个微服务

同一AWS API网关中的多个微服务
EN

Stack Overflow用户
提问于 2020-06-22 15:58:03
回答 1查看 585关注 0票数 0

我正在开发一系列的微服务,它们需要共享相同的API网关。这是我的结构:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/
   /assessments
      /skills
      /work-values      
   /graphql

/skills/work-values/graphql是我尝试向同一个API网关注册的3种不同的微服务。我遇到的问题是如何获取/skills/skills文件,/work-values路由在“评估”下嵌套。/assessments本身没有任何功能。它的存在只是为了让我们能够在相同的URL路径结构下组织所有的评估。

这里是我的‘/work-values’的serverless.yaml文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
service:
  name: assessments-workvalues

...
custom:
  stage: ${opt:stage, self:provider.stage}

provider:
  ...
  apiGateway:
    restApiId:
       # THE FOLLOWING REFERENCES A VARIABLE FROM MY API GATEWAY ROOT
      'Fn::ImportValue': ${self:custom.stage}-ApiGatewayRestApiId
    restApiRootResourceId: 
      'Fn::ImportValue':   # HOW DO I GET THE PROPER VALUE HERE TO MAP TO `/assessments`?
    ...

functions:
  ...

,这是我的serverless.yaml文件,用于‘/评估’:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
service:
  name: assessments

custom:
  stage: ${opt:stage, self:provider.stage}

provider:
  ...
  apiGateway:
    restApiId:
       # THE FOLLOWING REFERENCES A VARIABLE FROM MY API GATEWAY ROOT
      'Fn::ImportValue': ${self:custom.stage}-ApiGatewayRestApiId
    restApiRootResourceId:
      'Fn::ImportValue': ${self:custom.stage}-ApiGatewayRestApiRootResourceId   

functions:
  ...

resources:
  Outputs:
    ApiGatewayRestApiId:
      Value:
        Ref: ApiGatewayRestApi
      Export:
        Name: ${self:custom.stage}-Assessments-ApiGatewayRestApiId
    ApiGatewayRestApiRootResourceId:
      Value:
         Fn::GetAtt:
          - ApiGatewayRestApi
          - RootResourceId 
      Export:
        Name: ${self:custom.stage}-Assessments-ApiGatewayRestApiRootResourceId

问题似乎是为评估路由编写serverless.yaml文件中的输出。当我运行无服务器部署时,会收到以下错误消息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Error: The CloudFormation template is invalid: Unresolved resource dependencies [ApiGatewayRestApi] in the Outputs block of the template

在服务之间共享API端点文章的末尾,作者提到“您必须从计费-api导入/billing,所以新服务只需要创建/ /billing/xyz部分”。(这似乎是我所处的情况)。但是,作者没有解释如何导入/billing。或者在我的例子中,如何将/assessments导入到每个评估微服务的serverless.yaml文件中?

EN

回答 1

Stack Overflow用户

发布于 2020-06-23 09:23:26

经过进一步的研究,我发现了这样的联系:

在AWS上拆分无服务器框架API

最后,我按照上面文章中的内容重新设计了我最初的方法。我遗漏的部分是有一个根或基无服务器文件,该文件用于在API网关中创建路由,并将这些占位符作为输出公开,随后的无服务器子文件将这些占位符作为输入,用于将您的子lambda函数连接到API Gateway伞下的路由。

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

https://stackoverflow.com/questions/62525285

复制
相关文章
微服务技术栈:API网关中心,落地实现方案
客户端与各个业务子系统的通信必须通过一个统一的外观对象进行,外观模式提供一个高层次的接口,使得子系统更易于使用:
知了一笑
2020/08/25
1K0
微服务技术栈:API网关中心,落地实现方案
Micro api网关中间件
此时我们访问我们的API接口:http://localhost:9000/greeter/call
派大星在吗
2021/12/15
6230
SpringBoot同一个服务多个端口启动
设置完端口后点击下 空白处,否则有可能端口设置不上去 如果没有这个选项,则执行以下步骤即可看到:
星辰sea
2022/10/29
1.2K0
SpringBoot同一个服务多个端口启动
逆向 AWS API 设计
云计算爱好者
2017/12/20
9650
Serverless 微服务架构案例无服务器架构 (Serverless Architectures) 简介 AWS Lambda 的编程模型Amazon API Gateway + AWS Lamb
Serverless 架构最早可以追溯到 Ken Fromm 发表的文章《Why The Future Of Software And Apps Is Serverless》。在这篇文章里, Ken Fromm 描述了未来云计算基础设施成熟的条件下应用程序是不需要服务器端的。在无武器场景下构建应用程序的时候。开发人员和运维人员无需担心服务器如何安装配置,如何设置网络和负载均衡,无需监控状态,甚至不再会出现服务器相关的工作内容。这样可以让原本建设机房的时间成本和货币成本从按年计算缩短至按秒计算。
顾宇
2018/08/17
2.4K0
【微前端架构】AWS 上的微前端架构
微服务架构的特点是独立服务,这些服务专注于特定的业务功能,并由小型、自包含的团队维护。微服务架构经常用于在 AWS 上开发的 Web 应用程序,这是有充分理由的。它们提供了许多众所周知的好处,例如开发敏捷性、技术自由、有针对性的部署等等。尽管微服务很受欢迎,但许多前端应用程序仍然以单体风格构建。例如,他们有一个与所有后端微服务交互的大型代码库,并由一大群开发人员维护。 图 1. 带有单体前端的微服务后端 什么是微前端? 微前端架构将微服务开发原则引入前端应用程序。在微前端架构中,开发团队独立构建和部署“
架构师研究会
2022/03/08
2K0
多个微服务依赖同一个公共实体类
结构:在一个公共依赖dependencies模块pom中导入entity实体类模块依赖,entity实体类需要打成jar包上传私服,然后需要使用这些实体类的服务只要父类是dependencies的话就可以直接使用entity模块中的实体类。
Diuut
2022/11/22
1.1K0
AWS 容器服务的安全实践
随着微服务的设计模式得到越来越多开发者的实践,容器和微服务已经在生产环境中开始了规模化的部署。在这一过程中,也面临着越来越多的挑战。比如说,很多的微服务之间是相互依赖的,我们需要有更多的手段和方式来进行微服务的计划,扩展和资源管理,另外微服务之间的隔离更少,它们通常会共享内核或者网络,也对安全性提出了更高的要求。
我是阳明
2021/06/25
2.8K0
AWS 容器服务的安全实践
[ 后端篇 ] 03 - 熟悉AWS中的常用服务
开发后端自然离不开云服务,这里选用常用的亚马逊云(AWS)作为介绍。 如国内的阿里云,腾讯云原理相同,看一下官方文档即可明白。
程序手艺人
2019/03/15
2.7K0
[ 后端篇 ] 03 - 熟悉AWS中的常用服务
AWS EC2 增加多个弹性 IP
一、 添加一个私有IP的 1. 实例->联网->管理私有IP地址 2. 分配新IP->是,更新 注意:记下刚生成的 私有 IP 二、把刚才生成的私有IP地址添加到网络接口 1. SSH连接到您的实例并
码农编程进阶笔记
2021/07/20
2.1K0
[ 后端篇 ] 08 - AWS DynamoDB batchGet() API 返回 Error
意思是 : 如您请求超过100个项目,BatchGetItem将返回ValidationException,并显示消息“Too many items requested for the BatchGetItem call”。
程序手艺人
2019/04/22
7950
[ 后端篇 ] 08 - AWS DynamoDB batchGet() API 返回 Error
同一局域网(同一网段)下实现硬盘共享
同一局域网(同一网段)下实现硬盘共享
宝耶需努力
2022/12/13
9590
同一局域网(同一网段)下实现硬盘共享
Window同一电脑配置多个git公钥
可以参照:https://www.cnblogs.com/poloyy/p/12185132.html
小菠萝测试笔记
2020/06/09
1.1K0
Window同一电脑配置多个git公钥
IDEA在同一工作空间,显示多个项目
IDEA 的工作空间,默认一个项目,多模块。如何在同一个工作空间,同时显示多个项目呢?
JavaEdge
2023/03/02
3.6K0
IDEA在同一工作空间,显示多个项目
[ 后端篇 ] 10 - AWS API 返回 Endpoint request time out
设备访问服务端的时候,返回Endpoint request time out,在stackoverflow看到有类似的问题 Amazon API gateway timeout
程序手艺人
2019/05/07
1.6K0
[ 后端篇 ] 10 - AWS API 返回 Endpoint request time out
微信Bug了,同一个手机号可以注册绑定多个微信号- 星泽V社
在开始之前,你需要准备2部手机,2个手机号,手机主要就是用来接收验证码,手机号都绑定了微信也没关系
星泽V社
2022/04/30
1.5K0
微信Bug了,同一个手机号可以注册绑定多个微信号- 星泽V社
100 多个常用 API 接口
http://apistore.baidu.com/apiworks/servicedetail/114.html
灰太狼学Java
2022/06/17
1.1K0
服务器端如何防止在同一时刻接收多个请求
目前在做一个app的java后端开发,有这样一个需求,某一个用户的某一种数据只能够在数据库表中出现唯一一条
用户6182664
2019/09/10
1.1K0
Spring同一接口有多个实现类,如何注入
最近写了前台一个管理模块,后来也是我来写,采用四层架构,在定义接口时,基本是一个接口对应一个实现类,使用@Autowired注解,但我想如果有多个实现类,如何注解,来梳理一下
kiki.
2022/09/29
2.6K0
点击加载更多

相似问题

AWS API网关中的单点登录

10

AWS网关中的刷新API密钥

17

AWS API网关中的链式请求

10

在aws API网关中共享同一父路由的两个服务

15

用AWS Lambda响应体映射AWS API网关中的多个http响应头

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文