AWS Lambda не может найти тему SNS, которая явно существует? - PullRequest
0 голосов
/ 08 июня 2019

, поэтому я создаю тему SNS через консоль и затем пытаюсь вызвать list_subscriptions_by_topic или sns.publish, но все они терпят неудачу, потому что

An error occurred (NotFound) when calling the Publish 
operation: Topic does not exist: NotFoundException

так что дает ??? тема доступна в консоли SNS.

Это мой лямбда-код:

from __future__ import print_function

import json
import boto3
import random


print('Loading function')
sns = boto3.client('sns')

def lambda_handler(event, context):

    response = sns.publish(
        TopicArn='arn:aws:sns:us-west-2:031436316123:topicExists' 
        Message=json.dumps(newMsg),
        MessageAttributes={
            'event_type':{
                'DataType':'String', 'StringValue':'something'

            }
        }
    )


    return response

Это лямбда-триггер, установленный в SQS, который подписан на тему topicExists SNS.

1 Ответ

3 голосов
/ 08 июня 2019

Проблема в том, что тема SNS существует в области us-west-2, но ваш клиент SNS создается в области us-east-1.

В этой строке не указывается область, поэтому онасоздан в us-east-1 по умолчанию:

sns = boto3.client('sns')

Вы должны заменить его на:

sns = boto3.client('sns', region_name='us-west-2')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...