Рубрики
Без рубрики

Мой опыт работы с Cloud Resume Challenge

Я завершил задачу Cloud Resume и жил, чтобы рассказать об этом. Без предварительного опыта или эду … Теги с AWS, Server, Python, новички.

Я закончил Cloud Resume Challenge и жил, чтобы рассказать об этом.

Без предварительного опыта или образования в области технологий инструменты, необходимые для успешного овладения этой проблемой, были для меня совершенно чужды. готовый продукт – который требовал нескольких недель раннего утреннего исследования, исследования, кодирования и устранения неполадок – было трудно воплотить в жизнь. Открытие в мире технологий, безусловно, было полезным опытом, поэтому я благодарен Форресту за вызов!

Этот пост содержит обзор моего опыта работы с вызовом и несколько советов для других, занимающихся проектом. Для любого, как я, напуганный этим вызовом (или уже спотыкается через него): Не паникуйте Анкет Вы будете удивлены тем, что сможете достичь!

Прыгайте в раздел

  • Почему я принял вызов
  • ОБЗОР ЗАПУСКА
  • Снятие экзамена по облачным практикующим специалистам AWS
  • Создание сайта резюме
  • Построение функциональности подсчета посетителей
  • Создание трубопроводов для CI/CD
  • Резюме

Почему я принял вызов

Проведя последние девять лет, выращивая Автомобильный стартап Я основал с двумя замечательными деловыми партнерами, я решил внести изменения и недавно перешел на роль уровня совета директоров в погоне за новыми предприятиями. В то время как мой опыт в области финансов и опыта, основанная компания, оттачивала мои аналитические и лидерские навыки, я определил, что улучшение моего таланта с помощью технических навыков поможет мне в моем следующем предприятии, будь то запуск новой компании или присоединение к существующей. Стремясь лучше понять технологии облаков и голоса – области, которые особенно убедительны для меня – я начал следить за несколькими интересными людьми в пространстве в Твиттере и наткнулся на Forrest Braiseal , благотворитель (он же злой гений) за облачным резюме.

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

ОБЗОР ЗАПУСКА

Задача сама по себе звучит прямо: создайте простой сайт резюме с функцией подсчета посетителей, используя Amazon Web Services (AWS) Анкет Достаточно просто, верно?

Ну, Форрест предоставляет конкретные инструкции в форме 16 различных шагов, которые должны быть выполнены, чтобы успешно выполнить задачу. Эти шаги могут быть легким для технических специалистов с опытом AWS, но для такого новичка, как я …

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

Сдавать экзамен AWS CCP

В качестве первого шага я провел несколько недель, готовясь к Сертифицированный AWS -практик экзамен. Учитывая масштабы услуг, предлагаемых AWS, сначала я был немного поражен, но в конечном итоге это собралось вместе. В целом, я обнаружил, что получение сертификации перед созданием сайта резюме полезным, потому что он дал четкое понимание различных услуг AWS, которые я использовал при выполнении задачи.

Ниже приведены шаги, которые я предпринял для подготовки:

  1. Взял AWS Cloud Essentials Курс Анкет Это хорошая отправная точка, потому что она официальная, бесплатная, бесплатная и занимает около 6 часов.
  2. Провел страницы обзора для ключевых ресурсов AWS, охватываемых на экзамене, и приняли заметки для будущей ссылки. Это YouTube видео предоставляет полезный индекс ссылок.
  3. Взял Облачный гуру – курс CCP Анкет Это добавило полезный слой в курс AWS Cloud Essentials, потому что он специально сосредоточен на том, чтобы помочь сдать экзамен и включает в себя некоторые лаборатории, которые заставили меня играть в моей учетной записи AWS. В настоящее время у них есть 7-дневная бесплатная пробная версия, которую вы можете использовать для доступа к курсу, хотя в итоге я приобрел годовую подписку, потому что намерен получить дополнительные сертификаты.
  4. Прочитайте следующие гиды AWS и белые работ:
  5. Сделали тонны практических вопросов и экзаменов. Это была самая полезная тактика обучения, так как она помогла мне определить мои слабые области Так что я мог бы атаковать тех, у кого дополнительное обучение. AWS предлагает несколько бесплатных вопросов, а курс ACG – CCP предоставил практические вопросы в конце каждого раздела вместе с комплексным финальным экзаменом. Тем не менее, я обнаружил, что два платных ресурса ниже были самыми полезными. Каждый из них стоил 15 долларов, и их содержание было совершенно разным, поэтому хорошо дополняли друг друга.

Это может быть излишним, но миссия выполнена.

Шаг 1 вниз, 15, чтобы уйти …

Создание сайта резюме

Создание контента резюме в HTML/CSS

Поскольку сайт резюме должен был быть написан в HTML и стилизован с CSS, я взял полезный Курс HTML/CSS из Хана Академии Чтобы получить достойное представление о основах веб -страницы. Первоначальный сайт резюме, который я построил с нуля, был функциональным, но имело лицо, которое могла любить только мать.

