Рубрики
Uncategorized

Как развернуть GATSBY на AWS с CI без усиления

Большинство современных пост здесь: https: //thoughtsandstuff.com/deploy-gatsby-aws-with-ciThergitout-amplify … Tagged с кодированием, DEVOPS, GATSBY, AWS.

Большинство современных пост здесь: https://foughtsandstuff.com/deploy-gatsby-aws-with-ci-without-amplify

На момент написания AWS Amplify имеет проблему в рамках своей сборки, что означает, что он падает, если в ведре S3 слишком много файлов. Это позор, поскольку усиление довольно подключена и играет, а использование других услуг AWS для создания того же результата может быть немного сложнее. Ошибка, которую я столкнулся, выглядел так:

Развертывание не удается с «[Ошибка]: Не удалось развернуть

Если вы столкнулись с той же проблемой, так как ME и Amplify постоянно не удается, вот шаг за шагом проходит то, что вам нужно сделать, чтобы использовать AWS CodePipine. Чтобы получить развернутый проект, без более простоя.

Я включил столько информации, сколько смогу бы, чтобы эти этапы могли сопровождать кого-либо, чтобы помочь получить ваш проект и бежать гладко.

Добавление BuildSpec.yml для проекта

Прежде чем делать что-либо с AWS, файл BuildSpec должен быть создан в корне проекта GATSBY. Этот файл используется AWS CodePipeline во время процесса сборки, и позволяет прикреплены команды к этапам в рамках сборки.

Создайте файл с именем «BuildSpec.yml» и добавьте следующий код:

version: 0.2
artifacts:
    base-directory: public
    files:
        - '**/*'
phases:
    install:
        commands:
            - touch .npmignore
            - npm install -g gatsby
    pre_build:
        commands:
            - npm install
    build:
        commands:
            - npm run build
            - aws s3 sync ./public $ENV_BUCKET --delete --exclude 'node_modules/*'

Сохраните этот файл и зафиксируйте его на ваш проект REPO на ветви, которую вы хотите развернуть.

Что делает файл buildspec.js?

Он начинается, устанавливая версию BuildSpec до 0,2. Это внутренний номер версии AWS, а не версия вашего файла. Это никогда не должно меняться.

Управляются артифактными настройками. Артефакт — это файл, созданный процессом сборки. В этом случае это будет ZIP-файл, который будет расстегнут, когда он передан в пункт назначения. Как GATSBY создает в папке «Общественная» папка, эта папка должна быть установлена в качестве основы. Тогда все файлы из этой папки должны быть включены.

В разделе «Этаза» используются три команды. Установить, предварительно построить и построить. В рамках установки фазы GATSBY устанавливается по всему миру, а файл .npmignore создан. Как только это завершено, все пакеты NPM устанавливаются в Pre_Build. Затем в фазе постройки две команды цепляются вместе. Это для того, чтобы гарантировать, что если сборки не удается — файлы не передаются.

Окончательная команда фазы сборки использует AWS Sync для развертывания файлов сборки из артефакта, к ведрю, указанному на более позднем этапе. Флаг -delete означает, что любые файлы в будущих сборках, которые устарели, будут удалены. Node_Nodules исключается из процесса, хотя только папка «/Public» перемещается, и она сэкономит время. AWS Sync будет зацикливаться через все файлы, даже те, которые не нужны.

Настройка ведра S3

После того, как вы создали файл buildspec.js, изложенный на вышеуказанном этапе, пришло время начать с AWS. Первый шаг — создать ведро S3. Ведро используется для удержания файлов, созданных сборкой GATSBY.

Чтобы создать ведро, вам нужно:

  • Перейдите к разделу S3 в AWS
  • Нажмите «Создать ведро».
  • Введите имя вашего ведра
  • Выберите регион, в котором вы хотите провести ваши файлы.

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

Ведро также должно быть предоставлено полный доступ к публичному доступу. Ведра причина обычно заблокированы, — это прекратить утечку информации. Однако, как это статический сайт, который не о чем беспокоиться. Все файлы должны быть доступны для сайта для запуска.

Чтобы настроить правильный доступ, вам нужно:

  • Снимите флажок «Заблокировать весь публичный доступ»
  • Проверьте страшную просматривать блок предупреждения внизу.

