如何从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 Antwort
0

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

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

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen