如何从EventBusRule调用私有的 REST API(使用AWS Gateway创建的Endpoint)?

0

【以下的问题经过翻译处理】 我已经设置了以下工作流程:

  • 拥有源/POST/event/POST/process的私人REST API
  • 发送到NLB上的VPCLink (指向在EKS上运行的微服务的ALB
  • 具有DNS名称为vpce-<id>-<id>.execute-api.eu-central-1.vpce.amazonaws.comVPC endpoint,具有“启用私有DNS”功能
  • 具有两个目标的EventBridge EventBus规则:1用于调试/测试的API Destination,1指向我的私人REST API的AWS Service源的/POST/process
  • 所有必需的Resource PoliciesRoles
  • 所有资源都在同一个AWS帐户中

所设计的工作流程如下:

  • 在VPC端点上调用/ POST / eventResource Policy禁止任何其他调用),其中包含一个event负载
  • API将event负载放入EventBus
  • EventBusRule被触发并将event负载发送到私人REST API上的POST/process端点
  • POST/process端点通过VPCLink>NLB>ALB>k8s Service将负载代理到运行在EKS上的微服务

到目前为止,以下内容能够正常工作:

  • 在VPC端点上调用/POST/event
  • event负载放入EventBus
  • event负载转发到为测试/调试设置的API Destination(它是https://webhook.site上的临时端点)
  • 在AWS控制台中测试POST/eventPOST/process集成(通过检查event负载是否成功到达运行在EKS上的微服务来验证后者)

所有工作流程中的单个步骤似乎都能正常工作

1 回答
0

【以下的回答经过翻译处理】 私有API Gateway端点只能在其配置的VPC内部调用。 EventBridge目标无法指向VPC中的私有资源。这意味着您无法直接从EventBridge调用私有API。

您可以通过调用Lambda函数来绕过此限制。该函数与VPC相关联,并且可以调用API。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则