Проекты на AWS

Усовершенствованные боты

с применением .NET и AWS Toolkit for Visual Studio

Модуль 5. Развертывание и очистка

В этом модуле мы развернем чатбот в EC2 с помощью CodeBuild и CodeDeploy, а также очистим ресурсы AWS, использованные в этих модулях, во избежание лишних затрат.

Обзор

Следуйте приведенным ниже пошаговым инструкциям, чтобы развернуть приложение чатбота, а затем очистить ресурсы. Чтобы развернуть тот или иной раздел, щелкните номер соответствующего шага.

 Время выполнения

30 минут

 Используемые сервисы

CodeDeploy, CodeBuild, EC2

Инструкции по реализации

    • а) В Консоли AWS выберите Services (Сервисы), а затем выберите CodeStar в разделе Developer Tools (Инструменты для разработчиков).
      b. Нажмите Create a new project (Создать новый проект) и выберите шаблон ASP.NET Core Web Application (Интернет-приложение ASP.NET Core).
      c. Укажите значение в поле Project Name (Имя проекта), выберите репозиторий CodeCommit и нажмите Next (Далее).
      d. Убедитесь, что установлен флажок AWS CodeStar would like permission to administer AWS resources on your behalf (Сервису AWS CodeStar нужно разрешение на администрирование ресурсов AWS от вашего имени) и нажмите Create Project (Создать проект).
      e. Выберите пару ключей и убедитесь, что флажок I acknowledge that I have access to the private key file for this key pair (mytestkeypair.pem), and that without this file, I won’t be able to log into my instance (Я подтверждаю, что у меня есть доступ к файлу закрытого ключа для этой пары ключей [mytestkeypair.pem] и без этого файла я не смогу войти в свой инстанс) установлен.
      f. Теперь вы можете выбрать способ редактирования кода проекта. Вы можете в любой момент изменить его, но пока выберите Command Line Tools (Инструменты командной строки) и следуйте инструкциям по настройке для вашей операционной системы.
      g. Если вы следовали инструкциям в командной строке, то вы клонировали репозиторий проекта из CodeCommit.
      h. Вы можете использовать различные продукты и средства импорта Git, но если у вас их нет, можно воспользоваться нашим кратким руководством, чтобы сделать это вручную. Возьмите код, клонированный из репозитория GitHub в модуле 4, и замените на него весь код в клонированном репозитории CodeCommit (обязательно удалить весь старый код, прежде чем вставлять код .NET Chatbot).
      i. Откройте клонированный каталог в командной строке и выполните следующие команды.
      i. git add .
      ii. git commit -m "adding Chatbot code"
      iii. git push
      j. Нажмите Skip (Пропустить), и откроется панель управления кодом, проходящим через конвейер непрерывного развертывания (помимо множества других параметров, которые рекомендуется изучить).
      k. В каталоге проекта, где размещается файл решения Visual Studio, скопируйте файлы appspec.yml и buildspec.yml.
      l. В каталоге проекта, где размещается файл решения Visual Studio, создайте папку под названием scripts.
      m. Скопируйте все файлы из каталога развертывания Linux из клонированного репозитория в каталог scripts, созданный на предыдущем этапе.
      n. Перейдите по ссылке Application endpoints (Адреса приложений), чтобы просмотреть и протестировать приложение Chatbot.

      ⚐ ПРИМЕЧАНИЕ. Дополнительные сведения вы найдете в документации из проекта github (папка Documentation > Step By Step Deployment of dotNet Chatbot - Linux.pdf).

      Сценарии развертывания

      Пара ключей ec2
    • а) Войдите в аккаунт AWS и убедитесь, что вы находитесь в регионе us-east-1 (N. Virginia) или eu-west-1 (Ireland).
      b. Войдите в аккаунт GitHub с помощью данных для доступа к GitHub.
      c. Используйте AWS CloudFormation для создания инфраструктурного стека, выбрав шаблон здесь: <template link in button form>.
      d. Откроется веб-страница консоли AWS CloudFormation и экран настройки параметров, необходимых для создания ресурсов инфраструктуры. Задайте нужные значения параметров Stack Name (Имя стека) и Application (Приложение).
      e. Откройте другое окно браузера и вернитесь к аккаунту GitHub, выберите Settings (Настройки) в аккаунте GitHub, а затем нажмите Personal Access Tokens (Маркеры личного доступа) и создайте новый маркер с областями действия repo и admin:repo_hook. Обязательно выберите ВСЕ дочерние параметры для обоих вышеупомянутых скриптов.
      f. Вернитесь на веб-страницу AWS CloudFormation и задайте для параметра GitHubOAuthToken значение из GitHub, сгенерированное на предыдущем этапе.
      g. Выберите VPC, где требуется развернуть решение, и общедоступную подсеть (к которой подключен шлюз Интернета), относящуюся к этому VPC.
      h. Выберите имя пары ключей.
      i. При необходимости измените тип инстанса. Вы также можете оставить значение по умолчанию.
      j. В поле OS type (Тип ОС) выберите операционную систему Windows для целевого инстанса EC2 и нажмите кнопку Next (Далее).
      k. Оставьте значения по умолчанию в разделах Options (Параметры) и Advanced (Дополнительно), а затем нажмите кнопку Next (Далее).
      l. На экране проверки обязательно установите флажок I acknowledge that AWS CloudFormation might create IAM resources with custom names (Я подтверждаю, что AWS CloudFormation может создавать ресурсы IAM с настраиваемыми именами).
      m. Создайте стек и наблюдайте за созданием полного стека и всех необходимых ресурсов на вкладке Events (События), пока в поле состояния не появится значение CREATE_COMPLETE.
      n. Откройте CodePipeline и наблюдайте за тем, как приложение проходит процесс CD/CI от GitHub до CodeBuild и CodeDeploy, после чего оно развертывается в EC2.
      п) После успешного развертывания откройте вкладку выходных данных в CloudFormation, щелкните URL-адрес и наблюдайте за выполнением приложения чатбота в среде.

      ⚐ ПРИМЕЧАНИЕ. Дополнительные сведения вы найдете в документации из проекта GitHub (папка Documentation > Step By Step Deployment of dotNet Chatbot - Windows.pdf).

    • а) Перейдите на страницу CodeStar в консоли.
      b. Щелкните многоточие в правом верхнем углу проекта.
      c. Выберите команду Delete (Удалить).
      d. Введите имя проекта, чтобы подтвердить удаление. Снимите флажок Keep associated AWS resources but delete project in AWS Codestar. Learn more (Оставить связанные ресурсы AWS, но удалить проект в AWS Codestar. Подробнее).
      e. Нажмите кнопку Delete (Удалить).

    • а) Перейдите на страницу CloudFormation в консоли.
      b. Выберите стек.
      c. Откройте раскрывающееся меню Actions (Действия).
      d. Выберите команду Delete Stack (Удалить стек).
      e. Нажмите кнопку Yes, Delete (Да, удалить).

  • Lambda
    а) Перейдите на страницу Lambda в консоли.
    b. Выберите функцию из списка, щелкнув пузырек слева от ее названия.
    c. В списке действий выберите пункт Delete (Удалить).

    Lex
    а) Перейдите на страницу Lex в консоли.
    b. Выберите бота из списка, щелкнув пузырек слева от его названия.
    c. В списке действий выберите пункт Delete (Удалить).

    Cognito
    а) Перейдите на страницу Cognito в консоли.
    b. Нажмите Manage Federated Identities (Управление федеративными удостоверениями).
    c. Выберите федеративное удостоверение.
    d. Нажмите Edit Identity Pool (Изменить пул удостоверений) в правом верхнем углу.
    e. Прокрутите вниз до кнопки Delete Identity Pool (Удалить пул удостоверений) и нажмите ее. Затем подтвердите удаление, нажав красную кнопку.

    ⚐ ПРИМЕЧАНИЕ. Эти инструкции также находятся в проекте GitHub в папке Documentation > dotNet Chatbot CleanUp and Deletion Instructions.pdf.

Поделитесь своим чатботом с друзьями и расскажите нам, что вы создадите дальше!