К счастью, я нашел резюме шаблон Я любил. Используя Блокнот ++ Наряду с моими вновь обретенными знаниями HTML/CSS я адаптировал шаблон к своим потребностям и значительно упростил свой сайт резюме на глазах.

Шаги 2 + 3 вниз, 13, чтобы уйти …

Развертывание статического сайта S3 с пользовательским доменом и https

Как только у меня был готов контент сайта, мне понадобилось место для публичного размещения в Интернете. Введите Amazon Simple Service (S3) Анкет Первый шаг – создать ведро S3 и позволить ему размещать статический веб -сайт:

После загрузки моих файлов HTML/CSS у меня был рабочий сайт, и с таким URL -адресом, кто не хотел бы посещать?

Чтобы сделать это Маленький Посетителям проще найти свой сайт, я использовал Маршрут 53 купить домен.

Оттуда я использовал AWS Manager Чтобы обеспечить сайт SSL, чтобы его можно было подавать через HTTPS, а затем создать распределение через Cloudfront , Сеть доставки контента AWS.

CloudFront использует кэшированный контент в локациях AWS Edge для улучшения задержки пользователей (то есть, время, необходимое для пользователей по всему миру, чтобы получить доступ к контенту вашего сайта). Таким образом, когда вы обновляете контент вашего сайта в будущем, он может занять время по умолчанию, чтобы жить за 24 часа до того, как CloudFront начнет обслуживание вашего нового контента. Если вы хотите немедленно обслуживать новый контент, вам нужно будет аннулировать распределение CloudFront.

Несколько советов, если вы устранение неполадок:

  • Убедитесь, что ваше ведро S3 имеет то же имя, что и ваш пользовательский домен.
  • Когда вы создаете свое статическое ведро сайта, убедитесь, что оно публичное, а также убедитесь, что любые объекты, которые ваша загрузка в ведро является общедоступным.
  • Проверьте свои записи DNS и убедитесь, что соглашения об именах соответствуют CloudFront.

Шаги 4 + 5 + 6 вниз, 10, чтобы идти …

Размещение количества посетителей на странице с использованием JavaScript

В то время как мой сайт был живым и хорошо выглядел, мне все еще нужен был способ получить необходимый подсчет посетителей на моей странице. В частности, мне понадобится JavaScript, чтобы вызвать последнее количество посетителей из конечной точки API, которую я настраивал в последующих шагах. Этот учебник Было полезным введением в JavaScript, но потребовалось немного, чтобы найти правильный метод для удовлетворения моего конкретного варианта использования. Я экспериментировал, пока не приземлился на что -то, что, надеюсь, будет работать, загрузил свой код JavaScript, ссылался на его HTML и перешел на следующие шаги. Когда я позже заработал свой API, я вернулся к своему JavaScript, вставленным в конечную точку API, и Вуаля , У меня было динамичное количество посетителей.

Совет, если вы устранение неполадок:

  • Для вашего Javascript взгляните на Fetchapi и Xmlhttprequest.

Шаг 7 вниз, 9, чтобы пойти …

Построение функциональности подсчета посетителей

Использование AWS Lambda, DynamoDB и API Gateway для создания функции подсчета посетителей

Теперь мы входим в сложную фазу. Шаги, которые я описываю на высоком уровне ниже, не справедливости к достойному количеству учебных пособий, гуглинге и проб и ошибкам, которые я выполнил до того, как у меня было все, что работало должным образом. Однако ощущение восторга, когда все начало щелкать, стоило того.

  1. Создал Dynamodb Таблица, чтобы обновить и хранить количество посетителей на моем сайте резюме. Это было довольно просто, когда я выяснил первичные ключа и конвенции атрибутов.
  2. Построил Lambda функция с использованием Python и AWS SDK для Python под названием Boto3 Анкет При срабатывании функция Lambda обновляет количество посетителей, хранящихся в моей таблице DynamoDB ровно 1. Это была одна из самых забавных частей процесса, и я рад продолжить изучение Python.
  3. Реализовано тестирование для моего кода Python. Есть несколько способов сделать это, но я использовал Unittest Анкет
  4. Создал API с использованием API Gateway Это находится между моим интерфейсом сайтом и моей факультетой Lambda. Используя URL -адрес API API, мой код JavaScript вызывает мой API всякий раз, когда кто -то посещает мой веб -сайт, и API сразу же запускает мою функцию Lambda, чтобы обновить количество посетителей в моей таблице DynamoDB и вернуть обновленный счет в мой API, который затем отображает JavaScript мой сайт. Очень круто.

Совет, если вы устранение неполадок:

  • Если вы изо всех сил пытаетесь заставить свою конечную точку API работать, попробуйте включить CORS и настраивать возврат лямбды, чтобы она передала правильные заголовки обратно в его ответ (вам необходимо сделать оба при использовании прокси -интеграции для вашего API).

