Поиск по сайту:

Как использовать Cloudformation для создания темы SNS на AWS


На этой странице

  1. Предварительные условия
  2. Что будем делать?
  3. Войти в AWS
  4. Создать шаблон
  5. Создание стека Cloudformation
  6. Подтвердить тему SNS
  7. Удалить стек
  8. Заключение

AWS SNS — это простая служба уведомлений. Cloudwatch может использовать его для отправки предупреждений по электронной почте. Сначала необходимо создать тему SNS, а затем на нее нужно подписаться на конечную точку.

В этой статье мы создадим тему SNS с помощью Cloudformation и подпишемся на конечную точку электронной почты. Мы также увидим, как удалить тему и подписку SNS с помощью самого стека Cloudformation. Предполагается, что вы имеете общее представление о социальных сетях и их работе. Эта статья посвящена созданию SNS с использованием стека Cloudformation.

Предпосылки

  1. Аккаунт AWS (создайте, если у вас его нет).
  2. Основные сведения о социальных сетях.
  3. Основное понимание Cloudformation.

Что мы будем делать?

  1. Войдите в AWS.
  2. Создайте шаблон.
  3. Создайте стек.
  4. Подтвердите подписку.
  5. Удалить стек.

Войти в АВС

Нажмите здесь, чтобы перейти на страницу входа в AWS. Введите свои учетные данные пользователя, чтобы войти в свою учетную запись AWS.

После успешного входа в свою учетную запись вы увидите консоль управления AWS, как показано ниже.

Создать шаблон

Прежде чем мы приступим к созданию стека, давайте создадим шаблон \create-sns-topic.template\ на вашем локальном компьютере со следующей конфигурацией Cloudformation.

Вы также можете скачать шаблон Cloudformation из моего репозитория Github, ниже приведена ссылка на шаблон.

Ссылка: https://github.com/shivalkarrahul/DevOps/blob/master/aws/cloudformation/create-sns-topic/create-sns-topic.template

---
AWSTemplateFormatVersion: '2010-09-09'
Description: The SNS Topic
Parameters:
  SubscriptionEndPoint:
    Type: String
    Description: The endpoint that receives notifications.
  SubscriptionProtocol:
    Type: String
    Description: The subscription protocol
    AllowedValues:
    - http
    - https
    - email
    - email-json
    - sms
    - sqs
    - application
    - lambda
    Default: email
Mappings: {}
Conditions: {}
Resources:
  SNSTopic:
    Type: AWS::SNS::Topic
    Properties: {}
  SNSSubscription:
    Type: AWS::SNS::Subscription
    Properties:
      Endpoint:
        Ref: SubscriptionEndPoint
      Protocol:
        Ref: SubscriptionProtocol
      TopicArn:
        Ref: SNSTopic
Outputs:
  QueueName:
    Description: Name of the SNS Topic we created
    Value:
      Fn::GetAtt:
      - SNSTopic
      - TopicName
  TopicARN:
    Description: ARN of the SNS Topic we created 
    Value:
      Ref: SNSTopic

Создайте стек Cloudformation

Когда у вас есть шаблон на локальном компьютере, вы готовы создать стек Cloudformation.

Нажмите «Услуги» в левом верхнем углу экрана и найдите Cloudformation под управлением и управлением.

Чтобы создать стек, вы увидите опцию «Создать стек» в правой части экрана, нажмите на нее. Вы увидите 2 варианта, из этих 2 вариантов нажмите «С новыми ресурсами (стандартно). «Удалить2» — это существующий стек в моей учетной записи в выбранном регионе, вы не увидите его в своей учетной записи.

Нажмите «загрузить файл шаблона» и выберите шаблон с вашего локального компьютера. Нажмите кнопку \Далее\.

Укажите сведения о стеке, такие как имя стека, конечная точка подписки и протокол подписки. Вы можете выбрать протокол из раскрывающегося списка в разделе Протокол подписки. Я выбрал электронную почту в качестве протокола подписки, если протокол подписки - электронная почта, вам нужно будет указать свой адрес электронной почты в качестве конечной точки подписки. Нажмите кнопку \Далее\, чтобы продолжить.

Теги являются необязательными, и указывать теги на этой странице не обязательно. Нажмите кнопку «Далее», чтобы продолжить.

Прокрутите вниз до конца страницы и нажмите кнопку \Создать подборку\. Это создаст стек, который, в свою очередь, создаст тему SNS с электронной почтой в качестве конечной точки подписки.

Создание ресурсов займет несколько минут, и как только ресурсы будут созданы, вы увидите состояние стека как \CREATE_COMPLETE\.

Подтвердите тему SNS

Вы можете зайти в SNS и проверить, создана ли тема. Найдите SNS, после чего вы попадете в консоль SNS.

Здесь нажмите «Темы» на левой панели и выберите тему, которая была создана. Название вашей темы SNS будет иметь префикс имени стека Cloudformation. На вкладке \Подписка\ вы увидите, что конечная точка также создана, но находится в состоянии \Ожидает подтверждения\.

Когда подписка создается, она отправляет ссылку подтверждения на указанную конечную точку. Здесь мы указали адрес электронной почты в качестве конечной точки, поэтому мы должны были получить электронное письмо со ссылкой для подтверждения.

Перейдите в папку «Входящие» электронной почты, которую вы указали в качестве конечной точки подписки. Откройте письмо, и вы увидите гиперссылку «Подтвердить подписку», нажмите на нее.

После подтверждения подписки вы увидите следующее сообщение.

Теперь вернитесь к теме и на вкладке «Подписки» проверьте конечную точку, и вы увидите статус «Подтверждено». На этом создание темы SNS и ее конечной точки завершено. Теперь вы готовы публиковать сообщения в этой социальной сети, которая будет отправлять эти сообщения в указанную конечную точку.

Удалить стек

Если вам больше не нужны SNS и подписка в аккаунте, вы можете удалить стек, что, в свою очередь, удалит созданные им ресурсы. Перейдите в стек и нажмите на кнопку «Удалить».

Подтвердите действие удаления, нажав кнопку «Удалить стопку». После удаления стека все созданные им ресурсы также будут удалены и не могут быть восстановлены. Будьте осторожны при выполнении операции удаления, если вы работаете с аккаунтом AWS вашей организации или клиента.

Удаление займет несколько минут. После удаления стека вы увидите статус \DELETE_COMPLETE\, и стек больше не будет доступен.

Заключение

В этой статье мы увидели, как легко создать тему SNS и подписку на тему с помощью стека Cloudformation. Мы использовали электронную почту в качестве протокола подписки. Вы можете выбрать нужный протокол из доступного списка и указать его конечную точку в теме. Мы также видели, как удаление стека удаляет созданные им ресурсы.