Didacticiel : Création d'un projet dans AWS CodeStar à l'aide de l'AWS CLI - AWS CodeStar

Le 31 juillet 2024, Amazon Web Services (AWS) cessera de prendre en charge la création et la visualisation de AWS CodeStar projets. Après le 31 juillet 2024, vous ne pourrez plus accéder à la AWS CodeStar console ni créer de nouveaux projets. Toutefois, les AWS ressources créées par AWS CodeStar, y compris vos référentiels sources, vos pipelines et vos versions, ne seront pas affectées par cette modification et continueront de fonctionner. AWS CodeStar Les connexions et AWS CodeStar les notifications ne seront pas affectées par cette interruption.

 

Si vous souhaitez suivre le travail, développer du code et créer, tester et déployer vos applications, Amazon CodeCatalyst propose un processus de démarrage rationalisé et des fonctionnalités supplémentaires pour gérer vos projets logiciels. En savoir plus sur les fonctionnalités et les tarifs d'Amazon CodeCatalyst.

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.

Didacticiel : Création d'un projet dans AWS CodeStar à l'aide de l'AWS CLI

Ce didacticiel explique comment utiliser le pour AWS CLI créer un AWS CodeStar projet avec un exemple de code source et un exemple de modèle de chaîne d'outils. AWS CodeStarfournit l'AWSinfrastructure et les ressources IAM spécifiées dans un modèle de AWS CloudFormation chaîne d'outils. Le projet gère vos ressources de chaîne d'outils pour générer et déployer votre code source.

AWS CodeStar utilise AWS CloudFormation pour générer et déployer votre exemple de code. Cet exemple de code crée un service Web hébergé dans Amazon API Gateway AWS Lambda et accessible via Amazon API Gateway.

Prérequis :

  • Suivez les étapes de Configuration AWS CodeStar.

  • Vous devez avoir créé un compartiment de stockage Amazon S3. Dans ce didacticiel, vous allez charger l'exemple de code source et le modèle de chaîne d'outils dans cet emplacement.

Note

Des coûts liés à ce didacticiel peuvent être facturés sur votre compte AWS, ce qui inclut l'utilisation des services AWS par AWS CodeStar. Pour plus d'informations, consultez AWS CodeStar Pricing (Tarification CTlong).

Étape 1 : Téléchargement et examen de l'exemple de code source

Dans le cadre de ce didacticiel, un fichier .zip est disponible en téléchargement. Il contient un exemple de code source pour un exemple d'application Node.js sur la plateforme de calcul Lambda. Lorsque le code source est placé dans votre référentiel, son dossier et ses fichiers se présentent comme suit :

tests/ app.js buildspec.yml index.js package.json README.md template.yml

Les éléments de projet ci-dessous sont représentés dans votre exemple de code source :

  • tests/ : tests unitaires configurés pour le projet CodeBuild de ce projet. Ce dossier est inclus dans l'exemple de code, mais il n'est pas nécessaire à la création d'un projet.

  • app.js : code source d'application de votre projet.

  • buildspec.yml : instructions de génération pour l'étape de génération de votre ressource CodeBuild. Ce fichier est nécessaire pour un modèle de chaîne d'outils de modèle assorti d'une ressource CodeBuild .

  • package.json : informations sur les dépendances de votre code source d'application.

  • README.md : fichier readme de projet inclus dans tous les projets AWS CodeStar. Ce fichier est inclus dans l'exemple de code, mais il n'est pas nécessaire à la création d'un projet.

  • template.yml : fichier de modèle d'infrastructure ou fichier de modèle SAM inclus dans tous les projets AWS CodeStar. Il est différent du fichier template.yml de chaîne d'outils que vous chargerez par la suite dans ce didacticiel. Ce fichier est inclus dans l'exemple de code, mais il n'est pas nécessaire à la création d'un projet.

Étape 2 : Téléchargement de l'exemple de modèle de chaîne d'outils

L'exemple de modèle de chaîne d'outils fourni pour ce didacticiel crée un référentiel (CodeCommit), un pipeline (CodePipeline) et un conteneur de génération (CodeBuild) et se sert de AWS CloudFormation pour déployer votre code source sur une plateforme Lambda. Outre ces ressources, il existe également des rôles IAM que vous pouvez utiliser pour définir les autorisations de votre environnement d'exécution, un compartiment Amazon S3 CodePipeline utilisé pour stocker vos artefacts de déploiement et une règle d' CloudWatch événements utilisée pour déclencher des déploiements de pipeline lorsque vous envoyez du code à votre référentiel. Pour vous conformer aux bonnes pratiques AWS IAM, définissez les stratégies de vos rôles de chaîne d'outils définis dans cet exemple.

