Es posible que desee crear las compilaciones de AWS CodeBuild en Amazon Elastic File System, un servicio escalable de archivos compartidos para instancias de Amazon EC2. La capacidad de almacenamiento con Amazon EFS es elástica, por lo que aumenta o disminuye a medida que se añaden y eliminan archivos. Tiene una interfaz de servicios web sencilla que puede utilizar para crear y configurar sistemas de archivos. También administra automáticamente toda la infraestructura de almacenamiento de archivos, por lo que no tiene que preocuparse por la implementación, aplicación de parches o el mantenimiento de configuraciones del sistema de archivos. Para obtener más información, consulte ¿Qué es Amazon Elastic File System? en la Guía del usuario de Amazon Elastic File System.
En este ejemplo, se muestra cómo se configura un proyecto de CodeBuld para que monte y cree una aplicación Java en un sistema de archivos de Amazon EFS. Antes de comenzar, debe disponer de una aplicación Java lista para compilar que esté cargada en un bucket de entrada de S3 o en un repositorio de AWS CodeCommit, GitHub, GitHub Enterprise Server o Bitbucket.
Los datos en tránsito para su sistema de archivos están cifrados. Para cifrar los datos en tránsito con una imagen distinta, consulte Cifrado de datos en tránsito.
Temas
Uso de AWS CodeBuild con Amazon Elastic File System
El ejemplo cubre los cuatro pasos generales necesarios para utilizar Amazon EFS con AWS CodeBuild. Son los siguientes:
-
Crear una nube virtual privada (VPC) en su cuenta de AWS.
-
Crear un sistema de archivos que utilice esta VPC.
-
Crear y compilar un proyecto de CodeBuild que utilice la VPC. El proyecto de CodeBuild utiliza lo siguiente para identificar el sistema de archivos:
-
Un identificador único del sistema de archivos. El identificador se elige al especificar el sistema de archivos en el proyecto de compilación.
-
El ID del sistema de archivos. El ID se muestra cuando ve el sistema de archivos en la consola de Amazon EFS.
-
Un punto de montaje. Se trata de un directorio en el contenedor Docker que monta el sistema de archivos.
-
Opciones de montaje. Incluyen detalles sobre cómo montar el sistema de archivos.
-
-
Revise el proyecto de compilación para asegurarse de que se han generado las variables y los archivos del proyecto correctos.
nota
Un sistema de archivos creado en Amazon EFS solo es compatible con las plataformas Linux.
Temas
Paso 1: Crear una VPC con AWS CloudFormation
Cree su VPC con una plantilla de AWS CloudFormation.
-
Siga las instrucciones de Plantilla de VPC de AWS CloudFormation a fin de utilizar AWS CloudFormation para crear una VPC.
nota
La VPC que se crea con esta plantilla de AWS CloudFormation tiene dos subredes privadas y dos subredes públicas. Solo debe utilizar subredes privadas cuando use AWS CodeBuild para montar el sistema de archivos que ha creado en Amazon EFS. Si utiliza alguna de las subredes públicas, la compilación genera un error.
Inicie sesión en la AWS Management Console y abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/
. -
Elija la VPC que ha creado con AWS CloudFormation.
-
En la pestaña Description (Descripción), anote el nombre de la VPC y su ID. Ambos serán necesarios cuando cree su proyecto de AWS CodeBuild más adelante en este ejemplo.
Paso 2: Crear un sistema de archivos de Amazon Elastic File System con su VPC
Cree un sistema de archivos sencillo de Amazon EFS de ejemplo utilizando la VPC que creó anteriormente.
Inicie sesión en la AWS Management Console y abra la consola de Amazon EFS en https://console.aws.amazon.com/efs/
. -
Seleccione Crear sistema de archivos.
-
Desde VPC, elija el nombre de VPC que anotó anteriormente en este ejemplo.
-
Deje las zonas de disponibilidad asociadas a las subredes seleccionadas.
-
Elija Paso siguiente.
-
En Añadir etiquetas, para la clave Nombre predeterminada, en Valor, introduzca el nombre de su sistema de archivos de Amazon EFS.
-
Mantenga Transmisión por ráfagas y Uso general seleccionados como sus modos de desempeño y rendimiento predeterminados, y luego elija Paso siguiente.
-
En Configurar acceso de cliente, seleccione Paso siguiente.
-
Seleccione Crear sistema de archivos.
-
(Opcional) Le recomendamos añadir una política a su sistema de archivos de Amazon EFS que imponga el cifrado de los datos en tránsito. En la consola de Amazon EFS, elija Política del sistema de archivos, elija Editar, seleccione la casilla Aplicar el cifrado en tránsito para todos los clientes y, a continuación, seleccione Guardar.
Paso 3: Crear un proyecto de CodeBuild para usarlo con Amazon EFS
Cree un proyecto de AWS CodeBuild que utilice la VPC que creó anteriormente en este ejemplo. Al ejecutar la compilación, se monta el sistema de archivos de Amazon EFS que se ha creado anteriormente. A continuación, se almacena el archivo .jar que la aplicación Java ha creado en el directorio de puntos de montaje del sistema de archivos.
Abra la consola de AWS CodeBuild en https://console.aws.amazon.com/codesuite/codebuild/home
. -
En el panel de navegación, elija Build projects (Proyectos de compilación) y después Create build project (Crear proyecto de compilación).
-
En Nombre del proyecto, introduzca un nombre para el proyecto.
-
En Source provider (Proveedor de código fuente), elija el repositorio que contiene la aplicación Java que desea compilar.
-
Introduzca información como, por ejemplo, una URL del repositorio, que CodeBuld utiliza para localizar la aplicación. Las opciones son diferentes para cada proveedor de código fuente. Para obtener más información, consulte Choose source provider.
-
En Imagen de entorno, elija Imagen administrada.
-
En Sistema operativo, elija Amazon Linux 2.
-
En Tiempo(s) de ejecución, elija Estándar.
-
En Imagen, elija aws/codebuild/amazonlinux2-x86_64-standard:4.0.
-
En Tipo de entorno, elija Linux.
-
En Rol de servicio, elija Nuevo rol de servicio. En Nombre de rol, introduzca un nombre para el rol que CodeBuild crea automáticamente.
-
Expanda Configuración adicional.
-
Seleccione Enable this flag if you want to build Docker images or want your builds to get elevated privileges (Habilite este indicador si desea compilar imágenes de Docker o que sus compilaciones tengan privilegios elevados).
nota
De forma predeterminada, el daemon de Docker está habilitado para compilaciones sin VPC. Si quiere usar contenedores de Docker para las compilaciones de VPC, consulte la sección sobre privilegios en tiempo de ejecución y capacidades de Linux
en el sitio web de Docker Docs y habilite el modo privilegiado. Además, Windows no admite el modo privilegiado. -
En VPC, elija el ID de VPC.
-
En Subredes, elija una o varias subredes privadas asociadas con su VPC. Debe utilizar subredes privadas en una compilación que monta un sistema de archivos de Amazon EFS. Si utiliza una subred pública, la compilación genera un error.
-
En Security groups (Grupos de seguridad), elija el grupo de seguridad predeterminado.
-
En File systems (Sistemas de archivos), escriba la siguiente información:
-
En Identifier (Identificador), introduzca un identificador único del sistema de archivos. El identificador debe tener menos de 129 caracteres y solo debe contener caracteres alfanuméricos y guiones bajos. CodeBuild utiliza este identificador para crear una variable de entorno que identifica al sistema de archivos elástico. El formato de la variable de entorno es
CODEBUILD_
, en mayúsculas. Por ejemplo, si introduce<file_system_identifier>
my_efs
, la variable de entorno esCODEBUILD_MY_EFS
. -
En ID, elija el ID del sistema de archivos.
-
(Opcional) Introduzca un directorio en el sistema de archivos. CodeBuild monta este directorio. Si deja Ruta del directorio en blanco, CodeBuild monta todo el sistema de archivos. La ruta es relativa a la raíz del sistema de archivos.
-
En Punto de montaje, introduzca la ruta absoluta del directorio en el contenedor de compilación donde se monta el sistema de archivos. Si este directorio no existe, CodeBuld lo crea durante la compilación.
-
(Opcional) Introduzca las opciones de montaje. Si se deja Opciones de montaje en blanco, CodeBuild utiliza sus opciones de montaje predeterminadas.
nfsvers=4.1 rsize=1048576 wsize=1048576 hard timeo=600 retrans=2
Para obtener más información, consulte Opciones recomendadas de montaje NFS en la Guía del usuario de Amazon Elastic File System.
-
-
En Build specification (Especificación de compilación), elija Insert build commands (Insertar comandos de compilación) y, a continuación, elija Switch to editor (Cambiar a editor).
-
Introduzca los siguientes comandos de especificaciones de compilación en el editor. Reemplace
por el identificador que ha especificado en el paso 17. Use letras mayúsculas (por ejemplo,<file_system_identifier>
CODEBUILD_MY_EFS
).version: 0.2 phases: install: runtime-versions: java: corretto11 build: commands: - mvn compile -Dgpg.skip=true -Dmaven.repo.local=$CODEBUILD_
<file_system_identifier>
-
Utilice los valores predeterminados para el resto de opciones y, a continuación, elija Create build project (Crear proyecto de compilación). Cuando la compilación se haya completado, se muestra la página de la consola para su proyecto.
-
Seleccione Iniciar la compilación.
Paso 4: Revisar el proyecto de compilación
Una vez compilado el proyecto de AWS CodeBuild:
-
Tiene un archivo .jar creado por su aplicación Java que se integra en el sistema de archivos de Amazon EFS, en el directorio del punto de montaje.
-
Se crea una variable de entorno que identifica el sistema de archivos con el identificador de sistema de archivos que especificó al crear el proyecto.
Para obtener más información, consulte Montaje de sistemas de archivos en la Guía del usuario de Amazon Elastic File System.