Невозможно выбрать папку S3 в качестве источника для CodePipeline на AWS - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь настроить конвейер CI / CD на AWS, используя CodePipeline со следующей настройкой

Источник: S3

Сборка: CodeBuild

Развертывание: CodeDeploy

Релиз: экземпляр EC2

Мне удалось завершить настройку, выполнив эту ссылку

Однако мой конвейер завершается ошибкой с сообщением об ошибке

The object with key 'code-sashi/api' does not exist.

Я проверил и подтвердил, что имя корзины правильное, и внутри корзины есть папка «api».

Опция для установки этого ясно заявляет, что я могу ввести либо ключ объекта S3, либо папку S3.В этом случае я хотел бы использовать папку S3, поскольку мой артефакт сборки будет готов только после запуска CodeBuild.

Однако CodePipeline продолжает искать ключ объекта и игнорирует мою папку.

Iтакже попытался установить папку S3 как «api», «/ api», «api /», и ни одна из них не работает.Я попытался скопировать мои файлы непосредственно в корзину и установить папку как '/', что не удается с другим сообщением об ошибке, что "ключ объекта не может заканчиваться завершающим /"

На основе этой ссылки Я должен быть в состоянии получить все содержимое корзины по папке S3 как '/'.

Если это поможет, я загружаю файлы из частного репозитория Bitbucket в S3 с помощью Bitbucket Pipelines.К сожалению, CodePipeline не может напрямую подключить Bitbucket и, следовательно, обойти S3.Странно, что у CodeBuild нет проблем с подключением к репозиторию Bitbucket, но он не может сделать это, если он является частью CodePipeline.

Вопрос

Как правильно настроить CodePipeline дляполучить мои файлы из корзины 'code-sashi' и папки 'api'?В будущем будут другие папки, содержащие код, поэтому я хотел бы хранить их все в одном ведре.

1 Ответ

0 голосов
/ 06 декабря 2018

Я наконец понял это.

Даже если вы хотите использовать S3 в качестве источника, а не хранилище артефактов, файлы должны быть заархивированы, и вы должны указать заархивированный файл в качестве ключа объекта.

Поэтому я добавил стадию zip в свой Bitbucket Pipeline и перенастроил CodePipeline для использования zip-файла в качестве источника.Работал отлично!

...