Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

158
Views
Automatice la implementación de archivos de sitios web estáticos en S3 después de la compilación

Tengo una aplicación de reacción (SPA) que se implementa en S3 y es de acceso público. Después de cada compilación, tengo que cargar manualmente index.html y otros activos estáticos en S3. ¿Hay alguna forma de automatizar este proceso?

Hice una búsqueda exhaustiva en CD (implementación continua) a S3 , aquí hay una pregunta SO sobre lo mismo.

Estoy agregando toda la información de mi investigación exhaustiva. He escrito la siguiente respuesta, que contiene varios métodos para lograr esto.

about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Hay muchas formas de automatizar la implementación de S3 . Aquí están las cosas que recopilé:

1. AWS SNS y Lambda:

Este proceso es útil si desea activar cualquier servicio de AWS en github push. Entonces, este es el proceso:

  1. El impulso de github activa un mensaje a SNS.
  2. Se invoca el Lambda que está suscrito al tema de SNS.
  3. Dentro de Lambda, clono el repositorio de github.
  4. Utilice el SDK de S3 de AWS para cargar el directorio de compilación o distribución en su depósito de S3. Aquí hay una arquitectura de alto nivel del proceso anterior:

Automatización mediante SNS y Lambda

La desventaja de este enfoque es que la clonación de repositorios grandes lleva tiempo y las Lambdas se facturan por segundo. Por lo tanto, esto puede volverse costoso para grandes repos.

2. Travis:

Travis es conocido por su biblioteca CI (integración continua). Un .travis.yml es esencial para el proceso de integración.

Si desea realizar algunas pruebas después de la compilación y luego con éxito, cargue los archivos en S3. Entonces este enfoque será la mejor manera. Travis es gratuito para proyectos de código abierto.

La desventaja es que no pude encontrar una manera de aislar un directorio del repositorio y cargar solo ese directorio específico.

3. CLI de AWS:

Esta es la forma más económica y mejor de cargar los archivos en S3. Utilicé este enfoque. Obtuve esta información de esta publicación mediana .

Por lo general, en las aplicaciones de reacción, los scripts de compilación son activados por npm o yarn escritos como scripts en el paquete.json . Aquí está el comando para cargar los archivos a S3:

aws s3 sync build/ s3://<bucket-name>

Agregué este script como parte de los scripts de compilación en package.json. Esto fue muy útil y, por lo tanto, automatizó el proceso manual de cargar los archivos en S3.

Esta respuesta se basa en mi perspectiva. Si algo es incorrecto o si me perdí algo, no dude en comentarlo y lo agregaré a la respuesta.

about 4 years ago · Santiago Trujillo Report

0

Me encanta la respuesta de @lakshman , pero no funcionará para repositorios de bitbucket privados/locales y algunos otros escenarios con los que nos encontramos en el mundo comercial.

Una idea similar que es compatible con bitbucket (y más) es clonar el código en CodeCommit y luego activar un CodePipeline que incluye un paso de CodeBuild.

CodeBuild puede empujar a S3. Como beneficio adicional, CodeBuild puede ejecutar pruebas e incluir pasos de compilación adicionales según sea necesario (migraciones, etc.). Bitbucket tiene un enlace espejo que permite a CodeCommit clonar repositorios de Bitbucket. Creo que este es el enlace del gancho del espejo, pero verifíquelo dos veces, ya que hay varios complementos/extensiones de Bitbucket, incluido el espejo de cadena en el nombre.

Esta pregunta SO analiza un gancho de Bitbucket diferente y también analiza la clonación de GitLab y JGit. Nuevamente, una vez que el código está en CodeCommit, CodePipeline puede tomarlo desde allí.

En lugar de usar un enlace de Bitbucket, también puede usar una canalización de Bitbucket .

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!