Шаги 8 + 9 + 10 + 11 вниз, 5, чтобы идти …

Определение контрольных ресурсов AWS в шаблоне SAM и развертывание с использованием SAM CLI

В то время как вы можете настроить приведенные выше ресурсы AWS (DynamoDB, Lambda и API -шлюз) индивидуально в консоли AWS, наилучшей практикой будет настройка и развертывание их в качестве унифицированного приложения, используя Сэм Кли Анкет Выяснить, как определить мои ресурсы AWS в шаблоне SAM. YAML занял некоторое время, но как только этот код был взломан, развертывание и обновление с использованием SAM CLI было очень простым и продемонстрировало силу Инфраструктура как код Анкет Смотреть мое приложение оживает в Cloudformation После развертывания с AWS CLI было потрясающим!

Советы, если вы устранение неполадок:

  • При определении вашей функции Lambda в файле Same Samp.yaml используйте соглашение «fileName.functionName» для вашего свойства обработчика, чтобы ваш шаблон SAM соответственно ссылался на вашу функцию Python. Например, для файла Python с именем “rambdafunction.py” с функцией лямбда внутри, определенной как «обработчик», ваше свойство обработчика в шаблоне SAM будет “rambdafunction.handler”. Это разбило меня изначально.
  • Поиск подходящего URL-адреса API может быть сложным, но если вы определите его как вывод в своем файле Same.

Шаг 12 вниз, 4, чтобы пойти …

Создание трубопроводов для CI/CD

Это был один из самых забавных и наиболее полезных шагов в процессе. В то время как у меня было рабочее приложение, связывающее мой сайт Front-End Resume и код функции подсчета посетителей, мне, безусловно, нужно было бы сделать обновления. Настройка конвейера CI/CD позволила бы мне обновить свой код из онлайн-репозитория и автоматически натолкнуть эти обновления на мой интерфейс веб-сайта и бэк-эндонджную приложение/инфраструктуру.

  1. Создал GitHub Учетная запись и настройка двух частных репозиториев кода, один для моего фронтального (HTML, CSS, JavaScript) и один для моего бэк-энда (функция/тесты Python, шаблоны SAM) и загрузил мои файлы.
  2. Установите конвейер непрерывного развертывания, используя AWS Codepipeline Использование моего репозитория кода переднего кода на GitHub в качестве источника. Теперь, когда я делаю обновления в моем коде HTML/CSS/JavaScript на GitHub, CodePipeline автоматически внедряет эти изменения в мое ведро S3.
  3. Установите второй конвейер с использованием CodePipeline, на этот раз, используя мой хранилище кода в качестве источника. Этот трубопровод был сложнее, чем передний конец, потому что я добавил стадию сборки, которая проверила и упаковала мое приложение перед тем, как развернуть до производства, но теперь, когда он настроен, мои обновления в моем коде Бэк-Энда в GitHub автоматически тестируют и развертывают!

Совет, если вы устранение неполадок:

  • Если вы используете CodePipeline для непрерывного развертывания, обязательно проверьте поле «Включить журналы» при настройке трубопровода, так как он даст более подробную информацию о любых ошибках/сбоях трубопровода. Мой трубопровод неоднократно выходил из строя во время испытательного этапа, что заставило меня тратить еще больше времени на устранение неполадок на мой buildspec.yml, что в конечном итоге оказалось ненужным, так как после того, как я включил журналы сборки в моих настройках трубопровода, я смог точно понять, почему мои сборки провалились: Моя роль в службе CodePipeline не имела надлежащих разрешений для взаимодействия с моей таблицей DynamoDB. Легко исправить оттуда.

Шаги 13 + 14 + 15 вниз, только этот пост в блоге!

Резюме

В целом, Cloud Resume Challenge был забавным, привлекательным проектом с «вызовом» – это оперативное слово. Я многое узнал о облачных сервисах, инфраструктуре как коде, без сервера приложений, CI/CD и некоторых навыках программирования. Я также многое узнал о себе, а именно, что мышление новичка мощное и что я взволнован, чтобы продолжать идти. Еще раз спасибо Forrest Braiseal за то, что выпустили это.

Из вызова Форреста ясно и из различных ресурсов, с которыми я сталкивался во время процесса, техническое сообщество открыто, поддерживает и обнадеживает. С этой целью, если вы работаете над этим вызовом, удачи, и я надеюсь, что этот пост был полезным. Если вы все еще рассматриваете задачу, я призываю вас попробовать.

Если вы хотите подключиться или узнать больше о моем опыте работы с Cloud Resume Challenge, пожалуйста, прокомментируйте здесь или найдите меня в LinkedIn или Twitter Анкет

Оригинал: “https://dev.to/wboland33/my-experience-with-the-cloud-resume-challenge-1ade”