Автоматизация развертывания приложений Angular 7 с помощью AWS S3 и CodePipeline - PullRequest
1 голос
/ 11 апреля 2019

Я разместил приложение Angular 7 в AWS S3 как статический веб-сайт и теперь хочу автоматизировать развертывание более новой версии при обновлении моего репозитория github.

Я хочу, чтобы файлы из более новой версии заменяли файлы предыдущей версии в корзине s3. Вот как я это делаю

У меня есть файл buildspec

version: 0.2

phases:
  install:
    commands:
      # install dependencies
      - echo Installng source NPM dependencies...
      - npm install npm@latest -g
      - npm install -g @angular/cli

  pre_build:
    commands:
      - echo Prebuild steps
      - npm install

  build:
    commandS:
      # build angular app
      - echo Build started on `date`
      - ng build

  post_build:
    commands:
      # clear S3 bucket
      - aws s3 rm s3://${S3_BUCKET} --recursive
      - echo S3 bucket cleared
      # copy files from dist folder into S3 bucket
      - aws s3 cp dist s3://${S3_BUCKET} --recursive
      - echo Build completed on `date`

при запуске конвейера кода процесс завершается с ошибкой в ​​post_build, как показано в журнале здесь

[Контейнер] 2019/04/11 10:33:49 Выполнение команды aws s3 rm s3: // $ {S3_BUCKET} --recursive /usr/local/lib/python2.7/dist-packages/urllib3/util/ssl_.py:354: SNIMissingWarning: HTTPS-запрос сделан, но расширение SNI (индикация имени сервера) для TLS недоступно для этого Платформа. Это может привести к тому, что сервер представит неправильный сертификат TLS, что может привести к ошибкам проверки. Вы можете перейти на более новую версию Python, чтобы решить эту проблему. Для получения дополнительной информации см. https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings SNIMissingWarning Ошибка удаления: s3: //trips9ja-admin/3rdpartylicenses.txt Произошла ошибка (AccessDenied) при вызове операции DeleteObject: доступ запрещен удалить не удалось: s3: //trips9ja-admin/Trips9jaPipeline/SourceArti/FyvYEvb.zip Произошла ошибка (AccessDenied) при вызове операции DeleteObject: доступ запрещен Ошибка удаления: s3: //trips9ja-admin/assets/bus.png Произошла ошибка (AccessDenied) при вызове операции DeleteObject: доступ запрещен

И вот где я застрял. Так что же я делаю не так и что означает ошибка?

У меня есть политика S3 Bucket, чтобы разрешить доступ к сборке кода, как это

{
            "Sid": "CodeBuildPermision",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::735681810231:role/service-role/codebuild-service-role"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::<bucket name>"
        }

1 Ответ

0 голосов
/ 11 апреля 2019

Решил проблему, добавив еще одну строку в "Resource" политики корзины S3, которая разрешает доступ ко всему содержимому корзины, как это "Resource": ["arn:aws:s3:::<bucket name>", "arn:aws:s3:::<bucket name>/*"]

...