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 permet CodeBuild de générer votre code source.

AWS CLI Pour créer un pipeline qui déploie votre code source 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 de structure du CodePipeline pipeline dans le guide de l'AWS CodePipeline utilisateur.

  1. Créez ou identifiez un projet de construction dans CodeBuild. Pour de plus amples informations, veuillez consulter Création d'un projet de génération.

    Important

    Le projet de construction doit définir les paramètres de l'artefact de sortie de construction (même s'il les CodePipeline 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é la AWS CLI clé AWS d'accès et la clé d'accès AWS secrète correspondant à l'une des IAM entités 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 JSON au format -qui représente la structure du pipeline. Nommez le fichier create-pipeline.json ou avec un nom similaire. Par exemple, cette structure JSON formatée crée un pipeline avec une action source qui fait référence à un compartiment d'entrée S3 et une action de génération qui utilise : 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 JSON formatées :

    • La valeur de roleArn doit correspondre au rôle ARN de CodePipeline service 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 des autres types de référentiels de code source, consultez la référence sur la structure du CodePipeline pipeline dans le guide de AWS CodePipeline l'utilisateur.

    • La valeur de ProjectName est le nom du projet de CodeBuild construction que vous avez créé plus tôt dans cette procédure.

    • La valeur de location est le nom du compartiment S3 utilisé par ce pipeline. Pour plus d'informations, consultez la section Créer une politique pour un compartiment S3 à utiliser comme magasin d'artefacts CodePipeline dans le guide de l'AWS CodePipeline utilisateur.

    • La valeur de name est le nom de ce pipeline. Tous les noms de pipeline doivent être uniques dans votre compte.

    Bien que ces données ne décrivent qu'une action source et une action de génération, vous pouvez ajouter des actions pour les activités liées aux tests, au déploiement de l'artefact de sortie de génération, à l'invocation de AWS Lambda fonctions, 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. Accédez au dossier qui contient le JSON fichier, puis exécutez la CodePipeline create-pipeline commande en spécifiant le nom du fichier :

    aws codepipeline create-pipeline --cli-input-json file://create-pipeline.json
    Note

    Vous devez créer le pipeline dans une AWS région où il CodeBuild est pris en charge. Pour de plus amples informations, veuillez consulter AWS CodeBuild dans le Référence générale d'Amazon Web Services.

    Les données JSON formatées apparaissent dans la sortie et CodePipeline créent le pipeline.

  5. Pour obtenir des informations sur l'état du pipeline, exécutez la CodePipeline get-pipeline-state commande 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 à l'adresse https://console.aws.amazon.com/s3/.

    Note

    Vous pouvez également obtenir l'artefact de sortie de construction en cliquant sur le lien Créer des artefacts sur la page de détails de construction correspondante dans la CodeBuild console. 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 create-pipeline.json fichier ou exécuter la CodePipeline get-pipeline commande pour obtenir le nom du compartiment.

    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 devrez peut-être attribuer une .zip extension au fichier afin de pouvoir l'utiliser dans l'ZIPutilitaire de votre système.) L'artefact de sortie de génération figure dans le contenu extrait du fichier.