我正在使用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
)
跑步
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
输入元数据dict,即。
token = response['ResponseMetadata']['RequestId']
resource = boto3.resource('sns')
topic = resource.Topic(TopicArn)
topic.confirm_subscription(
Token=token
)
但在上面我得到一个无效的令牌错误。
boto3医生只是说:
请求语法
subscription=topic.confirm_订阅(
Token='string',
AuthenticateOnUnsubscribe='string')参数标记(string)--[必需]
在订阅操作期间发送到终结点的短期令牌。
https://boto3.readthedocs.io/en/latest/reference/services/sns.html#SNS.Topic.confirm_subscription
当它说“Subscribe action”时,我假设它是在Subscribe主体中返回的,即为什么我要执行上述操作
我错过了一些很明显的东西,但我似乎不知道到底是什么。