Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Création d'un projet de génération (AWS CLI)
Pour plus d'informations sur l'utilisation du AWS CLI with CodeBuild, consultez leRéférence des commandes en ligne.
Pour créer un projet de CodeBuild construction à l'aide de AWS CLI, vous devez créer une structure de projet au JSON format -formatée, renseigner la structure et appeler la create-project
commande pour créer le projet.
Créez le JSON fichier
Créez un JSON fichier squelette à l'aide de la create-project
commande, en utilisant l'--generate-cli-skeleton
option suivante :
aws codebuild create-project --generate-cli-skeleton >
<json-file>
Cela crée un JSON fichier avec le chemin et le nom de fichier spécifiés par <json-file>
.
Remplissez le JSON fichier
Modifiez les JSON données comme suit et enregistrez vos résultats.
{ "name": "
<project-name>
", "description": "<description>
", "source": { "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "GITLAB" | "GITLAB_SELF_MANAGED" | "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" | "GITLAB" | "GITLAB_SELF_MANAGED" | "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" | "WINDOWS_SERVER_2022_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>
}
Remplacez les éléments suivants :
nom
Obligatoire. Nom de ce projet de génération. Ce nom doit être unique pour tous les projets de construction de votre AWS compte.
description
Facultatif. Description de ce projet de génération.
source
Obligatoire. Un ProjectSourceobjet qui contient des informations sur les paramètres du code source de ce projet de build. Après avoir ajouté un objet source
, vous pouvez ajouter jusqu'à 12 autres sources à l'aide de secondarySources. Il s'agit notamment des paramètres suivants :
- source/type
-
Obligatoire. Type de référentiel qui contient le code source à générer. Les valeurs valides sont les suivantes :
-
CODECOMMIT
-
CODEPIPELINE
-
GITHUB
-
GITHUB_ENTERPRISE
-
GITLAB
-
GITLAB_SELF_MANAGED
-
BITBUCKET
-
S3
-
NO_SOURCE
Si vous utilisez
NO_SOURCE
, buildspec ne peut pas être un fichier, car le projet n'a pas de source. Vous devez plutôt utiliser l'buildspec
attribut pour spécifier une chaîne au YAML format -pour votre buildspec. Pour plus d’informations, consultez Exemple de projet sans source. -
- source/ lieu
-
Obligatoire sauf si vous définissez
<source-type>
àCODEPIPELINE
. Emplacement du code source pour le type de référentiel spécifié.-
Pour CodeCommit, le HTTPS clone URL du référentiel qui contient le code source et le fichier buildspec (par exemple,).
https://git-codecommit.
<region-id>
.amazonaws.com/v1/repos/<repo-name>
-
Pour Amazon S3, le nom du compartiment d'entrée de construction, suivi du chemin et du nom du ZIP fichier contenant le code source et les spécifications de construction. Par exemple :
-
Pour un ZIP fichier situé à la racine du compartiment d'entrée :
.<bucket-name>
/<object-name>
.zip -
Pour un ZIP fichier situé dans un sous-dossier du compartiment d'entrée :
.<bucket-name>
/<subfoler-path>
/<object-name>
.zip
-
-
Pour GitHub, le HTTPS clone URL du référentiel qui contient le code source et le fichier buildspec. Le URL doit contenir github.com. Vous devez connecter votre AWS compte à votre GitHub compte. Pour ce faire, utilisez la CodeBuild console pour créer un projet de génération.
-
Choisissez Authorize application. (Une fois connecté à votre GitHub compte, vous n'avez pas besoin de terminer la création du projet de construction. Vous pouvez fermer la CodeBuild console.)
-
-
Pour GitHub Enterprise Server, le HTTP ou HTTPS clonez-le URL dans le référentiel qui contient le code source et le fichier buildspec. Vous devez également connecter votre AWS compte à votre compte GitHub Enterprise Server. Pour ce faire, utilisez la CodeBuild console pour créer un projet de génération.
-
Créez un jeton d'accès personnel dans GitHub Enterprise Server.
-
Copiez ce jeton dans votre presse-papiers afin de pouvoir l'utiliser lors de la création de votre CodeBuild projet. Pour plus d'informations, consultez la section Création d'un jeton d'accès personnel pour la ligne de commande
sur le site Web d' GitHub aide. -
Lorsque vous utilisez la console pour créer votre CodeBuild projet, dans Source, pour Source provider, choisissez GitHubEnterprise.
-
Pour Personal Access Token, collez le jeton copié dans le Presse-papiers. Choisissez Save Token. Votre CodeBuild compte est désormais connecté à votre compte GitHub Enterprise Server.
-
-
Pour GitLab et GitLab autogéré, le HTTPS clone URL du référentiel contenant le code source et le fichier buildspec. Notez que si vous l'utilisez GitLab, le URL doit contenir gitlab.com. Si vous utilisez l' GitLab autogéré, il n'est URL pas nécessaire de contenir gitlab.com. Vous devez connecter votre AWS compte à votre compte GitLab ou à votre compte GitLab autogéré. Pour ce faire, utilisez la CodeBuild console pour créer un projet de génération.
-
Dans le volet de navigation des outils de développement, choisissez Paramètres, Connexions, puis Créer une connexion. Sur cette page, créez une connexion GitLab ou une connexion GitLab autogérée, puis choisissez Connect to GitLab.
-
-
Pour Bitbucket, HTTPS clone URL du référentiel contenant le code source et le fichier buildspec. Le URL doit contenir bitbucket.org. Vous devez également connecter votre AWS compte à votre compte Bitbucket. Pour ce faire, utilisez la CodeBuild console pour créer un projet de génération.
-
Lorsque vous utilisez la console pour vous connecter (ou vous reconnecter) à Bitbucket, dans la page Bitbucket Confirm access to your account, choisissez Grant access. (Une fois connecté à votre compte Bitbucket, vous n'avez pas besoin de terminer la création du projet de build. Vous pouvez fermer la CodeBuild console.)
-
-
Pour AWS CodePipeline, ne spécifiez pas de
location
valeur poursource
. CodePipeline ignore cette valeur car lorsque vous créez un pipeline dans CodePipeline, vous spécifiez l'emplacement du code source dans le stage Source du pipeline.
-
- source/ gitCloneDepth
-
Facultatif. Profondeur de l'historique à télécharger. La valeur minimum est de 0. Si cette valeur est égale à 0, supérieure à 25 ou non spécifiée, l'historique complet est téléchargé avec chaque projet de génération. Si votre type de source est Amazon S3, cette valeur n'est pas prise en charge.
- source/ buildspec
-
Facultatif. Définition de spécification de génération ou fichier à utiliser. Si cette valeur n'est pas fournie ou qu'elle est définie sur une chaîne vide, le code source doit contenir un fichier
buildspec.yml
dans son répertoire racine. Si cette valeur est définie, il peut s'agir d'une définition de buildspec intégrée, du chemin d'accès à un autre fichier buildspec relatif au répertoire racine de votre source principale ou du chemin d'accès à un compartiment S3. Le bucket doit se trouver dans la même AWS région que le projet de construction. Spécifiez le fichier buildspec en utilisant son ARN (par exemple,).arn:aws:s3:::
Pour plus d’informations, consultez Nom de fichier buildspec et emplacement de stockage.<my-codebuild-sample2>
/buildspec.yml - source/ authentification
-
Ne pas utiliser. Cet objet est utilisé uniquement par la CodeBuild console.
- source/ reportBuildStatus
-
Indique si vous souhaitez envoyer le statut de début et de fin d'une génération à votre fournisseur de source. Si vous le définissez avec un fournisseur de source autre qu' GitHub GitHub Enterprise Server ou Bitbucket, un
invalidInputException
est émis.Pour pouvoir signaler l'état de construction au fournisseur de source, l'utilisateur associé au fournisseur de source doit avoir un accès en écriture au dépôt. Si l'utilisateur ne dispose pas d'un accès en écriture, l'état de construction ne peut pas être mis à jour. Pour plus d’informations, consultez Accès au fournisseur de source.
- source/ buildStatusConfig
-
Contient des informations qui définissent la manière dont le CodeBuild projet de construction communique l'état de la construction au fournisseur source. Cette option n'est utilisée que lorsque le type de source est
GITHUB
GITHUB_ENTERPRISE
, ouBITBUCKET
.- source/buildStatusConfig/contexte
-
Pour les sources Bitbucket, ce paramètre est utilisé pour le
name
paramètre figurant dans le statut de validation de Bitbucket. Pour les GitHub sources, ce paramètre est utilisé pour lecontext
paramètre figurant dans l'état de GitHub validation.Par exemple, vous pouvez faire en sorte qu'ils
context
contiennent le numéro de version et le déclencheur webhook à l'aide des variables d' CodeBuildenvironnement :AWS CodeBuild sample-project Build #$CODEBUILD_BUILD_NUMBER - $CODEBUILD_WEBHOOK_TRIGGER
Il en résulte que le contexte apparaît comme suit pour la version #24 déclenchée par un événement de pull request du webhook :
AWS CodeBuild sample-project Build #24 - pr/8
- source//buildStatusConfigtargetUrl
-
Pour les sources Bitbucket, ce paramètre est utilisé pour le
url
paramètre figurant dans le statut de validation de Bitbucket. Pour les GitHub sources, ce paramètre est utilisé pour letarget_url
paramètre figurant dans l'état de GitHub validation.Par exemple, vous pouvez définir le
targetUrl
àhttps://aws.amazon.com/codebuild/
et le statut de validation sera lié à celui-ciURL.<path to build>
Vous pouvez également inclure des variables d' CodeBuild environnement dans le
targetUrl
pour ajouter des informations supplémentaires auURL. Par exemple, pour ajouter la région de construction à laURL, définissez la valeurtargetUrl
sur :"targetUrl": "https://aws.amazon.com/codebuild/
<path to build>
?region=$AWS_REGION"Si la région de construction l'est
us-east-2
, elle s'étendra à :https://aws.amazon.com/codebuild/
<path to build>
?region=us-east-2
- source/ gitSubmodulesConfig
-
Facultatif. Informations sur la configuration des sous-modules Git. Utilisé uniquement avec CodeCommit GitHub, GitHub Enterprise Server et Bitbucket.
- source//gitSubmodulesConfigfetchSubmodules
-
Définissez
fetchSubmodules
surtrue
si vous souhaitez inclure les sous-modules Git dans votre référentiel. Les sous-modules Git inclus doivent être configurés commeHTTPS.
- source/ InsecureSsl
-
Facultatif. Utilisé uniquement avec GitHub Enterprise Server. Définissez cette valeur sur
true
pour ignorer les TLS avertissements lors de la connexion au référentiel de votre projet GitHub Enterprise Server. La valeur par défaut estfalse
.InsecureSsl
doit être utilisé à des fins de test uniquement. Cette option ne doit pas être utilisée dans un environnement de production. - source/ sourceIdentifier
-
Identifiant défini par l'utilisateur pour la source du projet. Facultatif pour la source principale. Nécessaire pour les sources secondaires.
secondarySources
Facultatif. Tableau d'ProjectSourceobjets contenant des informations sur les sources secondaires d'un projet de construction. Vous pouvez ajouter jusqu'à 12 sources secondaires. Les secondarySources
objets utilisent les mêmes propriétés que celles utilisées par l'sourceobjet. Dans un objet source secondaire, le sourceIdentifier
est obligatoire.
secondarySourceVersions
Facultatif. Tableau d’objets ProjectSourceVersion. Si secondarySourceVersions
est spécifié au niveau de la build, ils ont priorité sur cela.
sourceVersion
Facultatif. Version de l'entrée de compilation à créer pour ce projet. Si elle n'est pas spécifiée, la dernière version est utilisée. Si cette valeur est spécifiée, elle doit être l'une des suivantes :
-
Pour CodeCommit, l'ID de validation, la branche ou le tag Git à utiliser.
-
Pour GitHub, l'ID de validation, l'ID de pull request, le nom de branche ou le nom de balise correspondant à la version du code source que vous souhaitez créer. Si un ID de demande d'extraction est spécifié, il doit utiliser le format
pr/pull-request-ID
(par exemple,pr/25
). Si un nom de branche est spécifié, l'ID de HEAD validation de la branche est utilisé. S'il n'est pas spécifié, l'ID de HEAD validation de la branche par défaut est utilisé. -
Pour GitLab, l'ID de validation, l'ID de pull request, le nom de la branche, le nom du tag ou la référence et un ID de validation. Pour plus d’informations, consultez Exemple de version source avec AWS CodeBuild.
-
Pour Bitbucket, l'ID de validation, le nom de branche ou le nom de balise qui correspond à la version du code source à générer. Si un nom de branche est spécifié, l'ID de HEAD validation de la branche est utilisé. S'il n'est pas spécifié, l'ID de HEAD validation de la branche par défaut est utilisé.
-
Pour Amazon S3, l'ID de version de l'objet qui représente le ZIP fichier d'entrée de compilation à utiliser.
Si sourceVersion
est spécifié à la build, cette version est prioritaire sur cette sourceVersion
(au niveau du projet). Pour plus d’informations, consultez Exemple de version source avec AWS CodeBuild.
artefacts
Obligatoire. Un ProjectArtifactsobjet qui contient des informations sur les paramètres d'artefact de sortie de ce projet de construction. Après avoir ajouté un objet artifacts
, vous pouvez ajouter jusqu'à 12 autres artefacts à l'aide de secondaryArtifacts. Il s'agit notamment des paramètres suivants :
- artéfacts/type
-
Obligatoire. Le type d'objet de sortie de la build. Les valeurs valides sont :
-
CODEPIPELINE
-
NO_ARTIFACTS
-
S3
-
- artéfacts/ emplacement
-
Utilisé uniquement avec le type d'
S3
artefact. Non utilisé pour les autres types d'artefacts.Le nom du bucket de sortie que vous avez créé ou identifié dans les prérequis.
- artéfacts/ chemin
-
Utilisé uniquement avec le type d'
S3
artefact. Non utilisé pour les autres types d'artefacts.Le chemin d'accès au compartiment de sortie où placer ZIP le fichier ou le dossier. Si vous ne spécifiez aucune valeur pour
path
, CodeBuild utilisenamespaceType
(si spécifié) etname
pour déterminer le chemin et le nom du ZIP fichier ou du dossier de sortie de construction. Par exemple, si vous spécifiezMyPath
pourpath
etMyArtifact.zip
pourname
, le chemin et le nom serontMyPath/MyArtifact.zip
. - artéfacts/ namespaceType
-
Utilisé uniquement avec le type d'
S3
artefact. Non utilisé pour les autres types d'artefacts.L'espace de noms du ZIP fichier ou du dossier de sortie de compilation. Les valeurs valides sont
BUILD_ID
etNONE
.BUILD_ID
À utiliser pour insérer l'ID de build dans le chemin du ZIP fichier ou du dossier de sortie de build. Dans le cas contraire, utilisezNONE
. Si vous ne spécifiez aucune valeur pournamespaceType
, CodeBuild utilisepath
(si spécifié) etname
pour déterminer le chemin et le nom du ZIP fichier ou du dossier de sortie de construction. Par exemple, si vous spécifiezMyPath
BUILD_ID
pourpath
namespaceType
, pour etMyArtifact.zip
pourname
, le chemin et le nom serontMyPath/
.build-ID
/MyArtifact.zip - artefacts/nom
-
Utilisé uniquement avec le type d'
S3
artefact. Non utilisé pour les autres types d'artefacts.Le nom du ZIP fichier ou du dossier de sortie de compilation qu'il contient
location
. Par exemple, si vous spécifiezMyPath
pourpath
etMyArtifact.zip
pourname
, le chemin et le nom serontMyPath/MyArtifact.zip
. - artéfacts/ overrideArtifactName
-
Utilisé uniquement avec le type d'artefact S3. Non utilisé pour les autres types d'artefacts.
Facultatif. S'il est défini sur
true
, le nom spécifié dans leartifacts
bloc du fichier buildspec est remplacé.name
Pour plus d’informations, consultez Référence de spécification de construction pour CodeBuild. - artéfacts/emballages
-
Utilisé uniquement avec le type d'
S3
artefact. Non utilisé pour les autres types d'artefacts.Facultatif. Spécifie comment empaqueter les artefacts. Les valeurs autorisées sont les suivantes :
- NONE
-
Créez un dossier contenant les artefacts de construction. C’est la valeur par défaut.
- ZIP
-
Créez un ZIP fichier contenant les artefacts de construction.
secondaryArtifacts
Facultatif. Tableau d'ProjectArtifactsobjets contenant des informations sur les paramètres des artefacts secondaires d'un projet de construction. Vous pouvez ajouter jusqu'à 12 artefacts secondaires. secondaryArtifacts
utilise un grand nombre de paramètres communs à l'objet artefacts.
cache
Obligatoire. Un ProjectCacheobjet qui contient des informations sur les paramètres de cache de ce projet de génération. Pour plus d’informations, consultez Mise en cache de génération.
environment
Obligatoire. Un ProjectEnvironmentobjet qui contient des informations sur les paramètres de l'environnement de construction de ce projet. Ces paramètres sont les suivants :
- environnement/type
-
Obligatoire. Le type d'environnement de génération. Pour plus d'informations, voir taper dans la CodeBuild APIréférence.
- environnement/image
-
Obligatoire. Identifiant d'image Docker utilisé par cet environnement de génération. Généralement, cet identifiant est exprimé sous la forme
image-name
:tag
. Par exemple, dans le référentiel Docker CodeBuild utilisé pour gérer ses images Docker, cela pourrait être le cas.aws/codebuild/standard:5.0
Dans Docker Hub,maven:3.3.9-jdk-8
. Sur AmazonECR,
. Pour plus d’informations, consultez Images Docker fournies par CodeBuild.account-id
.dkr.ecr.region-id
.amazonaws.com/your-Amazon-ECR-repo-name
:tag
- environnement/ computeType
-
Obligatoire. Spécifie les ressources de calcul utilisées par cet environnement de génération. Pour plus d'informations, reportez-vous computeTypeà la section CodeBuild APIRéférence.
- environnement/certificat
-
Facultatif. Nom ARN du compartiment Amazon S3, du préfixe de chemin et de la clé d'objet contenant le certificat PEM codé. La clé d'objet peut être simplement le fichier .pem ou un fichier .zip contenant le PEM certificat codé. Par exemple, si le nom de votre compartiment Amazon S3 est
, votre préfixe de chemin est<my-bucket>
et le nom de votre clé d'objet est<cert>
, les formats acceptables pour<certificate.pem>
certificate
sont
ou<my-bucket/cert/certificate.pem>
arn:aws:s3:::
.<my-bucket/cert/certificate.pem>
- environnement/ environmentVariables
-
Facultatif. Tableau d'EnvironmentVariableobjets contenant les variables d'environnement que vous souhaitez spécifier pour cet environnement de génération. Chaque variable d'environnement est exprimée sous la forme d'un
name
objet contenant aname
,value
, ettype
.value
type
La console et AWS CLI les utilisateurs peuvent voir toutes les variables d'environnement. Si vous n'avez aucune inquiétude quant à la visibilité de votre variable d'environnement, définissez
name
etvalue
et régleztype
surPLAINTEXT
.Nous vous recommandons de stocker les variables d'environnement contenant des valeurs sensibles, telles qu'un identifiant de clé d' AWS accès, une clé d'accès AWS secrète ou un mot de passe, en tant que paramètre dans Amazon EC2 Systems Manager Parameter Store ou AWS Secrets Manager. Pour
name
, pour ce paramètre stocké, définissez un identifiant CodeBuild à référencer.Si vous utilisez Amazon EC2 Systems Manager Parameter Store, pour
value
, définissez le nom du paramètre tel qu'il est stocké dans le Parameter Store. Définisseztype
surPARAMETER_STORE
. À l'aide d'un paramètre nommé à/CodeBuild/dockerLoginPassword
titre d'exemple, définissezname
surLOGIN_PASSWORD
. Définissezvalue
sur/CodeBuild/dockerLoginPassword
. Définisseztype
surPARAMETER_STORE
.Important
Si vous utilisez Amazon EC2 Systems Manager Parameter Store, nous vous recommandons de stocker les paramètres avec des noms de paramètres commençant par
/CodeBuild/
(par exemple,/CodeBuild/dockerLoginPassword
). Vous pouvez utiliser la CodeBuild console pour créer un paramètre dans Amazon EC2 Systems Manager. Choisissez Create parameter (Créer un paramètre), puis suivez les instructions de la boîte de dialogue. (Dans cette boîte de dialogue, pour KMSclé, vous pouvez spécifier la AWS KMS clé ARN de votre compte. Amazon EC2 Systems Manager utilise cette clé pour chiffrer la valeur du paramètre pendant le stockage et pour la déchiffrer lors de la récupération.) Si vous utilisez la CodeBuild console pour créer un paramètre, la console commence par le nom du paramètre/CodeBuild/
tel qu'il est enregistré. Pour plus d'informations, consultez la procédure pas à pas de la console Systems Manager Parameter Store et Systems Manager Parameter Store dans le guide de l'utilisateur d'Amazon EC2 Systems Manager.Si votre projet de génération fait référence à des paramètres stockés dans Amazon EC2 Systems Manager Parameter Store, le rôle de service du projet de génération doit autoriser l'
ssm:GetParameters
action. Si vous avez sélectionné Nouveau rôle de service plus tôt, CodeBuild inclut cette action dans le rôle de service par défaut de votre projet de génération. En revanche, si vous avez choisi précédemment Existing service role (Rôle de service existant), vous devez inclure séparément cette action dans votre rôle de service.Si votre projet de construction fait référence à des paramètres stockés dans Amazon EC2 Systems Manager Parameter Store avec des noms de paramètres qui ne commencent pas par
/CodeBuild/
, et que vous avez choisi Nouveau rôle de service, vous devez mettre à jour ce rôle de service pour autoriser l'accès aux noms de paramètres qui ne commencent pas par/CodeBuild/
. En effet, ce rôle de service permet uniquement d'accéder aux noms de paramètres qui commencent par/CodeBuild/
.Si vous choisissez Nouveau rôle de service, le rôle de service inclut l'autorisation de déchiffrer tous les paramètres de l'espace de
/CodeBuild/
noms dans le magasin de paramètres Amazon EC2 Systems Manager.Les variables d'environnement que vous définissez remplacent les variables d'environnement existantes. Par exemple, si l'image Docker contient déjà une variable d'environnement nommée
MY_VAR
avec la valeurmy_value
et que vous définissez une variable d'environnement nomméeMY_VAR
avec la valeurother_value
, la valeurmy_value
est remplacée parother_value
. De même, si l'image Docker contient déjà une variable d'environnement nomméePATH
avec la valeur/usr/local/sbin:/usr/local/bin
et que vous définissez une variable d'environnement nomméePATH
avec la valeur$PATH:/usr/share/ant/bin
, la valeur/usr/local/sbin:/usr/local/bin
est remplacée par la valeur littérale$PATH:/usr/share/ant/bin
.Ne définissez pas de variables d'environnement avec un nom commençant par
CODEBUILD_
. Ce préfixe est réservé à une utilisation interne .Si une variable d'environnement avec le même nom est définie dans plusieurs emplacements, la valeur est déterminée comme suit :
-
La valeur de l'appel d'opération de démarrage de génération a une priorité plus élevée.
-
La valeur de la définition de projet de génération vient ensuite dans l'ordre des priorités.
-
La valeur figurant dans la déclaration buildspec a la priorité la plus faible.
Si vous utilisez Secrets Manager, pour
value
, définissez le nom du paramètre tel qu'il est enregistré dans Secrets Manager. Définisseztype
surSECRETS_MANAGER
. À l'aide d'un secret nommé à/CodeBuild/dockerLoginPassword
titre d'exemple, définissezname
surLOGIN_PASSWORD
. Définissezvalue
sur/CodeBuild/dockerLoginPassword
. Définisseztype
surSECRETS_MANAGER
.Important
Si vous utilisez Secrets Manager, nous vous recommandons de stocker les secrets dont le nom commence par
/CodeBuild/
(par exemple,/CodeBuild/dockerLoginPassword
). Pour plus d'informations, consultez Présentation de AWS Secrets Manager dans le Guide de l'utilisateur AWS Secrets Manager .Si votre projet de génération fait référence à des secrets stockés dans Secrets Manager, le rôle de service du projet de génération doit autoriser l'
secretsmanager:GetSecretValue
action. Si vous avez sélectionné Nouveau rôle de service plus tôt, CodeBuild inclut cette action dans le rôle de service par défaut de votre projet de génération. En revanche, si vous avez choisi précédemment Existing service role (Rôle de service existant), vous devez inclure séparément cette action dans votre rôle de service.Si votre projet de génération fait référence à des secrets stockés dans Secrets Manager avec des noms secrets qui ne commencent pas par
/CodeBuild/
, et que vous avez choisi Nouveau rôle de service, vous devez mettre à jour le rôle de service pour autoriser l'accès aux noms de secret qui ne commencent pas par/CodeBuild/
. Cela est dû au fait que le rôle de service autorise l'accès uniquement aux noms secrets commençant par/CodeBuild/
.Si vous choisissez Nouveau rôle de service, le rôle de service inclut l'autorisation de déchiffrer tous les secrets sous l'espace de
/CodeBuild/
noms dans le Gestionnaire de secrets. -
- environnement/ registryCredential
-
Facultatif. RegistryCredentialObjet qui spécifie les informations d'identification permettant d'accéder à un registre Docker privé.
- environnement/registryCredential/identifiant
-
Spécifie le nom ARN ou le nom des informations d'identification créées à l'aide de AWS Managed Services. Vous pouvez utiliser le nom des informations d'identification uniquement si elles existent dans votre région actuelle.
- environnement//registryCredentialcredentialProvider
-
La seule valeur valide est
SECRETS_MANAGER
.
Lorsque cela est défini :
-
imagePullCredentials
doit être défini surSERVICE_ROLE
. -
L'image ne peut pas être une image sélectionnée ou une ECR image Amazon.
- environnement/ Type imagePullCredentials
-
Facultatif. Le type d'informations d'identification CodeBuild utilisé pour extraire des images dans votre build. Deux valeurs sont valides :
- CODEBUILD
-
CODEBUILD
indique qu'il CodeBuild utilise ses propres informations d'identification. Vous devez modifier votre politique de ECR dépôt Amazon pour faire confiance au principal du CodeBuild service. - SERVICE_ROLE
-
Spécifie qui CodeBuild utilise le rôle de service de votre projet de construction.
Lorsque vous utilisez une image de registre privé ou entre comptes, vous devez utiliser les informations d'identification de
SERVICE_ROLE
. Lorsque vous utilisez une image CodeBuild sélectionnée, vous devez utiliser desCODEBUILD
informations d'identification. - environnement/ privilegedMode
-
Définissez cette valeur
true
uniquement si vous prévoyez d'utiliser ce projet de génération pour créer des images Docker. Sinon, toutes les générations associées qui tentent d'interagir avec le démon Docker échouent. Vous devez également démarrer le démon Docker afin que vos générations puissent interagir avec celui-ci. Pour cela, vous pouvez initialiser le démon Docker au cours de la phaseinstall
de votre fichier buildspec en exécutant les commandes de génération ci-après. N'exécutez pas ces commandes si vous avez spécifié une image d'environnement de construction fournie CodeBuild par le support Docker.Note
Par défaut, le démon Docker est activé pour les versions non compilées. VPC Si vous souhaitez utiliser des conteneurs Docker pour les VPC builds, consultez Runtime Privilege et Linux Capabilities
sur le site Web de Docker Docs et activez le mode privilégié. De plus, Windows ne prend pas en charge le mode privilégié. - 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
Obligatoire. Le rôle ARN de service CodeBuild utilise pour interagir avec les services au nom de l'utilisateur (par exemple,arn:aws:iam::
).account-id
:role/role-name
timeoutInMinutes
Facultatif. Le nombre de minutes, compris entre 5 et 2160 (36 heures), après lesquelles la construction CodeBuild s'arrête si elle n'est pas terminée. À défaut de précision, la valeur par défaut 60 est utilisée. Pour déterminer si et quand une compilation CodeBuild a été arrêtée en raison d'un délai d'attente, exécutez la batch-get-builds
commande. Pour déterminer si la génération s'est arrêtée, recherchez dans la sortie une valeur buildStatus
pour FAILED
. Pour déterminer quand la génération a expiré, recherchez dans la sortie la valeur endTime
associée à une valeur phaseStatus
pour TIMED_OUT
.
queuedTimeoutInMinutes
Facultatif. Le nombre de minutes, compris entre 5 et 480 (8 heures), après quoi la construction CodeBuild s'arrête si elle est toujours en file d'attente. À défaut de précision, la valeur par défaut 60 est utilisée.
encryptionKey
Facultatif. L'alias ou ARN celui AWS KMS key utilisé par CodeBuild pour chiffrer la sortie de compilation. Si vous spécifiez un alias, utilisez le format arn:aws:kms:
ou, s'il existe un alias, utilisez le format region-ID
:account-ID
:key/key-ID
alias/
. Si elle n'est pas spécifiée, la KMS clé AWS-managed pour Amazon S3 est utilisée.key-alias
balises
Facultatif. Un tableau d'objets Tag qui fournissent les balises que vous souhaitez associer à ce projet de construction. Vous pouvez spécifier jusqu'à 50 balises. Ces balises peuvent être utilisées par n'importe quel AWS service qui prend en charge les balises de projet de CodeBuild construction. Chaque balise est exprimée sous la forme d'un objet avec a key
et value
a.
vpcConfig
Facultatif. VpcConfigObjet contenant des informations relatives à la VPC configuration de votre projet. Pour plus d’informations, consultez Utilisation AWS CodeBuild avec Amazon Virtual Private Cloud.
Ces propriétés incluent :
- vpcId
-
Obligatoire. L'VPCidentifiant qui CodeBuild utilise. Exécutez cette commande pour obtenir une liste de tous les VPC IDs habitants de votre région :
aws ec2 describe-vpcs --region
<region-ID>
- sous-réseaux
-
Obligatoire. Tableau de sous-réseaux IDs qui inclut les ressources utilisées par CodeBuild. Exécutez cette commande pour les obtenir IDs :
aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region
<region-ID>
- securityGroupIds
-
Obligatoire. Tableau de groupes de sécurité IDs utilisé par CodeBuild pour autoriser l'accès aux ressources duVPC. Exécutez cette commande pour les obtenir IDs :
aws ec2 describe-security-groups --filters "Name=vpc-id,Values=
<vpc-id>
" --<region-ID>
badgeEnabled
Facultatif. Spécifie s'il faut inclure des badges de construction dans votre CodeBuild projet. Définissez sur true
pour activer la création de badges, ou false
autre. Pour plus d’informations, consultez Créez un échantillon de badges avec CodeBuild.
logsConfig
Un LogsConfigobjet qui contient des informations sur l'emplacement des journaux de cette version.
- logsConfig/cloudWatchLogs
-
CloudWatchLogsConfigObjet contenant des informations sur le transfert de CloudWatch journaux vers Logs.
- logsConfig/Journaux S3
-
Un LogsConfig objet S3 qui contient des informations sur le transfert de journaux vers Amazon S3.
fileSystemLocations
Facultatif. Tableau d'ProjectFileSystemsLocationobjets contenant des informations sur votre EFS configuration Amazon.
buildBatchConfig
Facultatif. L'buildBatchConfig
objet est une ProjectBuildBatchConfigstructure qui contient les informations de configuration de génération par lots pour le projet.
- buildBatchConfig/serviceRole
-
Rôle de service ARN pour le projet de génération par lots.
- buildBatchConfig/combineArtifacts
-
Valeur booléenne qui indique s'il faut combiner les artefacts de construction pour la construction par lots dans un seul emplacement d'artefact.
- buildBatchConfig/restrictions/ maximumBuildsAllowed
-
Le nombre maximum de builds autorisés.
- buildBatchConfig/restrictions/ computeTypesAllowed
-
Tableau de chaînes qui spécifient les types de calcul autorisés pour la construction par lots. Reportez-vous à la section Types de calcul de l'environnement de génération pour ces valeurs.
- buildBatchConfig/timeoutInMinutes
-
Durée maximale, en minutes, pendant laquelle la génération par lots doit être terminée.
- buildBatchConfig/batchReportMode
-
Spécifie comment les rapports d'état de compilation sont envoyés au fournisseur source pour la compilation par lots. Les valeurs valides sont les suivantes :
REPORT_AGGREGATED_BATCH
-
(Par défaut) Regrouper tous les états de compilation dans un seul rapport d'état.
REPORT_INDIVIDUAL_BUILDS
-
Envoyer un rapport d'état distinct pour chaque compilation individuelle.
concurrentBuildLimit
Nombre maximal de générations simultanées autorisées pour ce projet.
Les nouvelles générations ne sont démarrées que si le nombre actuel de générations est inférieur ou égal à cette limite. Si le nombre actuel de générations atteint cette limite, les nouvelles générations sont limitées et ne sont pas exécutées.
Création du projet
Pour créer le projet, réexécutez la create-project
commande en passant votre JSON fichier :
aws codebuild create-project --cli-input-json file://
<json-file>
En cas de succès, la JSON représentation d'un objet Project apparaît dans la sortie de la console. Voir la syntaxe de CreateProject réponse pour un exemple de ces données.
A l'exception du nom de projet de génération, vous pouvez modifier les paramètres du projet de génération ultérieurement. Pour plus d’informations, consultez Modification des paramètres d'un projet de génération (AWS CLI).
Pour démarrer l'exécution d'une génération, consultez Exécution d'une génération (AWS CLI).
Si votre code source est stocké dans un GitHub référentiel et que vous CodeBuild souhaitez le reconstruire chaque fois qu'une modification de code est envoyée au référentiel, consultezLancement automatique de l'exécution de générations (AWS CLI).