Q) Что такое современное приложение? A) • Современные приложения изолируют бизнес-логику, оптимизируют повторное использование и итерацию, она удаляет накладные расходы повсюду. • На простых словах, современные приложения построены с использованием услуг, которые позволяют вам сосредоточиться на написании кода при автоматизации задач обслуживания инфраструктуры.
• Давайте посмотрим на создание одного такого современного веб-приложения, используя AWS Services. Используемые технологии: AWS Cloud9 Amazon Простая служба хранения (S3) AWS Fargate AWS CloudFormation AWS Идентификация и управление доступом (IAM) Виртуальное частное облако Amazon (VPC) Упругая балансировка нагрузки на нагрузку Amazon Amazon Eysical Container (ECS) aws Эластичный реестр контейнера (ECR) AWS CodeCommit AWS CodePipipine AWS CodeDeploy AWS CodeBuild Amazon Dynamodb Amazon Cognito Amazon API Gateway AWS KISISEIS Firehose Amazon S3 AWS Lambda AWS Masserless Model Application (AWS SAM) AWS SAM-интерфейс командной строки (SAM CLI)
• Мы построим образец веб-сайта под названием Mythical MySfits, которые позволяют пользователям принять фантастическое существо (MySFit) как Pet. Вот рабочий образец этого сайта по адресу: www.mythialmysfits.com. • Мы будем проходить по шагам, чтобы создать архитектурный веб-приложение. • Мы будем принимать это веб-приложение на переднем веб-сервере и подключить его к базе данных Backeng. • Мы также будем настроить аутентификацию пользователя и сможете собирать и анализировать поведение пользователя. • Сайт также предоставляет базовые функциональные возможности, такие как способность «любить» ваш любимый mysfit и зарезервировать выбранный вами mysfit для принятия. • Это также позволяет собирать идеи о поведении пользователя для будущего анализа.
Диаграмма архитектуры приведенной ниже приложения обеспечивает структурное представление услуг, которые составляют мифические MySfits и как эти услуги взаимодействуют друг с другом. Давайте начнем с хостинга статического контента (HTML, JS, CSS, медиа-контента и т. Д.) Нашего MyShical MySFIT веб-сайта на Amazon S3 (простая служба хранения). S3 — это высокопрочный, высокодоступный и недорогой сервис хранения объектов, которые могут подавать сохраненные объекты непосредственно через http. Это делает его удивительно полезным для обслуживания статического веб-контента непосредственно в веб-браузеры для сайтов в Интернете. • Войдите в свою консоль AWS и выберите область по вашему выбору. • Перейдите на страницу Cloud9 и создайте среду с настройками по умолчанию. • Мы будем заполнять все задачи разработки, необходимые в нашем собственном браузере, используя облачный IDE, AWS Cloud9. Используйте команду ниже GIT в терминале, чтобы клонировать необходимый код для завершения этого руководства: Гит клон -b python https://github.com/aws-samples/aws-modern-application-workshop.git. Обратите внимание, что вышеуказанный репозиторий является собственностью AWS, и они владеют всеми авторскими правами. Теперь измените каталог на вновь клонированную каталог репозитория: CD AWS-Modern-Application-мастерская
Мы все настроены на создание компонентов инфраструктуры, необходимые для размещения статического веб-сайта в Amazon S3 через AWS CLI. • Запустите команду ниже в терминале, чтобы создать ведро S3 с именем на ваш выбор. AWS S3 MB S3://Заменить_me_bucket_name • Мы установим некоторые параметры конфигурации, которые позволяют использовать ведро для статического хостинга сайта. • Запустите команду ниже в вашем терминале, чтобы сделать ваше ведро S3 для статического хостинга сайта: Веб-сайт AWS S3 S3://refere_me_bucket_name —index-document index.html • По умолчанию общедоступный доступ будет заблокирован для ведра S3 для соображений безопасности. • Нам нужно включить доступ к публичному доступу, поскольку это ведро является статическим хостингом, изменив политику ведра. • Соединительная политика — это файл JSON, расположенный в ~/окружающей среде/AWS-Modern-Application-семинар/Module-1/AWS-CLI/Веб-сайт-Policy.json. • Откройте файл и внесите необходимые изменения, такие как ввод имя вашего ведра. • Теперь выполните следующую команду CLI, чтобы добавить политику общественного ведра на свой веб-сайт: AWS S3API PUT-BEACKET-PLAY —bucket refere_me_bucket_name —policy file://~/environment/aws-modern-application-workshop/module-1/aws-cli/website-bucket-policy.json • Теперь, когда наше новое ведро веб-сайта настроено соответствующим образом, давайте добавим первую итерацию Mythical MySfits HomePage в ведро, запустив следующую команду S3 CLI AWS S3 CP ~/Окружающая среда/AWS-Modern-Application-Mathery/Module-1/Web/index.html S3://replace_me_bucket_name/index.html • Наше ведро S3 — это и хостинг. • Откройте свой любимый браузер и запустите приведенную ниже входные данные. http://replace_me_bucket_name.s3-website-replace_me_your_region.amazonaws.com.
• Поздравляем, вы создали основные статические мифические MySfits сайт! • Наши мифические веб-сайт mysfits должны интегрироваться с Backend заявки. Итак, мы создадим новое микросервис, принимаемый с использованием AWS Fargate. • Нам необходимо создать основную среду инфраструктуры, которую будет использовать услугу, включая сетевую инфраструктуру в Amazon VPC, а также роли AWS IAM. • Для этого мы будем использовать AWS CloudFormation. • Он доступен в расположении:/module-2/cfn/core.yml • Запустите команду ниже в терминале Cloud9 (может занять до 10 минут для стека, чтобы быть Следовательно, мы будем сохранять их в файле с именем CloudFormation-Core-advent.json, запустив команду ниже. AWS Cloudformation Cheception-Stacks —stack-name mythicalmysfitscorestack> ~/enducial/cloudformation-core-advent.json Теперь мы будем создавать документ контейнера Docker, который содержит весь код и конфигурацию, необходимый для запуска Mythical MySfits Backend как MicrovIce API создан с колбой. Мы построим изображение контейнера Docker в Cloud9, а затем подтолкните его к Amazon ECR, где он будет доступен для потяжения, когда мы создаем наш сервис, используя Fargate.
Весь код, необходимый для запуска нашей сервисной версии, сохраняется в пределах/модуль-2/App/Directory от хранилища, который вы клонировали в IDE Cloud9. Docker приходит уже установлен на IDE IDE, который вы создали, поэтому для того, чтобы создать изображение докера на местном уровне, все, что нам нужно сделать, это запускать следующие две команды в клемме Cloud9: CD ~/Exection/AWS-Modern-Application. -Workshop/Module-2/App Docker Build. -t refect_me_aws_account_id.dkr.ecr.replace_me_region.amazonaws.com/mythlymysfits/service: latest Вы можете найти идентификатор учетной записи из следующего файла:/cloudformation-core-ousput.json Когда Docker загружает все необходимые пакеты зависимости, скопируйте изображение Тег от вывода. Мы будем использовать его в будущем. Это будет в формате: 111111111111.dkr.ecr.us-east-1.amazonaws.com/mythicalmysfits/service:latest
Давайте проверим наше изображение локально в Cloud9, чтобы убедиться, что все работает, как и ожидалось. Запустите следующую команду, чтобы развернуть контейнер «локально» (который на самом деле находится внутри вашего Cloud9 IDE внутри AWS): Docker Run -P 8080: 8080 Заменить_me_with_docker_image_tag Введите тег изображения, который вы сохранили ранее. Мы увидим ниже вывод, если контейнер работает и работает. * Работает на http://0.0.0.0:8080/ (Нажмите Ctrl + C, чтобы выйти) Чтобы проверить наш сервис с локальным запросом, мы собираемся открыть встроенный веб-браузер в IDE Cloud9, который можно использовать для предварительного просмотра приложений, которые работают на экземпляре IDE. Чтобы открыть веб-браузер Preview, выберите Preview> Предварительный просмотр Запуск приложения в строке меню Cloud9: Добавьте/mysfits до конца URI в адресной строке браузера предварительного просмотра и нажмите Enter: Если успешно вы увидите ответ от сервиса, который возвращает документ JSON, хранящийся в /aws-modern-aplication-workshop/module-/app/service/mysfits-response.json
С успешным тестом нашего сервиса локально мы готовы создать репозиторий контейнерного изображения в реестре Amazon Easic Contaster (Amazon ECR) и намотайте наш образ в него. Чтобы создать реестр, запустите следующую команду: AWS ECR Создание-репозиторий —repository имя MythicalMysfits/Service Чтобы нажать изображения контейнера в наш новый репозиторий, нам понадобится учетные данные аутентификации для нашего Docker Client к репозитории. Запустите следующую команду, которая вернет команду для входа в систему для получения учетных данных для нашего клиента Docker, а затем автоматически выполнить его: $ (AWS ECR Get-Login — Inno-Iclue-E-mail) «Логин успешно» будет сообщен, если команда успешна. Используя команду ниже для Docker, чтобы нажать изображение, и все изображения это зависит от Amazon ECR: Docker Push Breake_me_with_docker_image_tag. Теперь запустите следующую команду, чтобы увидеть ваше недавно нажатое изображение Docker, хранящееся внутри репозитория ECR: AWS ECR Описать-изображения —repository имя MythicalMysfits/Service Теперь у нас есть изображение, доступное в ECR, которое мы можем развернуть на службе, размещенной на Amazon ECS, используя AWS Fargate. Так что, сайт будет общедоступным за сетевым балансировщиком нагрузки. Во-первых, мы создадим кластер в Amazon ECS. Чтобы создать новый кластер в ECS, выполните следующую команду: AWS ECS Create-Cluster — кластер MythicalMysfits-Cluster Далее мы создадим новую группу журналов в журналах AWS CloudWatch для сбора и анализа журнала. Чтобы создать новую группу журналов в журналах CloudWatch, выполните следующую команду: AWS Logs Create-log-group —log-group-name mythicalmysfits-logs Поскольку у нас есть созданный кластер, и группа журнала, определенная для того, где наши контейнерные журналы будут нажаты, мы готовы зарегистрировать определение задачи ECS. Вход в команду CLI будет доступен в файле ниже json: ~/Окружающая среда/AWS-Modern-Application-Mather/Module-2/AWS-CLI/CADES-SIECTY.JSON Замените значения из тега изображения и из/cloudformation-core-output.json После того, как вы заменили значения в задаче — определение .json и сохранили ее. Выполнить следующую команду: AWS ECS Register-Task-Destinay — CLI-INPUT-JSON File://~/environment/aws-modern-aplication-workshop/module-2/aws-cli/task-definition.json Вместо того, чтобы напрямую разоблачить наш сервис в Интернет, мы предоставим NLB, чтобы сидеть перед нашим сервисным уровнем. Чтобы обеспечить новый NLB, выполните следующую команду CLI: AWS ELBV2 CREATE-LOAD-BALANCER —Name MySFITS-NLB —schehe Internet-Ficave —Type Network —Subnets reflex_me_public_subnet_One_me_public_subnet_two> ~/enducial/nlb-adduct.json Получить подсоиды из/cloudformation-core-output.json Новый файл будет создан в вашем IDE под названием NLB-Opture.json. Мы будем использовать выходы в файле на более поздних шагах. Нам нужно создать целевые группы для NLB. Запустите команду ниже: AWS ELBV2 Create-Target-Group —Name MythicalMysfits-targetgroup —port —port 8080 — Protocol TCP —Target-type IP-IP —VPC-ID Sheck_Me_VPC_ID — HEALT-CHECK-INGAL-EXESS-SECH 10/HEalth-Check-Protocol HTTP HEalthy-Threshold-Count 3 — Elected-Threshold-Count 3> ~/Окружающая среда/Target-Group-agep.json Вы можете найти значение VPC_ID в/cloudformation-core-output.json Выход будет сохранен в Target-Group-roade.json в вашем IDE. Мы будем ссылаться на вывод этого файла на последующем шаге. Теперь нам нужно создать слушатель балансировщика нагрузки для NLB. Запустите следующую команду: AWS ELBV2 Create-listener —default-Actions —load-balancer-arn breake_me_nlb_arn —port 80 — Protocol TCP Вы можете найти целевую группу и NLB ARN в файлах, которые мы сохранили ранее при создании NLB и TargetGroup. Нам нужно создать роль IAM, которая дает разрешения сама службы ECS, чтобы сделать запросы API ECS в вашей учетной записи. Чтобы создать роль, выполните следующую команду в терминале: AWS IAM CREATE-SERVICE-LINGED-ROLE — AWS-Service-name ecs.amazonaws.com Если вышеупомянутое возвращает ошибку о существующей роли, вы можете игнорировать ее, так как она будет указывать, что роль автоматически создана в вашей учетной записи в прошлом. С созданным и настроенным NLB, и служба ECS предоставила соответствующие разрешения, мы готовы создать фактическую службу ECS. Открытая ~/enducial/AWS-Modern-Application-семинар/модуль-2/AWS-CLI/SERVICE-SIECTION.json В IDE и замените указанные значения reflace_me. Сохраните его, затем запустите следующую команду, чтобы создать службу: AWS ECS Create-Service — Cli-Input-Json File://~/environment/aws-modern-application-workshop/module-2/aws-cli/service-definition.json Скопируйте имя DNS, которое вы сохранили при создании NLB и отправьте запрос на него, используя свой любимый браузер. Имя DNS будет в формате ниже: http://mysfits-nlb-123456789-abc123456.elb.us-east-1.amazonaws.com/mysfits. Вы получите ответ в формате JSON. Далее нам нужно интегрировать наш веб-сайт с помощью новой API Backend вместо того, чтобы использовать жесткие закодированные данные, которые мы ранее загружены на S3. Откройте файл ниже и обновите URL NLB. /module-2/web/index.html Запустите следующую команду, чтобы загрузить этот файл на ваш проведенный веб-сайт S3 AWS S3 CP ~/Окружающая среда/AWS-Modern-Application-Mathery/Module-2/Web/index.html S3://insert-your-bucket-name/index.html Убедитесь, что вы обновляете имя ведра в команде перед выполнением. Откройте сайт, используя ссылку S3. Теперь он получает данные JSON из вашего API Flask API в рамках контейнера Docker, развернутой до AWS Fargate.
Теперь, когда у нас есть сервис и работает, мы можем подумать об изменениях кода, которые мы делаем на нашей службе Flask. Это было бы узким местом для вашей скорости развития, если вам пришлось пройти все одинаковые шаги, прежде чем вы хотите развернуть новую функцию для вашего обслуживания. Вот где нам нужен CI/CD. Запустите следующую команду, чтобы создать еще одно ведро S3, которое будет использоваться для хранения временных артефактов, которые будут созданы в середине наших выполнений трубопроводов CI/CD: AWS S3 MB S3://refere_me_choose_artifacts_bucket_name В отличие от нашего веб-сайта, который позволил всем доступе к кому-либо, только наш CI/CD-трубопровод должен иметь доступ к этому ведрю. Откройте следующий файл JSON и внесите соответствующие изменения в соответствии с вашими сервисами из/cloudformation-core-output.json. После того, как вы изменили и сохранили этот файл, выполните следующую команду: AWS S3API Put-Bucket-Policy —bucket refect_me_artifacts_bucket_name —policy Файл://~/endurge/AWS-Modern-Application-Mathery/Module-2/AWS -Cli/Artifacts-Bucket-Policy.json Нам нужно создать репозиторий CodeCommit для толкания и хранения кода. Запустите следующую команду: AWS CodeCommit Create-Repository —reposity имя MythicalMysfitsService-Repository с репозиторий для хранения нашего кода в ведре и S3, который будет использоваться для наших артефактов CI/CD, позволяет добавить в стек CI/CD С помощью службы построится с использованием AWS CodeBuild Project. Замените значения в файл ниже и сохраните его. ~/Окружающая среда/AWS-Modern-Application-Schoolop/Module-2/AWS-CLI/Code-Build-Project.json Теперь выполнить следующую команду, чтобы создать проект: AWS CodeBuild Create-Project —Cli-input-Json Файл://~/environment/aws-modern-aplication-workshop/module-2/aws-cli/code-build-project.json Мы будем использовать кодовую обработку для непрерывного интеграции нашего хранилища CodeCommit с нашим проектом CodeBuild, чтобы создать автоматически происходят всякий раз, когда изменение кода нажимается на репозиторий. Откройте следующий файл, сделайте изменения и сохраните его. ~/Окружающая среда/AWS-Modern-Application-Schoolop/Module-2/AWS-CLI/CODE-PIPELEL.json Используйте следующую команду для создания трубопровода в CodePipipeline: AWS CodePipipeline Create-Pipeline —Cli-input-json Файл://~/environment/aws-modern-aplication-workshop/module-2/aws-cli/code-pipeline.json Нам нужно дать разрешение CodeBuild для толкания изображений контейнера в ECR. Найдите файл ниже и введите изменения: ~/enducial/AWS-Modern-Application-Mathsophop/Module-2/AWS-CLI/ECR-Policy.json Сохраните этот файл, а затем выполните следующую команду для создания политики: AWS ECR SET -Repository-Policy —repository имя MythicalMysfits/Service —Policy-Text File://~/environment/aws-modern-aplication-workshop/module-/aws-cli/ecr-policy.json Теперь мы будем Перемещайте все данные сайта в Dynamodb, чтобы сделать сайты будущим более расширяемыми и масштабируемыми. Мы будем создавать таблицу Dynaomdb с первичным индексом и двумя вторичными индексами, эти индексы помогут нам использовать опцию фильтра, который используется для фильтрации символов на сайте на основе их профиля. Запустите команду ниже: AWS Dynamodb Create-Table —Cli-input-json-файл://~/environment/aws-modern-aplication-workshop/module-3/aws-cli/dynamodb-table.json таблица dynamodb созданный. Мы можем просмотреть подробную информацию о таблице от команды ниже: AWS Dynamodb Описание — Table Table-Name MySFitstable Следующая таблица будет извлекать все элементы, хранящиеся в таблице (вы увидите, что эта таблица пуста):
aws dynamodb scan --table-name MysfitsTable
Мы будем использовать команду Dynamodb API BatchwriteItem для пакета вставить ряд элементов сайта в таблицу: AWS Dynamodb Batch-Tood-item — файлRequest-элементы://~/environment/aws-modern-aplication-workshop/module-3/aws-cli/populate-dynamodb.json Теперь, если вы запускаете команду ниже. Вы увидите, что в таблицу находятся предметы. AWS Dynamodb Scan-table name mysfitstable Поскольку наши данные в таблице, нам нужно изменить наш код приложения для чтения из этой таблицы, а не возвращать статический файл JSON. Чтобы скопировать новые файлы в каталог репозитория CodeCommit, выполните следующую команду в терминале: CP ~/Окружающая среда/AWS-Modern-Application-Moadshop/Module-3/App/Service/* ~/Окружающая среда/МификМисцитсСервис-репозиторий/услуга/ Теперь нам необходимо проверить изменения в следующих изменениях в CodeCommit, используя клиент командной строки GIT. Запустите следующие команды, чтобы проверить новые изменения кода и вынуть ваш CI/CD-трубопровод: CD ~/Окружающая среда/MythicalMysfitsService-Revository Git Add. Git Commit -M «Добавить новую интеграцию в Dynamodb». Git push. Теперь всего за 5-10 минут вы увидите, что ваши изменения кода сделают его через полный конвейер CI/C в кодепипене и на своем развернутом службе флэкса в AWS Fargate на Amazon ECS. Не стесняйтесь исследовать консоль CodePipeline AWS, чтобы увидеть изменения прогресса через ваш трубопровод. Наконец, нам нужно опубликовать новую страницу index.html к нашему ведрю S3. Вы можете найти файл в месте ниже. Сделайте необходимые изменения и сохраните файл. ~/Окружающая среда/AWS-Modern-Application-Mather/Module-3/Web/index.html. Запустите следующую команду, чтобы загрузить новый файл index.html. AWS S3 CP — Предварительная ~/Окружающая среда/AWS-Modern-Application-Mather/Module-3/Web/S3://your_bucket_name_here// Если вы пересмотрите свой веб-сайт. Мы можем найти опцию фильтра, что означает, что данные загружаются с Dynamodb. Теперь мы создадим пул пользователя в AWS Cognito, чтобы включить регистрацию и аутентификацию пользователей сайта. Затем, чтобы убедиться, что только зарегистрированные пользователи авторизованы для внесения изменений на веб-сайте, мы разверним API отдыха с воротами Amazon API, чтобы сидеть перед нашим NLB. Выполните следующую команду CLI, чтобы создать пул пользователя с именем mysfitsuserpool AWS Cognito-IDP Create-User-Pool-Pool —pool-name mysfitsuserpool —auto-verified-атрибуты электронной почты Скопируйте уникальный идентификатор пула пользователя из ответа вышеуказанной команды. Далее, чтобы интегрировать наш веб-сайт Frontend с Cognito, мы должны создать новый клиент пользовательского пула для этого пула пользователя. Запустите следующую команду (заменив значение узел-идиодона с одним скопированным выше): AWS Cognito-IDP Create-User-Clian-Client-Client-Client-Pool-ID Melse_me — plient-name mysfitsuserpoolclient Теперь давайте обратим наше внимание на создание нового спокойного API перед нашей существующей службой Flask. Нам нужно настроить ссылку Gateway Pateway VPC, которая включает API Gateway API для непосредственного интеграции с веб-сервисами Backend Web, которые находятся в частной собственности внутри VPC, используя следующую команду CLI: AWS Apcitway Create-VPC-LINK —Name mysfitsapivpclink —target-arns reader_me_nlb_arn> ~/enducial/api-gateway-link-iscome.json Это займет около 5-10 минут для создания ссылки VPC. Файл под названием API-шлюз-ссылка-вывод .json, который содержит идентификатор для создаваемой ссылки VPC. Вы можете скопировать идентификатор из этого файла и перейти к следующему шагу. API остальных определяется с использованием Чугерс Отказ Это Swagger определение API находится в ~/Окружающая среда/AWS-Modern-Ambizaton-Mathsopop/Module-4/AWS-CLI/API-SWAGRAGER .JSON
Отказ Откройте вышеуказанное местоположение и внесите необходимые изменения для услуг AWS. Как только изменения сделаны, сохраните файл и выполните следующую команду AWS CLI: AWS Apcitway Import-Rest-API —Parmeters —body файл://~/environment/aws-modern-application-workshop/module-4/aws-cli/api-swarger.json —fail-on-Prearnings . Скопируйте ответ Эта команда возвращает и сохранить ID
Значение для следующего шага: Теперь наша API была создана, но его еще не развернуто. Мы назовем наш этап прод
Отказ Чтобы создать развертывание для сцены PROD, выполните следующую команду CLI: AWS Apcitway Create-развертывание — Rest-API-ID Create_me_with_api_id —stage-name prod Теперь API доступен в интернете. Используйте следующую ссылку: https://replace_me_with_api_id.execute-api.replace_me_with_region.amazonaws.com/prod/mysfits Теперь нам нужно включить обновленный код Python для вашего веб-службы Backend Flask, чтобы вместить новую функциональность веб-сайта. Давайте перезаписываем существующую кодовую базу этих файлов и нажимайте их в репозиторий: CD ~/Окружающая среда/MythicalMysfitsService-Repository/ CP -R ~/Окружающая среда/AWS-Modern-Application-Storkshop/Module-4/App/* . Git Add. Git Compry -M «Обновить код обслуживания сервиса Backend, чтобы включить дополнительные функции сайта». Git push Обновления услуг автоматически нажимаются через ваш CI/CD-трубопровод. Откройте местоположение/environment/aws-modern-application-workshop/module-4/app/web/index.html, который содержит новую версию файла index.html. Сделайте соответствующие изменения в дополнительных двух файлах HTML вместе с Index.html и сохраните файлы. Запустите команду ниже: AWS S3 CP —recursive ~/Окружающая среда/AWS-Modern-Application-Storkshop/Module-4/Web/S3://Your-S3-Bucket/ Обновите мифический сайт mysfits в вашем браузере, чтобы увидеть новые функциональные возможности в действии
Мы будем создавать способ лучше понять, как пользователи взаимодействуют с веб-сайтом. Мы создадим новый и отремонтированный сервис с целью получения пользовательских событий с сайта. Этот полный стек был представлен с использованием предоставленного шаблона облака. Давайте создадим новый репозиторий CodeCommit, в котором код потоковой передачи обслуживания будет жить: AWS CodeCommit Create-Repository —repository имя MythicalMysfitsStreamingservice-Repository Скопируйте значение «CloneurLHTTP» с вышеуказанного выхода. Далее, давайте клонировать этот новый и пустой репозиторий в нашу IDE: CD ~/среда/GIT клон {вставка скопированного CloneValueurl сверху} Мы будем перемещать наш рабочий каталог в этот новый репозиторий: CD ~/среда/MythicalMysfitsStreamservice-Repository/давайте Скопируйте новые компоненты приложений в этот новый каталог репозитория: CP -R ~/Environment/AWS-Modern-Application-Mathshop/Module-5/App/Treaking/*. И, наконец, давайте скопируем шаблон CloudFation для этого модуля. CP ~/Окружающая среда/AWS-Modern-Application-мастерская/модуль-5/CFN/*. Запустите команду ниже, чтобы установить пакет запросов и его зависимостей на местном уровне рядом с вашим функциональным кодом: PIP Установка запросов -T. Откройте файл streamprocessor.py и замените значения apiendpoint с фактическим значением. Теперь давайте совершим изменения нашего кода на новый репозиторий, чтобы они были сохранены в CodeCommit: Git Add. Git Compry -M «Новый поток обработки обслуживания». Git Push Давайте создадим ведро S3, где AWS SAM CLI упадет весь наш код функции, загружая его на S3 и создать развертываемый шаблон CloudFation. AWS S3 MB S3://Заменить_me_bucket_name Теперь, когда наше ведро создано, мы готовы использовать SAM CLI для пакета и загрузки нашего кода и преобразовать шаблон CloudFation. SAM Package —template-file ./real-Time-streaming.yml —output-template-file ./transformed-streaming.yml —s3-beget refere.ymlow-with Your-Bucket-name не забудьте заменить вышеупомянутое значение с именем ведра. Давайте разверним стек с помощью AWS CloudFormation. Запустите команду ниже: AWS CloudFormation Deploy —Template-файл/home/ec2-user/environment/mythlymysfitsstreamingservice-reposity/cfn/transformed-streaming.yml —stack name mythicalmysfitsstreamingStack —capabilities Compability_iam. Как только это создание стека будет завершено, будет создана полная обработка в реальном времени микрометика. С потоковым стеком вверх и работает, нам теперь нужно публиковать новую версию нашего веб-сайта Frestend, который включает в себя JavaScript, который отправляет события на наш сервис всякий раз, когда пользователь нажимает профиль. Ниже приведено расположение нового файла index.html: ~/окружающая среда/AWS-Modern-Application-application/Module-5/Web/index.html Составьте соответствующие изменения в приведенном выше файле и выполните следующую команду для нового Steaching Stack Чтобы получить новую конечную точку шлюза API для обслуживания обработки потока: AWS CloudFormation Cholese-Stacks —stack-name MythicalMysfitsstreamStackstack Наконец, замените конечное значение в Index.html для StreamingApiendPoint и запустите следующую команду. Обновите свой мифический веб-сайт mysfits в браузере, и у вас есть сайт, который записывает и публикует каждый раз, когда пользователь нажимает на профиль. Для просмотра, которые были обработаны, проверьте ведро пункта назначения S3, созданные как часть вашего MythicalMysFitsStreamingStackStack. Обязательно удалите все ресурсы, созданные для того, чтобы гарантировать, что биллинг для ресурсов не продолжается дольше, чем вы намерены.
Оригинал: «https://dev.to/mrgunneramz/build-a-modern-web-application-5ed9»