Управлять топиком
Обновить топик
- В консоли управления
выберите каталог, в котором находится топик. - Перейдите
в сервис Cloud Notification Service. - Слева выберите раздел Топики.
- Выберите топик.
- Справа вверху нажмите кнопку Редактировать.
- Измените имя топика. Имя топика должно быть уникальным в Cloud Notification Service.
- В разделе Логирование включите или отключите Запись логов.
- Измените лог-группу или создайте новую.
- Включите или отключите опцию Yandex Message Queue.
- Нажмите Сохранить изменения.
-
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
-
Выполните команду:
aws sns set-topic-attributes \ --topic-arn <ARN_топика> <атрибуты>Чтобы отвязать сервисный аккаунт от топика и запретить отправку сообщений в очереди Message Queue, передайте в
--attribute-valueпустую строку:aws sns set-topic-attributes \ --topic-arn <ARN_топика> \ --attribute-value "" -
Посмотрите новые параметры топика:
aws sns get-topic-attributes \ --topic-arn <ARN_топика>
Подробнее о командах в документации AWS: set-topic-attributes
-
Если у вас еще нет AWS SDK для Python (boto3), установите и настройте его.
-
Чтобы изменить топик, используйте следующий код:
try: response = client.set_topic_attributes( TopicArn="<ARN_топика>", AttributeName="<имя_атрибута>", AttributeValue="<значение_атрибута>", ) print("Response metadata:", response['ResponseMetadata']) except botocore.exceptions.ClientError as error: print(f"Error: {error}")Чтобы отвязать сервисный аккаунт от топика и запретить отправку сообщений в очереди Message Queue, передайте в
AttributeValueпустую строку:response = client.set_topic_attributes( TopicArn="<ARN_топика>", AttributeName="SQSServiceAccountId", AttributeValue="", )
Удалить топик
- В консоли управления
выберите каталог, в котором находится топик. - Перейдите
в сервис Cloud Notification Service. - Слева выберите раздел Топики.
- Напротив нужного топика нажмите
и выберите Удалить. - Подтвердите удаление.
Выполните команду:
aws sns delete-topic --topic-arn <ARN_топика>
Подробнее о команде aws sns delete-topic в документации AWS
Используйте следующий код:
@staticmethod
def delete_topic(topic):
try:
topic.delete()
logger.info("Deleted topic %s.", topic.arn)
except ClientError:
logger.exception("Couldn't delete topic %s.", topic.arn)
raise
При удалении топика удаляются все его подписки. Связанные с подписками эндпоинты сохраняются. Удаление топика занимает некоторое время. Пока топик удаляется, не получится создать новый топик с тем же именем.