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 pipeline utilisant CodeBuild (AWS CLI)
Utilisez la procédure suivante pour créer un pipeline qui utilise CodeBuild pour générer votre code source.
AWS CLIPour créer un pipeline qui déploie le code source que vous avez créé ou qui teste uniquement votre code source, vous pouvez adapter les instructions de la section Modifier un pipeline (AWS CLI) et la référence à la structure duCodePipeline pipeline dans le Guide deAWS CodePipeline l'utilisateur.
-
Créez ou identifiez un projet de génération dans CodeBuild. Pour plus d'informations, veuillez consulter Création d'un projet de génération.
Important
Le projet de génération doit définir des paramètres d'artefact de sortie de génération (même si CodePipeline va remplace). Pour de plus amples informations, consultez la description de
artifacts
dans Création d'un projet de génération (AWS CLI). -
Assurez-vous d'avoir configuré leAWS CLI avec la cléAWS d'accès et la clé d'accèsAWS secrète qui correspondent à l'une des entités IAM décrites dans cette rubrique. Pour de plus amples informations, veuillez consulter Préparation de l'installation de l'AWS Command Line Interface dans le Guide de l'utilisateur AWS Command Line Interface.
-
Créez un fichier au format JSON représentant la structure du pipeline. Nommez le fichier
create-pipeline.json
ou avec un nom similaire. Par exemple, cette structure au format JSON crée un pipeline avec une action source qui référence un compartiment d'entrée S3 et une action de génération utilisant CodeBuild :{ "pipeline": { "roleArn": "arn:aws:iam::
<account-id>
:role/<AWS-CodePipeline-service-role-name>
", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "MyApp" } ], "configuration": { "S3Bucket": "<bucket-name>
", "S3ObjectKey": "<source-code-file-name.zip>
" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "CodeBuild" }, "outputArtifacts": [ { "name": "default" } ], "configuration": { "ProjectName": "<build-project-name>
" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "<CodePipeline-internal-bucket-name>
" }, "name": "<my-pipeline-name>
", "version": 1 } }Dans ces données au format JSON :
-
La valeur de
roleArn
doit correspondre à l'ARN du rôle de service CodePipeline que vous avez créé ou identifié dans le cadre des prérequis. -
Les valeurs de
S3Bucket
etS3ObjectKey
dansconfiguration
supposent que le code source est stocké dans un compartiment S3. Pour les paramètres pour d'autres types de référentiel de code source, veuillez consulter Référence sur la structure du pipeline CodePipeline dans le Guide de l'utilisateur AWS CodePipeline. -
La valeur de
ProjectName
est le nom du projet de génération CodeBuild créé précédemment dans cette procédure. -
La valeur de
location
est le nom du compartiment S3 utilisé par ce pipeline. Pour de plus amples informations, veuillez consulter Création d'une stratégie pour un compartiment S3 en vue de l'utiliser comme magasin d'artefacts pour CodePipeline dans le Guide de l'utilisateur AWS CodePipeline. -
La valeur de
name
est le nom de ce pipeline. Tous les noms de pipeline doivent être uniques dans votre compte.
Même si ces données décrivent uniquement une action source et une action de génération, vous pouvez ajouter des actions pour les activités liées au test, au déploiement de l'artefact de sortie de génération, à l'appel des fonctions AWS Lambda, etc. Pour de plus amples informations, veuillez consulter Référence sur la structure du pipeline AWS CodePipeline dans le Guide de l'utilisateur AWS CodePipeline.
-
-
Placez-vous dans le dossier qui contient le fichier JSON, puis exécutez la commande CodePipeline create-pipeline en spécifiant le nom de fichier :
aws codepipeline create-pipeline --cli-input-json file://create-pipeline.json
Note
Vous devez créer le pipeline dans une région AWS qui prend en charge CodeBuild. Pour de plus amples informations, veuillez consulter AWS CodeBuild dans le Référence générale d'Amazon Web Services.
Les données au format JSON s'affichent dans la sortie, et CodePipeline crée le pipeline.
-
Pour obtenir des informations sur l'état du pipeline, exécutez la commande CodePipeline get-pipeline-state en spécifiant le nom du pipeline :
aws codepipeline get-pipeline-state --name
<my-pipeline-name>
Dans la sortie, recherchez les informations qui confirment que la génération a réussi. Des ellipses (
...
) sont utilisées pour les données qui ont été omises par souci de concision.{ ... "stageStates": [ ... { "actionStates": [ { "actionName": "CodeBuild", "latestExecution": { "status": "SUCCEEDED", ... }, ... } ] } ] }
Si vous exécutez cette commande trop tôt, vous risquez de ne voir aucune information sur l'action de génération. Vous devrez peut-être exécuter cette commande plusieurs fois jusqu'à ce que le pipeline ait fini d'exécuter l'action de génération.
-
Après une génération réussie, suivez ces instructions pour obtenir l'artefact de sortie de la génération. Ouvrez la console Amazon S3 sur https://console.aws.amazon.com/s3/
. Note
Vous pouvez également obtenir l'artefact de sortie de la génération en choisissant le lien Artefacts de génération sur la page des détails de génération associées dans la console CodeBuild. Pour accéder à cette page, ignorez les autres étapes de cette procédure et consultez Affichage des détails d'une génération (console).
-
Dans la liste des compartiments, ouvrez le compartiment utilisé par le pipeline. Le nom du compartiment doit suivre le format
codepipeline-
. Vous pouvez obtenir le nom du compartiment à partir du fichier<region-ID>
-<random-number>
create-pipeline.json
ou en exécutant la commande CodePipeline get-pipeline.aws codepipeline get-pipeline --name
<pipeline-name>
Dans la sortie, l'objet
pipeline
contient un objetartifactStore
contenant une valeurlocation
avec le nom du compartiment. -
Ouvrez le dossier correspondant au nom de votre pipeline (par exemple,
).<pipeline-name>
-
Dans ce dossier, ouvrez le dossier nommé
default
(par défaut). -
Extrayez le contenu du fichier . Si ce dossier contient plusieurs fichiers, extrayez le contenu du fichier avec le dernier horodatage Last Modified. (Vous pouvez attribuer au fichier une extension
.zip
pour pouvoir l'utiliser avec l'utilitaire ZIP de votre système.) L'artefact de sortie de génération figure dans le contenu extrait du fichier.