ansible sns - 为什么订阅者是可选的

ansible sns - why is subscriber optional

当我通过 aws 控制台或 aws cli 将 lambda 函数订阅到 SNS 主题时,订阅信息中会显示一个名为 "subscriber" 的列。它确实包含我的帐户 ID。

我似乎无法通过 cli 或控制台控制此字段,但我可以通过 ansible:

---
- name: set up topic and subscribe lambda
  sns_topic:
      name: "topic_name"
      state: present
      display_name: "Display Name"
      subscriptions:
        - endpoint: "arn:aws:lambda:ap-southeast-2:123456789:function:functionName"
          protocol: "lambda"
          subscriber: 123456789

订阅者字段是可选的,但是如果没有它,SNS 消息似乎无法到达 lambda。

找不到对幽灵字段的引用,即订阅者。
也许它在旧 sdk/api 中受支持,现在已被删除。

研究:

  1. 我在订阅 lambda 时没有在控制台中看到订阅者字段。下图

  1. 即使通过CLI,也没有这个字段
    Link 通过 CLI 文档用于 SNS 订阅命令。

[额外研究]:即使是 java sdk 也只要求三个参数才能订阅

 subscribe(String topicArn, String protocol, String endpoint)

Java 文件 link