Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Crear un proyecto de compilación (AWS CLI)
Para obtener más información sobre el usoAWS CLI de CodeBuild, consulteReferencia de la línea de comandos.
Para crear un proyecto de CodeBuild compilación mediante elAWS CLI, cree una estructura de proyecto con formato JSON, rellene la estructura y ejecute el create-project
comando para crear el proyecto.
Crear el archivo JSON
Cree un archivo JSON básico con el create-project
comando, mediante la--generate-cli-skeleton
opción:
aws codebuild create-project --generate-cli-skeleton >
<json-file>
Esto crea un archivo JSON con la ruta y el nombre de archivo especificados por<json-file>.
Especifique el archivo JSON
Modifique los datos JSON de la siguiente manera y guarde los resultados.
{ "name": "
<project-name>
", "description": "<description>
", "source": { "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "BITBUCKET" | "S3" | "NO_SOURCE", "location": "<source-location>
", "gitCloneDepth": "<git-clone-depth>
", "buildspec": "<buildspec>
", "InsecureSsl": "<insecure-ssl>
", "reportBuildStatus": "<report-build-status>
", "buildStatusConfig": { "context": "<context>
", "targetUrl": "<target-url>
" }, "gitSubmodulesConfig": { "fetchSubmodules": "<fetch-submodules>
" }, "auth": { "type": "<auth-type>
", "resource": "<auth-resource>
" }, "sourceIdentifier": "<source-identifier>
" }, "secondarySources": [ { "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "BITBUCKET" | "S3" | "NO_SOURCE", "location": "<source-location>
", "gitCloneDepth": "<git-clone-depth>
", "buildspec": "<buildspec>
", "InsecureSsl": "<insecure-ssl>
", "reportBuildStatus": "<report-build-status>
", "auth": { "type": "<auth-type>
", "resource": "<auth-resource>
" }, "sourceIdentifier": "<source-identifier>
" } ], "secondarySourceVersions": [ { "sourceIdentifier": "<secondary-source-identifier>
", "sourceVersion": "<secondary-source-version>
" } ], "sourceVersion": "<source-version>"
, "artifacts": { "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS", "location": "<artifacts-location>
", "path": "<artifacts-path>
", "namespaceType": "<artifacts-namespacetype>
", "name": "<artifacts-name>
", "overrideArtifactName": "<override-artifact-name>
", "packaging": "<artifacts-packaging>
" }, "secondaryArtifacts": [ { "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS", "location": "<secondary-artifact-location>
", "path": "<secondary-artifact-path>
", "namespaceType": "<secondary-artifact-namespaceType>
", "name": "<secondary-artifact-name>
", "packaging": "<secondary-artifact-packaging>
", "artifactIdentifier": "<secondary-artifact-identifier>
" } ], "cache": { "type": "<cache-type>
", "location": "<cache-location>
", "mode": [ "<cache-mode>
" ] }, "environment": { "type": "LINUX_CONTAINER" | "LINUX_GPU_CONTAINER" | "ARM_CONTAINER" | "WINDOWS_SERVER_2019_CONTAINER", "image": "<image>
", "computeType": "BUILD_GENERAL1_SMALL" | "BUILD_GENERAL1_MEDIUM" | "BUILD_GENERAL1_LARGE" | "BUILD_GENERAL1_2XLARGE", "certificate": "<certificate>
", "environmentVariables": [ { "name": "<environmentVariable-name>
", "value": "<environmentVariable-value>
", "type": "<environmentVariable-type>
" } ], "registryCredential": [ { "credential": "<credential-arn-or-name>
", "credentialProvider": "<credential-provider>
" } ], "imagePullCredentialsType": "CODEBUILD" | "SERVICE_ROLE", "privilegedMode": "<privileged-mode>
" }, "serviceRole": "<service-role>
", "timeoutInMinutes":<timeout>
, "queuedTimeoutInMinutes":<queued-timeout>
, "encryptionKey": "<encryption-key>
", "tags": [ { "key": "<tag-key>
", "value": "<tag-value>
" } ], "vpcConfig": { "securityGroupIds": [ "<security-group-id>
" ], "subnets": [ "<subnet-id>
" ], "vpcId": "<vpc-id>
" }, "badgeEnabled": "<badge-enabled>
", "logsConfig": { "cloudWatchLogs": { "status": "<cloudwatch-logs-status>
", "groupName": "<group-name>
", "streamName": "<stream-name>
" }, "s3Logs": { "status": "<s3-logs-status>
", "location": "<s3-logs-location>
", "encryptionDisabled": "<s3-logs-encryption-disabled>
" } }, "fileSystemLocations": [ { "type": "EFS", "location": "<EFS-DNS-name-1>
:/<directory-path>
", "mountPoint": "<mount-point>
", "identifier": "<efs-identifier>
", "mountOptions": "<efs-mount-options>
" } ], "buildBatchConfig": { "serviceRole": "<batch-service-role>
", "combineArtifacts":<combine-artifacts>
, "restrictions": { "maximumBuildsAllowed":<max-builds>
, "computeTypesAllowed": [ "<compute-type>
" ] }, "timeoutInMins":<batch-timeout>
, "batchReportMode": "REPORT_AGGREGATED_BATCH" | "REPORT_INDIVIDUAL_BUILDS" }, "concurrentBuildLimit":<concurrent-build-limit>
}
Sustituya lo siguiente:
name
Obligatorio. El nombre de este proyecto de compilación. Este nombre debe ser único en todos los proyectos de compilación de su cuenta de AWS.
description
Opcional. La descripción de este proyecto de compilación.
origen
Obligatorio. ProjectSourceObjeto que contiene información sobre la configuración del código fuente de este proyecto de compilación. Después de añadir un objeto source
, puede añadir hasta 12 orígenes más mediante el secondarySources. Esta configuración incluye lo siguiente:
- fuente/ tipo
-
Obligatorio. El tipo de repositorio que contiene el código fuente que se va a compilar. Los valores válidos son:
-
CODECOMMIT
-
CODEPIPELINE
-
GITHUB
-
GITHUB_ENTERPRISE
-
BITBUCKET
-
S3
-
NO_SOURCE
Si usa
NO_SOURCE
, la especificación de compilación no puede ser un archivo porque el proyecto no tiene un origen. En su lugar, debe usar el atributobuildspec
para especificar una cadena con formato YAML para su especificación de compilación. Para obtener más información, consulte Ejemplo de proyecto sin un origen. -
- fuente/ ubicación
-
Obligatorio a menos que lo
<source-type>defina como
CODEPIPELINE
. La ubicación del código fuente para el tipo de repositorio especificado.-
Para CodeCommit la URL de clonación HTTPS del repositorio que contiene el código fuente y el archivo especificaciones de compilación (por ejemplo,
https://git-codecommit.
).<region-id>
.amazonaws.com/v1/repos/<repo-name>
-
Para Amazon S3, el nombre del bucket de entrada de compilación, seguido de la ruta y el nombre del archivo ZIP que contiene el código fuente y la especificación de compilación. Por ejemplo:
-
Para un archivo ZIP ubicado en la raíz del depósito de entrada:
.<bucket-name>
/<object-name>
.zip -
Para un archivo ZIP ubicado en una subcarpeta del bucket de entrada:
.<bucket-name>
/<subfoler-path>
/<object-name>
.zip
-
-
Para GitHub, la URL de clonación HTTPS del repositorio que contiene el código fuente y el archivo especificaciones de compilación. La dirección URL debe contener github.com. Debe conectar suAWS cuenta de a su GitHub cuenta. Para ello, utilice la CodeBuild consola para crear un proyecto de compilación.
-
En la página GitHub Autorizar la aplicación, en la sección Acceso a la organización, seleccione Solicitar acceso junto CodeBuild a cada repositorio al que desee acceder en.
-
Elija Authorize application. (Una vez conectado a su GitHub cuenta, no es necesario que termine de crear el proyecto de compilación. Puede cerrar la CodeBuild consola.)
-
-
Para GitHub Enterprise Server, la URL de clonación HTTP o HTTPS del repositorio que contiene el código fuente y el archivo especificaciones de compilación. También debe conectar suAWS cuenta a su cuenta de GitHub Enterprise Server. Para ello, utilice la CodeBuild consola para crear un proyecto de compilación.
-
Cree un token de acceso personal en GitHub Enterprise Server.
-
Copia este token en tu portapapeles para que puedas usarlo cuando crees tu CodeBuild proyecto. Para obtener más información, consulte Crear un token de acceso personal para la línea de comandos
en el sitio web de GitHub ayuda. -
Cuando utilice la consola para crear su CodeBuild proyecto, en Source, para el proveedor de código fuente, elija GitHubEnterprise.
-
En Personal Access Token, pegue el token que ha copiado en el portapapeles. Elija Save Token. Su CodeBuild cuenta ahora está conectada a su cuenta de GitHub Enterprise Server.
-
-
Para Bitbucket, la URL clon HTTPS al repositorio que contiene el código fuente y el archivo buildspec. La dirección URL debe contener bitbucket.org. Además, debe conectar su cuenta de AWS a su cuenta de Bitbucket. Para ello, utilice la CodeBuild consola para crear un proyecto de compilación.
-
Cuando use la consola para conectarse (o volver a conectarse) a Bitbucket, en la página Confirm access to your account de Bitbucket, elija Grant access. (Una vez conectado a su cuenta de Bitbucket, no es necesario que termine de crear el proyecto de compilación. Puede cerrar la CodeBuild consola.)
-
-
ParaAWS CodePipeline, no especifique un
location
valor parasource
. CodePipeline ignora este valor porque al crear una canalización en CodePipeline, se especifica la ubicación del código fuente en la etapa de origen de la canalización.
-
- fuente/ gitCloneDepth
-
Opcional. La profundidad del historial que se va a descargar. El valor mínimo es 0. Si esta valor es 0, superior a 25 o no se facilita, se descargará el historial completo con cada proyecto de compilación. Si el tipo de origen es Amazon S3, este valor no se admite.
- fuente/ buildspec
-
Opcional. La definición o archivo de especificación de compilación que va a usar. Si este valor no se proporciona o se establece en una cadena vacía, el código fuente debe contener un archivo
buildspec.yml
en su directorio raíz. Si se establece este valor, puede ser una definición de especificaciones de compilación en línea, la ruta a un archivo de especificaciones de compilación alternativo en relación con el directorio raíz de la fuente principal o la ruta a un bucket de S3. El bucket debe encontrarse en la misma región de AWS que el proyecto de compilación. Especifique el archivo buildspec utilizando su ARN (por ejemplo,arn:aws:s3:::my-codebuild-sample2/buildspec.yml
). Para obtener más información, consulte Nombre de archivo y ubicación de almacenamiento de buildspec. - fuente/ autenticación
-
No utilizar. Este objeto solo lo usa la CodeBuild consola.
- fuente/ reportBuildStatus
-
Especifica si se debe enviar al proveedor de código fuente el estado de inicio y finalización de una compilación. Si lo configuras con un proveedor de origen que no GitHub sea GitHub Enterprise Server o Bitbucket,
invalidInputException
se lanza un.Para poder informar del estado de la compilación al proveedor de origen, el usuario asociado al proveedor de origen debe tener acceso de escritura al repositorio. Si el usuario no tiene acceso de escritura, el estado de compilación no se puede actualizar. Para obtener más información, consulte Acceso al proveedor de origen.
- fuente/ buildStatusConfig
-
Contiene información que define cómo el proyecto de CodeBuild compilación informa del estado de compilación al proveedor de origen. Esta opción solo se usa cuando el tipo de fuente es
GITHUB
GITHUB_ENTERPRISE
, oBITBUCKET
.- fuente/buildStatusConfig/contexto
-
Para fuentes de Bitbucket, este parámetro se utiliza para el
name
parámetro en el estado de confirmación de Bitbucket. Para GitHub fuentes, este parámetro se utiliza para elcontext
parámetro en el estado de GitHub confirmación.Por ejemplo, puede hacer que
context
contengan el número de compilación y el disparador del webhook mediante las variables de CodeBuild entorno:AWS CodeBuild sample-project Build #$CODEBUILD_BUILD_NUMBER - $CODEBUILD_WEBHOOK_TRIGGER
Esto hace que el contexto aparezca así para la compilación #24 activada por un evento de solicitud de extracción de webhook:
AWS CodeBuild sample-project Build #24 - pr/8
- fuente/buildStatusConfig/TargetURL
-
Para fuentes de Bitbucket, este parámetro se utiliza para el
url
parámetro en el estado de confirmación de Bitbucket. Para GitHub fuentes, este parámetro se utiliza para eltarget_url
parámetro en el estado de GitHub confirmación.Por ejemplo, puede establecer el enlace
targetUrl
ahttps://aws.amazon.com/codebuild/
y el estado de confirmación se vinculará a esta URL.<path to build>
También puede incluir variables de CodeBuild entorno en la URL
targetUrl
para añadir información adicional a la URL. Por ejemplo, para añadir la región de compilación a la URL,targetUrl
defina la siguiente manera:"targetUrl": "https://aws.amazon.com/codebuild/
<path to build>
?region=$AWS_REGION"Si la región de construcción es
us-east-2
, se ampliará a:https://aws.amazon.com/codebuild/
<path to build>
?region=us-east-2
- fuente/ gitSubmodulesConfig
-
Opcional. Información acerca de la configuración de submódulos de Git. Se usa solo con CodeCommit GitHub, GitHub Enterprise Server y Bitbucket.
- fuente/ InsecureSsl
-
Opcional. Se usa solo con GitHub Enterprise Server. Defina este valor
true
para ignorar las advertencias de TLS al conectarse al repositorio de proyectos de GitHub Enterprise Server. El valor predeterminado esfalse
.InsecureSsl
debe utilizarse con fines de prueba únicamente. No debe utilizarse en un entorno de producción. - fuente/ Identificador de fuente
-
Identificador definido por el usuario para la fuente del proyecto. Opcional para la fuente principal. Necesario para fuentes secundarias.
secondarySources
Opcional. Matriz de ProjectSourceobjetos que contiene información sobre las fuentes secundarias de un proyecto de construcción. Puede agregar hasta 12 fuentes secundarias. LossecondarySources
objetos utilizan las mismas propiedades utilizadas por elorigen objeto. En un objeto de origen secundario,sourceIdentifier
se requiere.
secondarySourceVersions
Opcional. Una matriz de objetos ProjectSourceVersion. Si se especifica secondarySourceVersions
en el nivel de compilación, prevalece sobre esto.
sourceVersion
Opcional. La versión de la entrada de la compilación que se creará para este proyecto. Si no se especifica, se utiliza la versión más reciente. Si se especifica, debe ser una de las siguientes opciones:
-
Para CodeCommit el ID de confirmación, la ramificación o la etiqueta Git que se va a utilizar.
-
Para GitHub el ID de confirmación, el ID de solicitud de inserción, el nombre de ramificación o el nombre de etiqueta correspondiente a la versión de código fuente que desea compilar. Si se especifica un ID de solicitud de inserción, este debe tener el formato
pr/pull-request-ID
(por ejemplo,pr/25
). Si se especifica un nombre de ramificación, se usa el ID de confirmación HEAD de la ramificación. Si no se especifica, se usa el ID de confirmación HEAD de la ramificación personalizada. -
Para Bitbucket, el ID de confirmación, el nombre de ramificación o el nombre de etiqueta correspondiente a la versión de código fuente que desea compilar. Si se especifica un nombre de ramificación, se usa el ID de confirmación HEAD de la ramificación. Si no se especifica, se usa el ID de confirmación HEAD de la ramificación personalizada.
-
En Amazon S3, el ID de versión del objeto que representa el archivo ZIP de entrada de compilación que se va a utilizar.
Si se especifica sourceVersion
en el nivel de compilación y, a continuación, esa versión prevalece sobre sourceVersion
(en el nivel del proyecto). Para obtener más información, consulte Ejemplo de versión de origen con AWS CodeBuild.
artefactos
Obligatorio. ProjectArtifactsObjeto que contiene información sobre la configuración del artefacto de salida de este proyecto de compilación. Después de añadir un objeto artifacts
, puede añadir hasta 12 artefactos más mediante el secondaryArtifacts. Esta configuración incluye lo siguiente:
- artefactos/tipo
-
Obligatorio. El tipo de artefacto de salida de la compilación. Los valores válidos son:
-
CODEPIPELINE
-
NO_ARTIFACTS
-
S3
-
- artefactos/ubicación
-
Solo se usa con el tipo de
S3
artefacto. No se usa para otros tipos de artefactos.El nombre del bucket de salida que creó o identificó en los requisitos previos.
- artefactos/ruta
-
Solo se usa con el tipo de
S3
artefacto. No se usa para otros tipos de artefactos.La ruta de entrada del bucket de salida para colocar el archivo o la carpeta ZIP. Si no especifica un valor para
path
, CodeBuild utilizanamespaceType
(si se especifica) yname
para determinar la ruta y el nombre del archivo o carpeta ZIP de salida de la compilación. Por ejemplo, si especificaMyPath
parapath
yMyArtifact.zip
paraname
, la ruta y el nombre seríanMyPath/MyArtifact.zip
. - artefactos/ namespaceType
-
Solo se usa con el tipo de
S3
artefacto. No se usa para otros tipos de artefactos.El espacio de nombres de la carpeta o archivo ZIP de salida de la compilación. Los valores válidos son
BUILD_ID
yNONE
. UtiliceBUILD_ID
para insertar el ID de compilación en la ruta del archivo ZIP o carpeta de salida de la compilación. De lo contrario, utiliceNONE
. Si no especifica un valor paranamespaceType
, CodeBuild utilizapath
(si se especifica) yname
para determinar la ruta y el nombre del archivo o carpeta ZIP de salida de la compilación. Por ejemplo, si especificaMyPath
parapath
namespaceType
,BUILD_ID
para yMyArtifact.zip
paraname
, la ruta y el nombre seríanMyPath/
.build-ID
/MyArtifact.zip - artifacts/name
-
Solo se usa con el tipo de
S3
artefacto. No se usa para otros tipos de artefactos.El nombre del archivo ZIP o la carpeta de salida de la compilación que contiene
location
. Por ejemplo, si especificaMyPath
parapath
yMyArtifact.zip
paraname
, la ruta y el nombre seríanMyPath/MyArtifact.zip
. - artefactos/ overrideArtifactName
-
Solo se usa con el tipo de artefacto S3. No se usa para otros tipos de artefactos.
Opcional. Si se establece en
true
, el nombre especificado en elartifacts
bloque del archivo de especificación de compilación compilaciónname
. Para obtener más información, consulte Referencia de la especificación de compilación de CodeBuild. - artefactos/empaques
-
Solo se usa con el tipo de
S3
artefacto. No se usa para otros tipos de artefactos.Opcional. Especifica cómo empaquetar los artefactos. Los valores permitidos son:
- NONE
-
Cree una carpeta que contenga los artefactos de compilación. Este es el valor predeterminado.
- ZIP
-
Cree un archivo comprimido que contiene los artefactos de compilación.
secondaryArtifacts
Opcional. Matriz de ProjectArtifactsobjetos que contiene información sobre la configuración de los artefactos secundarios de un proyecto de construcción. Puede añadir hasta 12 artefactos secundarios. El objeto secondaryArtifacts
usa muchos de los mismos valores que utiliza el objeto artefactos.
caché
Obligatorio. ProjectCacheObjeto que contiene información sobre la configuración de caché de este proyecto de compilación. Para obtener más información, consulte Almacenamiento en caché de compilaciones.
environment
Obligatorio. ProjectEnvironmentObjeto que contiene información sobre la configuración del entorno de compilación de este proyecto. Esta configuración incluye:
- entorno/tipo
-
Obligatorio. El tipo del entorno de compilación. Para obtener más información, consulte escribir en la referenciaCodeBuild de la API.
- entorno/ imagen
-
Obligatorio. El identificador de imagen de Docker usado por este entorno de compilación. Normalmente, este identificador se expresa como
imagen-name
:etiqueta
. Por ejemplo, en el repositorio de Docker que se CodeBuild utiliza para administrar sus imágenes de Docker, esto podría seraws/codebuild/standard:4.0
. En Docker Hub,maven:3.3.9-jdk-8
. En Amazon ECR,
. Para obtener más información, consulte Imágenes de Docker proporcionadas por CodeBuild.account-id
.dkr.ecr.region-id
.amazonaws.com/your-Amazon-ECR-repo-name
:tag
- entorno/ computeType
-
Obligatorio. Especifica los recursos informáticos que utiliza este entorno de compilación. Para obtener más información, consulte ComputeType en la referenciaCodeBuild de la API.
- entorno/ certificado
-
Opcional. El ARN del bucket de Amazon S3, el prefijo de ruta y la clave de objeto que contiene el certificado codificado en PEM. La clave de objeto puede ser únicamente el archivo .pem o un archivo .zip que contenga el certificado codificado en PEM. Por ejemplo, si su nombre de bucket de Amazon S3 es
my-bucket
, su prefijo de ruta escert
y el nombre de la clave del objeto escertificate.pem
, los formatos aceptables paracertificate
sonmy-bucket/cert/certificate.pem
oarn:aws:s3:::my-bucket/cert/certificate.pem
. - entorno/ Variables de entorno
-
Opcional. Una matriz de EnvironmentVariableobjetos que contiene las variables de entorno que desea especificar para este entorno de compilación. Cada variable de entorno se expresa como un objeto que contiene un
name
value
, ytype
dename
value
, ytype
.La consola yAWS CLI los usuarios pueden ver todas las variables de entorno. Si no le preocupa la visibilidad de la variable de entorno,
type
definaname
y yvalue
configúrelo enPLAINTEXT
.Le recomendamos que almacene las variables de entorno con valores confidenciales, como un identificador de clave deAWS acceso, una clave de accesoAWS secreta o una contraseña, como parámetro en el almacén de parámetros de Amazon EC2 Systems Manager oAWS Secrets Manager. Para
name
, para ese parámetro almacenado, defina un identificador para CodeBuild hacer referencia.Si utiliza el almacén de parámetros de Amazon EC2 Systems Manager
value
, defina el nombre del parámetro tal como está almacenado en el almacén de parámetros. Establezcatype
enPARAMETER_STORE
. Utilizando un parámetro denominado/CodeBuild/dockerLoginPassword
como ejemplo,name
defina enLOGIN_PASSWORD
. Establezcavalue
en/CodeBuild/dockerLoginPassword
. Establezcatype
enPARAMETER_STORE
.importante Si utiliza el almacén de parámetros de Amazon EC2 Systems Manager, le recomendamos que almacene los parámetros con nombres de parámetros que comiencen por
/CodeBuild/
(por ejemplo,/CodeBuild/dockerLoginPassword
). Puede utilizar la CodeBuild consola para crear un parámetro en Amazon EC2 Systems Manager. Seleccione Create a parameter (Crear parámetro) y siga las instrucciones del cuadro de diálogo. (En ese cuadro de diálogo, para la clave de KMS, puede especificar el ARN de unaAWS KMS clave de su cuenta. Amazon EC2 Systems Manager usa esta clave para cifrar el valor del parámetro durante el almacenamiento y descifrarlo durante la recuperación.) Si usa la CodeBuild consola para crear un parámetro, la consola inicia el nombre del parámetro/CodeBuild/
tal como se almacena. Para obtener más información, consulte el tutorial sobre el almacén de parámetros de Systems Manager y la consola de almacenamiento de parámetros de Systems Manager en la Guía del usuario de Amazon EC2 Systems Manager.Si su proyecto de compilación hace referencia a parámetros almacenados en el almacén de parámetros de Amazon EC2 Systems Manager, la función de servicio del proyecto de compilación debe permitir la
ssm:GetParameters
acción. Si anteriormente seleccionó Nueva función de servicio, CodeBuild incluye esta acción en la función de servicio predeterminada para su proyecto de compilación. Sin embargo, si seleccionó Existing service role (Rol de servicio existente), deberá incluir esta acción en el rol de servicio por separado.Si su proyecto de compilación hace referencia a parámetros almacenados en el almacén de parámetros de Amazon EC2 Systems Manager con nombres de parámetros que no comienzan por
/CodeBuild/
, y usted elige Nueva función de servicio, debe actualizar esa función de servicio para permitir el acceso a los nombres de parámetros que no comiencen por/CodeBuild/
. Esto es así porque el rol de servicio permite el acceso únicamente a los nombres de parámetro que empiezan por/CodeBuild/
.Si elige Nueva función de servicio, la función de servicio incluye el permiso para descifrar todos los parámetros del espacio de
/CodeBuild/
nombres del almacén de parámetros de Amazon EC2 Systems Manager.Las variables de entorno que defina reemplazan las variables de entorno existentes. Por ejemplo, si la imagen de Docker ya contiene una variable de entorno denominada
MY_VAR
con un valor demy_value
y establece una variable de entorno denominadaMY_VAR
con un valor deother_value
,my_value
se reemplaza porother_value
. Asimismo, si la imagen de Docker ya contiene una variable de entorno denominadaPATH
con un valor de/usr/local/sbin:/usr/local/bin
y establece una variable de entorno denominadaPATH
con un valor de$PATH:/usr/share/ant/bin
,/usr/local/sbin:/usr/local/bin
se reemplaza por el valor literal$PATH:/usr/share/ant/bin
.No establezca variables de entorno con un nombre que empiece por
CODEBUILD_
. Este prefijo se reserva para uso interno de .Si se define una variable de entorno con el mismo nombre en varios lugares, el valor se determina de la siguiente manera:
-
El valor de la llamada a la operación de inicio de la compilación tiene la máxima prioridad.
-
El valor de la definición del proyecto de compilación es el siguiente en orden de prioridad.
-
El valor en la declaración de especificación de compilación es el que menos prioridad tiene.
Si usa Secrets Manager, defina
value
el nombre del parámetro tal como está almacenado en Secrets Manager. Establezcatype
enSECRETS_MANAGER
. Utilizando un secreto denominado/CodeBuild/dockerLoginPassword
como ejemplo, se establecename
enLOGIN_PASSWORD
. Establezcavalue
en/CodeBuild/dockerLoginPassword
. Establezcatype
enSECRETS_MANAGER
.importante Si usa Secrets Manager, le recomendamos que almacene los secretos con nombres que comiencen por
/CodeBuild/
(por ejemplo,/CodeBuild/dockerLoginPassword
). Para obtener más información, consulte ¿Qué es AWS Secrets Manager? en la Guía del usuario de AWS Secrets Manager.Si tu proyecto de compilación hace referencia a secretos almacenados en Secrets Manager, la función de servicio del proyecto de compilación debe permitir la
secretsmanager:GetSecretValue
acción. Si anteriormente seleccionó Nueva función de servicio, CodeBuild incluye esta acción en la función de servicio predeterminada para su proyecto de compilación. Sin embargo, si seleccionó Existing service role (Rol de servicio existente), deberá incluir esta acción en el rol de servicio por separado.Si su proyecto de compilación hace referencia a secretos almacenados en Secrets Manager con nombres secretos que no comienzan por
/CodeBuild/
, y usted elige Nueva función de servicio, debe actualizar la función de servicio para permitir el acceso a los nombres secretos que no comiencen por/CodeBuild/
. Esto se debe a que la función de servicio solo permite el acceso a los nombres secretos que comiencen con/CodeBuild/
.Si elige Nueva función de servicio, la función de servicio incluye el permiso para descifrar todos los secretos del espacio de
/CodeBuild/
nombres del Secrets Manager. -
- credencial de entorno/registro
-
Opcional. RegistryCredentialObjeto que especifica las credenciales que proporcionan acceso a un registro de Docker privado.
- Entorno/credencial de registro/credencial
-
Especifica qué se refiere el ARN o el nombre de credenciales creadas conAWS Managed Services. Puede utilizar el nombre de las credenciales solo si existen en su región actual.
Cuando se ha establecido:
-
imagePullCredentials
se debe establecer enSERVICE_ROLE
. -
La imagen no puede ser una imagen preparada ni ser imágenes de Amazon ECR.
- entorno/ imagePullCredentialstipo
-
Opcional. Tipo de credenciales que se CodeBuild utiliza para extraer imágenes de la compilación. Hay dos valores válidos:
- COMPILACIÓN DE CÓDIGO
-
CODEBUILD
especifica que CodeBuild utiliza sus propias credenciales. Debe editar la política de repositorio de Amazon ECR para confiar en el principal CodeBuild de servicio. - ROL DE SERVICIO
-
Especifica qué se CodeBuild utiliza el rol de servicio del proyecto de compilación.
Cuando utilice una imagen de registro entre cuentas o privada, debe usar credenciales de
SERVICE_ROLE
. Cuando utilice una imagen CodeBuild preparada de, debe utilizarCODEBUILD
credenciales. - entorno/ privilegedMode
-
Se establece en
true
solo si va a utilizar este proyecto de compilación para compilar imágenes de Docker. De lo contrario, todas las compilaciones asociadas que intenten interactuar con el daemon de Docker producirán un error. También debe iniciar el daemon de Docker para que las compilaciones puedan interactuar con él. Una forma de hacerlo es iniciar el daemon Docker en la fase deinstall
de su archivo buildspec ejecutando los siguientes comandos de compilación. No ejecute estos comandos si especificó una imagen del entorno de compilación proporcionada por el CodeBuild soporte de Docker.nota De forma predeterminada, los contenedores Docker no permiten el acceso a ningún dispositivo. El modo privilegiado otorga acceso al contenedor Docker de un proyecto de compilación a todos los dispositivos. Para obtener más información, consulte la sección sobre privilegios en tiempo de ejecución y capacidades de Linux
en el sitio web de Docker Docs. - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 & - timeout 15 sh -c "until docker info; do echo .; sleep 1; done"
serviceRole
Obligatorio. El ARN del rol de servicio se CodeBuild utiliza para interactuar con los servicios en nombre del usuario (por ejemplo,arn:aws:iam::
).account-id
:role/role-name
timeoutInMinutes
Opcional. El número de minutos comprendidos entre 5 y 480 (8 horas) tras los cuales CodeBuild detendrá la compilación si no se ha completado. Si no se especifica, se usa el valor predeterminado de 60. Para determinar si una compilación CodeBuild se detuvo debido a un tiempo de espera y cuándo, ejecute elbatch-get-builds
comando. Para determinar si la compilación se ha detenido, busque en la salida un valor de buildStatus
de FAILED
. Para determinar cuándo se ha agotado el tiempo de espera de la compilación, busque en la salida el valor de endTime
asociado a un valor de phaseStatus
de TIMED_OUT
.
queuedTimeoutInMinutos
Opcional. La cantidad de minutos, entre 5 y 480 (8 horas), tras los cuales CodeBuild se detiene la compilación si aún está en cola. Si no se especifica, se usa el valor predeterminado de 60.
encryptionKey
Opcional. El alias o ARN delAWS KMS key utilizado por CodeBuild para cifrar la salida de la compilación. Si especifica un alias, utilice el formato arn:aws:kms:
o si existe un alias, utilice el formato region-ID
:account-ID
:key/key-ID
alias/
. Si no se especifica, se utiliza la clave de KMSAWS administrada para Amazon S3.key-alias
etiquetas
Opcional. Una matriz de objetos Tag que proporcionan las etiquetas que desea asociar a este proyecto de compilación. Puede especificar hasta 50 etiquetas. Estas etiquetas las puede utilizar cualquierAWS servicio que admita etiquetas de proyectos de CodeBuild compilación. Cada etiqueta se expresa como un objeto con akey
y avalue
.
vpcConfig
Opcional. VpcConfigObjeto que contiene información sobre la configuración de VPC del proyecto. Para obtener más información, consulte UsarAWS CodeBuildcon Amazon Virtual Private Cloud.
Estas propiedades incluyen:
- vpcId
-
Obligatorio. El ID de VPC que CodeBuild utiliza. Ejecute este comando para obtener una lista de todos los ID de la VPC de su región:
aws ec2 describe-vpcs --region
<region-ID>
- subredes
-
Obligatorio. Una matriz de los IDs de subred que incluye los recursos utilizados por CodeBuild. Para obtener estos ID, ejecute este comando:
aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region
<region-ID>
- securityGroupIds
-
Obligatorio. Una serie de identificadores de grupos de seguridad que se utilizan CodeBuild para permitir el acceso a los recursos de la VPC. Para obtener estos ID, ejecute este comando:
aws ec2 describe-security-groups --filters "Name=vpc-id,Values=
<vpc-id>
" --<region-ID>
badgeEnabled
Opcional. Especifica si se deben incluir insignias de construcción en el CodeBuild proyecto. true
Configúrelo para habilitar la creación de insignias o defalse
otro modo. Para obtener más información, consulte Ejemplo de creación de insignias con CodeBuild.
Configuración de registros
LogsConfigObjeto que contiene información sobre dónde se encuentran los registros de esta compilación.
- Configuración de registros/ cloudWatchLogs
-
CloudWatchLogsConfigObjeto que contiene información sobre cómo subir CloudWatch registros a Logs.
- LogsConfig/ S3Logs
-
UnLogsConfig objeto S3 que contiene información sobre cómo enviar registros a Amazon S3.
fileSystemLocations
Opcional. Una matriz de ProjectFileSystemsLocationobjetos que contiene información sobre la configuración de Amazon EFS.
buildBatchConfig
Opcional. ElbuildBatchConfig
objeto es una ProjectBuildBatchConfigestructura que contiene la información de configuración de creación por lotes para el proyecto.
- buildBatchConfig/serviceRole
-
El ARN del rol de servicio para el proyecto de compilación por lotes.
- buildBatchConfig/Combina artefactos
-
Valor booleano que especifica si se deben combinar los artefactos de compilación para la compilación por lotes en una única ubicación de artefacto.
- buildBatchConfig/restricciones/ maximumBuildsAllowed
-
El número máximo de compilaciones permitidas.
- buildBatchConfig/restricciones/ computeTypesAllowed
-
Una matriz de cadenas que especifican los tipos de computación permitidos para la compilación por lotes. Consulte Tipos de computación del entorno de compilación para estos valores.
- buildBatchConfig/timeoutInMinutes
-
El tiempo máximo, en minutos, en que se debe completar la compilación por lotes.
- buildBatchConfig/batchReportMode
-
Especifica cómo se envían los informes de estado de compilación al proveedor de origen para la compilación por lotes. Los valores válidos son:
REPORT_AGGREGATED_BATCH
-
(Predeterminado) Agregue todos los estados de compilación en un único informe de estado.
REPORT_INDIVIDUAL_BUILDS
-
Envíe un informe de estado independiente para cada compilación individual.
concurrentBuildLimit
Establece el número máximo de versiones simultáneas que están permitidas para este proyecto.
Las nuevas versiones solo se inician si el número actual de versiones es menor o igual a este límite. Si el recuento de versiones actual cumple con este límite, las nuevas versiones se limitan y no se ejecutan.
Creación del proyecto
Para crear el proyecto, vuelve a ejecutar elcreate-project
comando y pasa tu archivo JSON:
aws codebuild create-project --cli-input-json file://
<json-file>
Si se realiza correctamente, la representación JSON de un objeto de proyecto aparece en la salida de la consola. Consulte la sintaxis deCreateProject respuestas para ver un ejemplo de estos datos.
Excepto el nombre del proyecto de compilación, puede cambiar cualquiera de los ajustes del proyecto de compilación más adelante. Para obtener más información, consulte Cambiar la configuración de un proyecto de compilación (AWS CLI).
Para empezar a ejecutar una compilación, consulte Ejecutar una compilación (AWS CLI).
Si el código fuente está almacenado en un GitHub repositorio y desea volver CodeBuild a compilar el código fuente cada vez que se inserta un cambio de código en el repositorio, consulteIniciar la ejecución de compilaciones automáticamente (AWS CLI).