После создания ведра необходимо сказать AWS, что это ведро должно использоваться для размещения статического веб-сайта.

  • Перейти к «свойствам» для этого ведра
  • Нажмите «Статический хостинг сайта».
  • Выберите «Используйте это ведро, чтобы провести сайт»
  • Введите «index.html» как документ индекса.
  • Введите «404.html» в качестве документа об ошибке.

После того, как вы завершили вышеизложенное, вам нужно обновить политику ведра. Это установит доступ для чтения для всех в мире. Шаги к этому:

  • Перейдите к S3 в консоли AWS.
  • Нажмите в свое ведро.
  • Нажмите на раздел «Разрешения».
  • Выберите «Ковш-политика».
  • Добавьте следующую политику ведра (обновите с помощью имени вашего ведра), а затем сохраните
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::YOURBUCKETNAME",
                "arn:aws:s3:::YOURBUCKETNAME/*"
            ]
        }
    ]
}

Настройка кодовой обработки

AWS CodePipipeline — это полностью управляемая служба CI (непрерывной доставки), которая автоматизирует выбросы. Он удаляет много сложности вокруг выкатывания приложений, что делает его гораздо проще и быстрее развернуть их.

Мы хотим, чтобы CodePipipeline прослушать ваш репозиторий, и в любое время новая коммитация сделана в вашу ветку выбора, процесс сборки будет работать. Сгенерированные файлы будут развернуты из кодовой обработки к ведрю S3.

Чтобы настроить кодовую обработку, следуйте этим инструкциям.

  • Перейти к разработчике Инструменты/CodePipeline
  • Нажмите «Создать трубопровод»
  • Введите имя вашего трубопровода
  • Нажмите кнопку «Далее

Теперь пришло время подключить свой источник. В этом примере я буду использовать облако битбукет, но GitHub также вариант.

  • Выберите провайдер источника
  • Нажмите «Подключиться» для поля подключения
  • Откроется новый модал, нажмите «Установить приложение», чтобы ссылаться на свою учетную запись REPO.

На этом этапе важно отметить, что вы можете подключиться только к REPOS, чтобы учетная запись, которую вы подключаетесь к владению (если используете BitBucket). Недостаточно, чтобы получить доступ администратора.

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

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

Добавить сцену сборки

На данный момент вам необходимо создать процесс сборки для вашего проекта GATSBY. Это относительно прямое. Хотя AWS говорит, что это необязательно, нам требуется для нашего проекта.

  • Выберите провайдер сборки — AWS CodeBuild
  • Выберите свой регион
  • Нажмите «Создать проект» — это имя вашего процесса сборки.

Теперь вам будет показано всплывающее модаль. Введите следующие данные:

  • Имя проекта
  • Перейти к разделе «Окружающая среда»
  • Выберите «Управляемое изображение»
  • Операционная система — Ubuntu
  • Вопрос времени (ы) — Стандартный
  • Изображение: AWS/CodeBuild/Standard: 4.0
  • Переместитесь на дно и нажмите «Продолжить до кодовой обработки»

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

Существует одна переменная, которую вы должны добавить, и это имя ведра, которое это развертывание передает статические файлы на. Это установлено:

  • Нажмите «Добавить переменные среды»
  • Установите имя как env_bucket
  • Установите значение в качестве имени вашего ведра (включая S3://на фронте — например, S3://MyBuckname ‘)
  • Оставьте тип настроен на открытый текст.

Добавить развертывать этап

Как только вы добавили переменные среды, нажмите Далее в правом нижнем углу И вы будете доставлены на экран Add Deploy Stage.

Поскольку все развертывание управляется через AWS Sync, этап развертывания не требуется.

Нажмите «Пропустить развертывание этапа».

Пойдем

Дважды проверьте все настройки на последнем экране, и если нет ошибок, нажмите «Создать трубопровод».

Это создаст конвейер и запускает первую сборку статического сайта. Сейчас В любое время в этом конкретном отделении нажаты на этот конкретный филиал. Создание будет вызвать и перенаправить.

Если вам нужно это произойти через несколько веток, повторите процесс на новой ветви!

Я надеюсь, что это помогло тебе двигаться. Дайте мне знать, если я могу больше помочь, обратимся к мне в Twitter @Robertmars

Оригинал: «https://dev.to/robmarshall/how-to-deploy-gatsby-on-aws-with-ci-without-amplify-19mh»