Téléchargez et décompressez l'exemple de modèle AWS CloudFormation au format YAML.

Lorsque vous exécutez la commande create-project plus loin dans ce didacticiel, ce modèle créera les ressources de chaîne d'outils personnalisées suivantes dans AWS CloudFormation. Pour plus d'informations sur les ressources créées dans ce didacticiel, consultez les rubriques suivantes dans le AWS CloudFormationGuide de l'utilisateur :

  • La AWS::CodeCommit::RepositoryAWS CloudFormationressource crée un CodeCommit référentiel.

  • La AWS::CodeBuild::ProjectAWS CloudFormationressource crée un projet de CodeBuild construction.

  • La AWS::CodeDeploy::ApplicationAWS CloudFormationressource crée une CodeDeploy application.

  • La AWS::CodePipeline::PipelineAWS CloudFormationressource crée un CodePipeline pipeline.

  • La AWS::S3::BucketAWS CloudFormationressource crée le compartiment d'artefacts de votre pipeline.

  • La AWS::S3::BucketPolicyAWS CloudFormationressource crée la politique de compartiment d'artefacts pour le compartiment d'artefacts de votre pipeline.

  • La AWS::IAM::RoleAWS CloudFormationressource crée le rôle de travailleur CodeBuild IAM qui donne AWS CodeStar les autorisations nécessaires pour gérer votre projet de CodeBuild construction.

  • La AWS::IAM::RoleAWS CloudFormationressource crée le rôle de travailleur CodePipeline IAM qui donne AWS CodeStar les autorisations nécessaires pour créer votre pipeline.

  • La AWS::IAM::RoleAWS CloudFormationressource crée le rôle de travailleur AWS CloudFormation IAM qui donne AWS CodeStar les autorisations nécessaires pour créer votre pile de ressources.

  • La AWS::IAM::RoleAWS CloudFormationressource crée le rôle de travailleur AWS CloudFormation IAM qui donne AWS CodeStar les autorisations nécessaires pour créer votre pile de ressources.

  • La AWS::IAM::RoleAWS CloudFormationressource crée le rôle de travailleur AWS CloudFormation IAM qui donne AWS CodeStar les autorisations nécessaires pour créer votre pile de ressources.

  • La AWS::Events::RuleAWS CloudFormationressource crée la règle CloudWatch Events qui surveille votre référentiel pour détecter les événements push.

  • La AWS::IAM::RoleAWS CloudFormationressource crée le rôle CloudWatch Events IAM.

Étape 3 : Test de votre modèle de chaîne d'outils dans AWS CloudFormation

Avant de charger votre modèle de chaîne d'outils, vous pouvez le tester dans AWS CloudFormation et résoudre les erreurs éventuelles.

  1. Enregistrez le modèle mis à jour sur votre ordinateur local, puis ouvrez la console AWS CloudFormation. Sélectionnez Create Stack (Créer une pile). Vos nouvelles ressources doivent figurer dans la liste.

  2. Examinez votre pile pour voir si elle contient des erreurs de création de pile.

  3. Une fois le test terminé, supprimez la pile.

    Note

    Veillez à supprimer votre pile et toutes les ressources créées dans AWS CloudFormation. Sinon, pendant que vous créerez votre projet, vous pouvez rencontrer des erreurs liées à des noms de ressources déjà utilisés.

Étape 4 : Chargement de votre code source et de votre modèle de chaîne d'outils

Pour créer un AWS CodeStar projet, vous devez d'abord empaqueter votre code source dans un fichier .zip et le placer dans Amazon S3. AWS CodeStarinitialise votre dépôt avec ce contenu. Vous spécifiez cet emplacement dans votre fichier d'entrée au moment d'exécuter la commande permettant de créer votre projet dans l'AWS CLI.

Vous devez également charger votre toolchain.yml fichier et le placer dans Amazon S3. Vous spécifiez cet emplacement dans votre fichier d'entrée au moment d'exécuter la commande permettant de créer votre projet dans l'AWS CLI.

