SNS 可以触发 API 网关吗?如果是,那么API 网关如何订阅SNS?

Can an SNS trigger an API gateway? If yes, then how can the API gateway subscribe to the SNS?

我需要创建一个 API 网关来使用来自 SNS 的消息。我看到有一些关于相同的问题,比如 this,还没有直接回答。

我面临的主要问题是:如何让 API 网关订阅 SNS?

SNS 支持 HTTP/HTTPS endpoint subscriptions。所以我看不出您不能以这种方式将 API 网关 https 端点订阅到 SNS 的原因。

正如 Marcin 所说,这是可以做到的。提到我使用的步骤:

  • 创建 SNS 和 lambda
  • 无论使用何种语言,请务必在日志中打印事件。 (对于 JavaScript,使用 console.log(event),对于 Python 使用 print(event) 等)
  • 创建一个 API 网关 (REST API),select 一个“新建 API”,然后创建它。
  • 在 API 中创建一个 POST 方法,select lambda,并确保将其用作代理。
  • 复制触发器 HTTPS link
  • 在SNS中添加HTTPS订阅,并在此处使用触发器link。
  • 现在等待确认。
  • 转到 lambda,在它的监控部分,转到云监视日志。
  • 在日志中,您会发现打印的事件对象。在其中,寻找 SubscribeURL,其中会提到 URL。
  • 复制此 URL,然后返回 SNS。 Select 您的订阅并使用“确认订阅”选项,然后将此 link 粘贴到那里。
  • 现在状态应该是“已确认”。