Création d'un pipeline utilisant CodeBuild (AWS CLI) - AWS CodeBuild

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.

  1. 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).

  2. 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.

  3. 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 et S3ObjectKey dans configuration 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.

  4. 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.

  5. 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.

  6. 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).

  7. Dans la liste des compartiments, ouvrez le compartiment utilisé par le pipeline. Le nom du compartiment doit suivre le format codepipeline-<region-ID>-<random-number>. Vous pouvez obtenir le nom du compartiment à partir du fichier 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 objet artifactStore contenant une valeur location avec le nom du compartiment.

  8. Ouvrez le dossier correspondant au nom de votre pipeline (par exemple, <pipeline-name>).

  9. Dans ce dossier, ouvrez le dossier nommé default (par défaut).

  10. 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.