sns:如何获得令牌以使用boto确认订阅?

时间:2018-06-19 17:10:38

标签: python boto3 amazon-sns

我正在使用boto3创建一个主题,创建对该主题的订阅,然后确认该订阅,但是我对如何完成最后一部分有些困惑。

我的代码如下:

client = boto3.client('sns')

def create_topic():

    topic = client.create_topic(Name='TopicName')
    return topic['TopicArn']

def create_subscription(arn=''):

    subscription = client.subscribe(
        TopicArn=arn,
        Protocol='https',
        Endpoint='https://foo.com/endpoint'
        ReturnSubscriptionArn=True
    )

使用有效的topicArn运行create_subscription()会给我以下响应正文:

{'SubscriptionArn': 'arn:aws:sns:eu-central-1:12345678911:foo:0e123205-b1f5-992b-9da1-340ace03a3ca',
 'ResponseMetadata': {'RequestId': '1879a45a-7b1c-51bb-c65c-11d94111594c',
  'HTTPStatusCode': 200,
  'HTTPHeaders': {'x-amzn-requestid': '1937c57a-8b9a-51ba-b88d-56d88458533a',
   'content-type': 'text/xml',
   'content-length': '379',
   'date': 'Tue, 19 Jun 2018 17:00:03 GMT'},
  'RetryAttempts': 0}}

然后我认为我需要用来确认子项的令牌是元数据字典中的RequestId键,即

token = response['ResponseMetadata']['RequestId']

resource = boto3.resource('sns')
topic = resource.Topic(TopicArn)
topic.confirm_subscription(
    Token=token
)

但是通过以上操作,我得到了无效的令牌错误。

boto3文档仅说以下内容:

  

请求语法

     

subscription = topic.confirm_subscription(       令牌='字符串',       AuthenticateOnUnsubscribe ='string')参数令牌(字符串)-[需要]

     

在“订阅”操作期间发送到端点的短时令牌。

https://boto3.readthedocs.io/en/latest/reference/services/sns.html#SNS.Topic.confirm_subscription

当它说“订阅动作”时,我认为它已在订阅正文中返回,即为什么我要执行上述操作

我在这里可能遗漏了一些明显的东西,但是我似乎无法确切了解到底是什么。

0 个答案:

没有答案