AWS Proton — это полная служба доставки для приложений в контейнер и без серверов. Он предоставляет инструменты для предоставления инфраструктуры, а также развертывания, управления и обновления услуг.
Обновление (9 июня 2021 г.):
AWS Proton больше не является сервисом предварительного просмотра в целом доступна. Прочитайте объявление
Во время Повторно-из-за 2020 , AWS сделал пару объявлений, связанных с предложениями служб контейнеризации. Которые:
🔥 Четыре новых сервиса:
- AWS Proton (новый сервис для управления и автоматизации разработки и развертывания контейнеров)
- Amazon ECS в любом месте (Запустите ECS в среде)
- Amazon eks в любом месте (Запустите EKS в местах)
- Amazon ECR Public — (Хозяева и делитесь публичными репонами, как Dockerhub)
📦 Контейнеризация доходит до лямбда: Теперь вы можете упаковать и развернуть функции AWS Lambda в виде контейнера до 10 ГБ
В этом уроке я собираюсь показать, как вы можете взять тест -драйв AWS Proton и развернуть свое первое приложение.
ℹ Уведомление: это программа предварительного просмотра, а не на 100% стабильная на момент написания
ℹ Уведомление: убедитесь, что ваша учетная запись AWS имеет «административный доступ», прежде чем продолжить (корневые учетные записи имеют его по умолчанию).
ℹ Обратите внимание: если у вас нет опыта ECS, я очень рекомендую вам Сначала завершите эту серию
Шаг 1: Подключите GitHub с вашей учетной записью AWS
Перейти к AWS Proton Console
Нажмите на меню гамбургера, чтобы расширить боковую панель
Нажмите «Соединения источника»
Он перенесет вас на новую страницу, оттуда выберите «Создать соединение»
Выберите «Github» в качестве поставщика, дайте любое имя как «имя соединения» и нажмите «Подключиться к GitHub»
Во всплывающем окне выберите «Авторизировать разъем AWS для GitHub»
После разрешения он перенаправляет вас обратно на AWS. Оттуда выберите «Установить новое приложение»
Он поставит вас в GitHub (снова) и попросит организацию, где вы хотели бы установить приложение (в моем случае я собираюсь сделать это в своей личной организации)
После этого выберите репозитории, на которые вы хотели бы предоставить приложение Connector доступ (я собираюсь предоставить ему доступ ко всем своим репо), а затем нажмите «Установка»
После того, как вы дали доступ, он вернет вас в AWS и заполните поле приложения для вас — нажмите «Подключить»
После того, как приложение будет успешно подключено с вашим AWS, вам потребуется страница списка приложений
Шаг 2: Создать «Роли учетной записи»
Из AWS Proton Console , нажмите «Роли учетной записи», а затем нажмите «Создать»
Выберите «Роль новой службы», дайте любое имя, проверьте »
Я согласен создать роль протона ...
«Опция, и нажмите« Создать »(вы видите« обновление »на скриншоте, потому что у меня уже есть роль сервисного обслуживания)
Шаг 3: Создать «Шаблон среды»
Из AWS Proton Console , нажмите «Шаблоны среды» с левой боковой панели
Нажмите «Создать шаблон среды»
Выберите «Используйте один из наших образцов пакетов шаблона» и выберите «Фаргейт-среда» в качестве «пакета шаблона образца».
Введите любое имя как «Имя шаблона» и «Имя шаблона» и нажмите «Создать шаблон среды»
После создания шаблона вам необходимо выбрать второстепенную версию (1.0 в этом примере) и нажать «Опубликовать»
Шаг 4: Создать «шаблон обслуживания»
На левой боковой панели выберите «Шаблоны службы», а затем нажмите «Создать шаблон службы»
Выберите «Используйте один из наших образцов пучков» и «Fargate-Service» в качестве «пакета шаблона образца»
Введите любое имя как «Имя шаблона» и «Имя отображения шаблона», выберите «Постановка» в качестве шаблона совместимой среды (оно должно быть таким же, как и «Имя отображения шаблона» на шаге 2 ☝🏽) и нажмите «Создать шаблон службы»
Как и раньше, выберите второстепенную версию и нажмите «Опубликовать»
Шаг 5: Создать сервис «
Выберите «Сервисы» с левой боковой панели, а затем нажмите «Создать службу»
Выберите шаблон сервиса, который мы создали ранее (Hello World в моем случае) и нажмите «Настройка»
Дайте любое имя «имя обслуживания», введите филиал (вашего Github Repo), которое вы хотели бы использовать, введите свой идентификатор репо в формате
account-id/repo-name
, выберите подключение GitHub, которое мы создали на шаге 1, а затем нажмите «Далее» — Вы также можете разобраться в этом примере, если у вас нетНажмите «Добавить новый экземпляр»
Дайте имя своему экземпляру, выбрали среду, которую мы создали ранее, дайте номер порта (по умолчанию 80), установите желаемый счет на 1 (это буквально то же самое, что и установление количества задач в ECS), выберите X-Small как Размер (я попытался найти ссылку на эти размеры и то, как они отображаются в VCPU/Memory Но я не мог найти в официальном документе на момент написания этой статьи), дайте любое имя «уникальное имя», нажмите «Создать»
Как только служба будет создана, она перенесет вас на страницу службы, а в нижнем разделе вы можете увидеть все экземпляры этой конкретной услуги
Это займет некоторое время, прежде чем статус будет изменен на «успех» с «в процессе». На самом деле, за кулисами, он создаст кластер ECS, сервис, задачу, задача, проект облачной сборки, облачный трубопровод и т. Д.
Шаг 6: Возьмите тест -драйв »
После того, как статус был изменен на «успешное», нажмите на имя экземпляра
Скопировать URL
Смотрите результаты
Давайте изменим код и увидим CI/CD в действии
После того, как изменения будут развернуты, перезагрузите страницу
Вот и все, большое спасибо за то, что следовали!
🐞 Ошибки и их обходные пути Когда я впервые попробовал AWS Proton, я обнаружил несколько ошибок, большинство из них уже были исправлены, и есть вероятность, что когда вы читаете это Остальные также исправлены
По умолчанию, это всегда собиралось nginx image И мне пришлось получить URI моего изображения от ECR, а затем вручную обновить экземпляр службы (Action-> Обновление спецификации)
Иногда это не покажет мне «использовать один из наших примеров пакетов шаблонов», для этого перейдите на консоль Proton AWS, нажмите «Начало», а оттуда нажмите «Создать шаблон среды»
Если трубопровод не удастся, он не даст никакой ошибки, а статус экземпляра покажет «в процессе». Чтобы исправить это, перейдите в AWS Pipeline и посмотрите, на каком этапе он потерпел неудачу, и почему и исправить его (вы также можете получить доступ к проекту связанного кода по сборке) оттуда) оттуда)
Я не мог обновить/удалить неудачные трубопроводы даже после использования CLI, чтобы вы могли вручную удалить его, перейдя в ECS и удалив/останавливая связанную службу или задачи (ы) — Смотрите проблему GitHub
Давайте подключимся:
LinkedIn: https://www.linkedin.com/in/mubbashir10/
Twitter: https://twitter.com/mubbashir100
Оригинал: «https://dev.to/mubbashir10/aws-proton-tutorial-sample-nodejs-app-2f9k»