Pour charger votre code source et votre modèle de chaîne d'outils
  1. L'exemple de structure de fichiers suivante illustre les fichiers source et le modèle de chaîne d'outils prêts à être compressés et chargés. L'exemple de code inclut le fichier template.yml. Ne perdez pas de vue que ce fichier est différent du fichier toolchain.yml.

    ls src toolchain.yml ls src/ README.md app.js buildspec.yml index.js package.json template.yml tests
  2. Créez le fichier .zip pour les fichiers de code source.

    cd src; zip -r "../src.zip" *; cd ../
  3. Utilisez la cp commande et incluez les fichiers en tant que paramètres.

    Les commandes suivantes chargent le fichier .zip toolchain.yml vers Amazon S3.

    aws s3 cp src.zip s3://MyBucket/src.zip aws s3 cp toolchain.yml s3://MyBucket/toolchain.yml
Pour configurer votre compartiment Amazon S3 afin de partager votre code source
  • Comme vous stockez votre code source et votre chaîne d'outils dans Amazon S3, vous pouvez utiliser les politiques de compartiment Amazon S3 et les ACL d'objets pour garantir que les autres utilisateurs ou AWS comptes IAM puissent créer des projets à partir de vos exemples. AWS CodeStargarantit que tout utilisateur qui crée un projet personnalisé a accès à la chaîne d'outils et à la source qu'il souhaite utiliser.

    Pour permettre à quiconque d'utiliser votre exemple, exécutez les commandes suivantes :

    aws s3api put-object-acl --bucket MyBucket --key toolchain.yml --acl public-read aws s3api put-object-acl --bucket MyBucket --key src.zip --acl public-read

Étape 5 : Création d'un projet dans AWS CodeStar

Pour créer votre projet, effectuez ces étapes.

Important

Assurez-vous de configurer la AWS région préférée dansAWS CLI. Votre projet est créé dans la AWS région configurée dans leAWS CLI.

  1. Exécutez la commande create-project et incluez le paramètre --generate-cli-skeleton :

    aws codestar create-project --generate-cli-skeleton

    Des données au format JSON apparaissent dans la sortie. Copiez les données dans un fichier (par exemple, input.json) à un emplacement sur votre ordinateur local ou sur l'instance où est installée l'AWS CLI. Modifiez les données copiées comme suit, puis enregistrez vos résultats. Ce fichier d'entrée est configuré pour un projet nommé MyProject avec le nom de compartiment myBucket.

    • Veillez à spécifier le paramètre roleArn. Pour les modèles personnalisés, comme l'exemple de modèle utilisé dans ce didacticiel, vous devez fournir un rôle. Ce rôle doit disposer d'autorisations pour créer toutes les ressources spécifiées dans Étape 2 : Téléchargement de l'exemple de modèle de chaîne d'outils.

    • Veillez à spécifier le paramètre ProjectId sous stackParameters. L'exemple de modèle fourni pour ce didacticiel a besoin de ce paramètre.

    { "name": "MyProject", "id": "myproject", "description": "Sample project created with the CLI", "sourceCode": [ { "source": { "s3": { "bucketName": "MyBucket", "bucketKey": "src.zip" } }, "destination": { "codeCommit": { "name": "myproject" } } } ], "toolchain": { "source": { "s3": { "bucketName": "MyBucket", "bucketKey": "toolchain.yml" } }, "roleArn": "role_ARN", "stackParameters": { "ProjectId": "myproject" } } }
  2. Placez-vous dans le répertoire contenant le fichier que vous venez d'enregistrer, puis exécutez à nouveau la commande create-project. Incluez le paramètre --cli-input-json.

    aws codestar create-project --cli-input-json file://input.json
  3. En cas de réussite, des données similaires à ce qui suit s'affichent dans la sortie :

    { "id": "project-ID", "arn": "arn" }
    • La sortie contient des informations sur le nouveau projet :

      • La valeur de id représente l'ID du projet.

      • La valeur de arn représente l'ARN du projet.

  4. Utilisez la commande describe-project pour vérifier le statut de votre création de projet. Incluez le paramètre --id.

    aws codestar describe-project --id <project_ID>

    Des données similaires à celles qui suivent s'affichent dans la sortie :

    { "name": "MyProject", "id": "myproject", "arn": "arn:aws:codestar:us-east-1:account_ID:project/myproject", "description": "", "createdTimeStamp": 1539700079.472, "stackId": "arn:aws:cloudformation:us-east-1:account_ID:stack/awscodestar-myproject/stack-ID", "status": { "state": "CreateInProgress" } }
    • La sortie contient des informations sur le nouveau projet :

      • La valeur de id représente l'ID unique du projet.

      • La valeur de state représente le statut de création du projet, par exemple CreateInProgress ou CreateComplete.

Bien que votre projet soit en cours de création, vous pouvez ajouter des membres de l'équipe ou configurer l'accès à votre référentiel de projet à partir de la ligne de commande ou de votre IDE préféré.