1

웹 액세스 용으로 구성된 S3 버킷에 사이트가 있는데 특정 Git 저장소를 누를 때마다 aws s3 sync 명령을 실행합니다 (현재 Gitlab을 사용하고 있습니다).CodeDeploy to S3

따라서 stable 브랜치를 누르면 Gitlab 러너가 사이트 구축을 위해 npm start build 명령을 수행 한 다음 aws s3 sync을 특정 버킷과 동기화합니다.

CodeCommit으로 마이그레이션하고 순수한 AWS 도구를 사용하여 동일한 작업을 수행하려고합니다.


은 지금까지 성공적으로 설치가 저장소, 이슈를 구축하기위한 CodeBuild을 만들 수 있었고, 이슈는 는 S3 버킷에이 (배치되지 않음)에 저장되고 있습니다. 차이점은 하위 폴더 대신 버킷의 루트 폴더에 배포 할 수 없다는 것입니다. 프로세스가 만들어지지 않은 것처럼 보입니다. 웹 액세스가 구성된 방법 때문에 루트 폴더에 있어야합니다.

배포 프로세스의 경우 CodeDeploy을 살펴 보았지만 실제로 S3 버킷에 배포 할 수는 없으며 버킷을 EC2 인스턴스에 배포하기위한 중개자로만 사용합니다. 지금까지는 느낌이 들었습니다 CodeDeploy은 EC2와 관련된 배포에만 유용합니다. 광산보다 유사한 요건

This tutorial

CodePipelineCodeBuild를 사용하지만, 배포 단계는 실제로 (I는 Gitlab에 수행되었을 같은)을 aws s3 sync 명령 및 인 CodePipeline의 실제 전개 단계 사용할 수 없습니다.

이 특정 목적을 위해 만들어진 AWS 기능을 사용하는 해결책을 찾고 있었지만 찾을 수 없습니다.

는 또한 LambCI 알고 있어요,하지만 나에게 CodePipeline/CodeBuild이 (버킷의 루트 폴더에 배포되지 않음) 아티팩트를 저장하고있는 것 같아. 또한, 필자는 AWS 설정 파일 외부에서 새 구성 파일을 배우거나 배포 할 필요가없는 옵션을 찾고 있습니다.

AWS 기능의 현재 상태에서 가능합니까?

답변

0

현재 CodeBuild에서 업로드하는 것이 가장 좋은 방법입니다.

CodePipeline을 통해 this answer에이 배포를 조율하는 방법에 대한 몇 가지 제안 사항이 있습니다.

1

나는 비슷한 문제를 다루고 있으며 알아낼 수있는 한 S3에 앱을 배포하는 데 적합한 서비스가 없다.

AWS CodeDeploy는 실제로 서버로 실행되는 코드를 배포하는 데 사용됩니다.AWS CodeBuild에 성공적으로 구축 한 후 S3 이슈에서 유물 소요

  • 사용자 정의 람다 함수를 구축 AWS CodeCommit에서
  • 를 소스 코드를 취

    1. 출처 :

      내 솔루션은 세 단계로 CodePipeline를 사용하는 것이 었습니다 스토리지, 그것의 압축을 풀고 내 S3 웹 사이트 호스트에 파일을 복사합니다.

      enter image description here

  • 제가

    여러 변화가 이루어질 수했다 SeamusJ https://github.com/SeamusJ/deploy-build-to-s3에서이 AWS 람다 함수를 사용한, I는 S3에서 artifict을 unziping위한 노드 압축 풀기 -2- 대신 압축 풀기 스트림을 사용했다.

    또한 web.ts 파일에서 ACL을 변경해야했습니다.