Automatically build and deploy a Java application to Amazon EKS using a CI/CD pipeline - Recommandations AWS

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.

Automatically build and deploy a Java application to Amazon EKS using a CI/CD pipeline

Créée par MAHESH RAGHUNANDANAN (AWS), James Radtke (AWS) et Jomcy Pappachen (AWS)

Référentiel de code : aws-cicd-java-eks

Environnement : Production

Technologies : Conteneurs et microservices ; CloudNative DevOps ; Modernisation

Charge de travail : toutes les autres charges de travail

Services AWS : AWS CloudFormation ; AWS ; AWS CodeCommit CodePipeline ; registre des conteneurs Amazon EC2 ; Amazon EKS

Récapitulatif

Ce modèle décrit comment créer un pipeline d'intégration et de livraison continues (CI/CD) qui crée et déploie automatiquement une application Java selon les DevSecOps pratiques recommandées sur un cluster Amazon Elastic Kubernetes Service (Amazon EKS) sur le cloud Amazon Web Services (AWS). Ce modèle utilise une application d'accueil développée avec un framework Java Spring Boot et qui utilise Apache Maven.

Vous pouvez utiliser l'approche de ce modèle pour créer le code d'une application Java, empaqueter les artefacts de l'application sous forme d'image Docker, scanner l'image de sécurité et télécharger l'image en tant que conteneur de charge de travail sur Amazon EKS. L'approche de ce modèle est utile si vous souhaitez migrer d'une architecture monolithique étroitement couplée vers une architecture de microservices. Cette approche vous permet également de surveiller et de gérer l'ensemble du cycle de vie d'une application Java, ce qui garantit un niveau d'automatisation supérieur et permet d'éviter les erreurs ou les bogues.

Conditions préalables et limitations

Prérequis

  • Un compte AWS actif.

  • Interface de ligne de commande AWS (AWS CLI) version 2, installée et configurée. Pour plus d'informations à ce sujet, consultez la section Installation, mise à jour et désinstallation de la version 2 de l'interface de ligne de commande AWS dans la documentation de l'interface de ligne de commande AWS.

  • La version 2 de l'AWS CLI doit être configurée avec le même rôle IAM que celui qui crée le cluster Amazon EKS, car seul ce rôle est autorisé à ajouter d'autres rôles IAM au. aws-auth ConfigMap Pour plus d'informations et pour connaître les étapes de configuration de l'AWS CLI, consultez la section Principes de base de la configuration dans la documentation de l'AWS CLI.

  • Rôles et autorisations AWS Identity and Access Management (IAM) avec accès complet à AWS CloudFormation. Pour plus d'informations à ce sujet, consultez la section Contrôle de l'accès avec IAM dans la CloudFormation documentation AWS.

  • Un cluster Amazon EKS existant, avec les détails du nom du rôle IAM et du rôle IAM Amazon Resource Name (ARN) des nœuds de travail du cluster EKS.

  • Kubernetes Cluster Autoscaler, installé et configuré dans votre cluster Amazon EKS. Pour plus d'informations, consultez Cluster Autoscaler dans la documentation Amazon EKS. 

  • Accès au code du GitHub référentiel.

Remarque importante

AWS Security Hub est activé dans le cadre des CloudFormation modèles AWS inclus dans le code. Par défaut, une fois Security Hub activé, il est fourni avec un essai gratuit de 30 jours, après quoi un coût est associé à ce service AWS. Pour plus d'informations sur les tarifs, consultez les tarifs d'AWS Security Hub.

Versions du produit

  • Helm version 3.4.2 ou ultérieure

  • Apache Maven version 3.6.3 ou ultérieure

  • BridgeCrew Checkov version 2.2 ou ultérieure

  • Aqua Security Trivy version 0.37 ou ultérieure

Architecture

Pile technologique

  • AWS CodeBuild

  • AWS CodeCommit

  • Amazon CodeGuru

  • AWS CodePipeline

  • Amazon Elastic Container Registry

  • Amazon Elastic Kubernetes Service

  • Amazon EventBridge

  • AWS Security Hub

  • Amazon Simple Notification Service (Amazon SNS)

Architecture cible

""

Le schéma suivant illustre le flux de travail suivant :

  1. Le développeur met à jour le code de l'application Java dans la branche de base du CodeCommit référentiel, ce qui crée une pull request (PR).

  2. Dès que le PR est soumis, Amazon CodeGuru Reviewer passe automatiquement en revue le code, l'analyse en fonction des meilleures pratiques pour Java et donne des recommandations au développeur.

  3. Une fois le PR fusionné avec la branche de base, un EventBridge événement Amazon est créé.

  4. L' EventBridge événement initie le CodePipeline pipeline, qui démarre.

  5. CodePipeline exécute la phase de CodeSecurity scan (sécurité continue).

  6. CodeBuild lance le processus d'analyse de sécurité dans lequel les fichiers Helm du déploiement Dockerfile et Kubernetes sont analysés à l'aide de Checkov, et le code source de l'application est analysé en fonction des modifications de code incrémentielles. L'analyse du code source de l'application est effectuée par le wrapper de l'interface de ligne de commande (CLI) CodeGuru Reviewer.

  7. Si la phase d'analyse de sécurité est réussie, la phase de construction (intégration continue) est lancée.

  8. Au cours de la phase de construction CodeBuild , génère l'artefact, l'empaquette dans une image Docker, scanne l'image pour détecter les failles de sécurité à l'aide d'Aqua Security Trivy et stocke l'image dans Amazon ECR.

  9. Les vulnérabilités détectées à l'étape 8 sont téléchargées vers Security Hub pour une analyse plus approfondie par les développeurs ou les ingénieurs. Security Hub fournit une vue d'ensemble et des recommandations pour remédier aux vulnérabilités.

  10. Les notifications par e-mail relatives aux différentes phases du CodePipeline pipeline sont envoyées via Amazon SNS.

  11. Une fois les phases d'intégration continue terminées, CodePipeline passe à la phase de déploiement (livraison continue).

  12. L'image Docker est déployée sur Amazon EKS en tant que charge de travail de conteneur (pod) à l'aide de graphiques Helm.

  13. Le pod d'application est configuré avec l'agent Amazon CodeGuru Profiler qui envoie les données de profilage de l'application (processeur, utilisation du tas et latence) à Amazon CodeGuru Profiler, ce qui aide les développeurs à comprendre le comportement de l'application.

Outils

Services AWS

  • AWS vous CloudFormation aide à configurer les ressources AWS, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie sur l'ensemble des comptes et des régions AWS.

  • AWS CodeBuild est un service de génération entièrement géré qui vous aide à compiler le code source, à exécuter des tests unitaires et à produire des artefacts prêts à être déployés.

  • AWS CodeCommit est un service de contrôle de version qui vous permet de stocker et de gérer de manière privée des référentiels Git, sans avoir à gérer votre propre système de contrôle de source.

  • Amazon CodeGuru Profiler collecte les données de performances d'exécution de vos applications en ligne et fournit des recommandations qui peuvent vous aider à affiner les performances de vos applications.

  • Amazon CodeGuru Reviewer utilise l'analyse des programmes et l'apprentissage automatique pour détecter les défauts potentiels difficiles à détecter pour les développeurs et propose des suggestions pour améliorer votre code Java et Python.

  • AWS vous CodePipeline aide à modéliser et à configurer rapidement les différentes étapes d'une version logicielle et à automatiser les étapes nécessaires à la publication continue des modifications logicielles.

  • Amazon Elastic Container Registry (Amazon ECR) est un service géré de registre d'images de conteneurs sécurisé, évolutif et fiable.

  • Amazon Elastic Kubernetes Service (Amazon EKS) vous aide à exécuter Kubernetes sur AWS sans avoir à installer ou à gérer votre propre plan de contrôle ou vos propres nœuds Kubernetes.

  • Amazon EventBridge est un service de bus d'événements sans serveur qui vous permet de connecter vos applications à des données en temps réel provenant de diverses sources. Par exemple, les fonctions AWS Lambda, les points de terminaison d'appel HTTP utilisant des destinations d'API ou les bus d'événements dans d'autres comptes AWS.

  • AWS Identity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos ressources AWS en contrôlant qui est authentifié et autorisé à les utiliser.

  • AWS Security Hub fournit une vue complète de votre état de sécurité dans AWS. Il vous permet également de vérifier que votre environnement AWS est conforme aux normes du secteur de la sécurité et aux meilleures pratiques.

  • Amazon Simple Notification Service (Amazon SNS) vous aide à coordonner et à gérer l'échange de messages entre les éditeurs et les clients, y compris les serveurs Web et les adresses e-mail.

  • Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.

Autres services

  • Helm est un gestionnaire de paquets open source pour Kubernetes.

  • Apache Maven est un outil de gestion et de compréhension de projets logiciels.

  • BridgeCrew Checkov est un outil d'analyse de code statique permettant de scanner les fichiers d'infrastructure en tant que code (IaC) pour détecter les erreurs de configuration susceptibles d'entraîner des problèmes de sécurité ou de conformité.

  • Aqua Security Trivy est un scanner complet pour détecter les vulnérabilités dans les images de conteneurs, les systèmes de fichiers et les référentiels Git, en plus des problèmes de configuration.

Code

Le code de ce modèle est disponible dans le GitHub aws-codepipeline-devsecops-amazoneksréférentiel.

Bonnes pratiques

  • Le principe du moindre privilège a été suivi pour les entités IAM dans toutes les phases de cette solution. Si vous souhaitez étendre la solution avec des services AWS supplémentaires ou des outils tiers, nous vous recommandons de suivre le principe du moindre privilège.

  • Si vous avez plusieurs applications Java, nous vous recommandons de créer des pipelines CI/CD distincts pour chaque application.

  • Si vous avez une application monolithe, nous vous recommandons de diviser l'application en microservices autant que possible. Les microservices sont plus flexibles, ils facilitent le déploiement des applications sous forme de conteneurs et ils offrent une meilleure visibilité sur l'ensemble de la création et du déploiement de l'application.

Épopées

TâcheDescriptionCompétences requises

Clonez le GitHub dépôt.

Pour cloner le dépôt, exécutez la commande suivante.

git clone https://github.com/aws-samples/aws-codepipeline-devsecops-amazoneks
Développeur d'applications, DevOps ingénieur

Créez un compartiment S3 et téléchargez le code.

  1. Connectez-vous à la console de gestion AWS, ouvrez la console Amazon S3, puis créez un compartiment S3 dans la région AWS où vous prévoyez de déployer cette solution. Pour plus d'informations, consultez la section Création d'un compartiment dans la documentation Amazon S3.

  2. Dans le compartiment S3, créez un dossier nommécode.

  3. Accédez à l'endroit où vous avez cloné le dépôt. Pour créer une version compressée de l'ensemble du code avec l'extension .zip (cicdstack.zip) et valider le fichier .zip, exécutez les commandes suivantes dans l'ordre.

    Remarque : Si la python commande échoue et indique que Python n'a pas été trouvé, utilisez-le à la python3 place.

    cd aws-codepipeline-devsecops-amazoneks python -m zipfile -c cicdstack.zip * python -m zipfile -t cicdstack.zip
  4. Téléchargez le cicdstack.zip fichier dans le dossier de code que vous avez créé précédemment dans le compartiment S3.

AWS DevOps, DevOps ingénieur, administrateur du cloud, DevOps

Créez une CloudFormation pile AWS.

  1. Ouvrez la CloudFormation console AWS et choisissez Create stack.

  2. Dans Spécifier le modèle, choisissez Télécharger un fichier modèle, chargez le cf_templates/codecommit_ecr.yaml fichier, puis cliquez sur Suivant.

  3. Dans Spécifier les détails de la pile, entrez le nom de la pile, puis fournissez les valeurs de paramètres d'entrée suivantes :

    • CodeCommitRepositoryBranchName: le nom de la branche dans laquelle résidera votre code (le nom par défaut est main)

    • CodeCommitRepositoryName: nom du CodeCommit dépôt à créer.

    • CodeCommitRepositoryS3Bucket : nom du compartiment S3 dans lequel vous avez créé le dossier de code

    • CodeCommitRepositoryS3 BucketObjKey : code/cicdstack.zip

    • ECR RepositoryName : nom du dépôt Amazon ECR à créer

  4. Choisissez Next, utilisez les paramètres par défaut pour les options de configuration de la pile, puis choisissez Next.

  5. Dans la section Révision, vérifiez le modèle et les détails de la pile, puis choisissez Create stack. La pile est ensuite créée, y compris les référentiels CodeCommit et Amazon ECR.

  6. Notez les noms des référentiels CodeCommit et Amazon ECR, qui seront nécessaires pour la configuration du pipeline Java CI/CD.

AWS DevOps, DevOps

Validez le déploiement de la CloudFormation pile.

  1. Sous Stacks sur la CloudFormation console, vérifiez l'état de la CloudFormation pile que vous avez déployée. Le statut de la pile doit être CREATE COMPLETE.

  2. De plus, depuis la console, validez cela CodeCommit et Amazon ECR a été configuré et est prêt.

DevOps ingénieur

Supprimez le compartiment S3.

Videz et supprimez le compartiment S3 que vous avez créé précédemment. Pour plus d'informations, consultez Supprimer un compartiment dans la documentation Amazon S3.

AWS DevOps, DevOps
TâcheDescriptionCompétences requises

Configurez les diagrammes Helm de votre application Java.

  1. À l'emplacement où vous avez cloné le GitHub référentiel, accédez au dossierhelm_charts/aws-proserve-java-greeting. Dans ce dossier, le values.dev.yaml fichier contient des informations sur la configuration des ressources Kubernetes que vous pouvez modifier pour vos déploiements de conteneurs sur Amazon EKS. Mettez à jour le paramètre du référentiel Docker en fournissant votre identifiant de compte AWS, votre région AWS et le nom du référentiel Amazon ECR.

    image: repository: <account-id>.dkr.ecr.<region>.amazonaws.com/<app-ecr-repo-name>
  2. Le type de service du module Java est défini surLoadBalancer.

    service: type: LoadBalancer port: 80 targetPort: 8080 path: /hello initialDelaySeconds: 60 periodSeconds: 30

    Pour utiliser un autre service (par exempleNodePort), vous pouvez modifier les paramètres. Pour plus d'informations, consultez la documentation de Kubernetes.

  3. Vous pouvez activer le Kubernetes Horizontal Pod Autoscaler en modifiant le paramètre sur. autoscaling enabled: true

    autoscaling: enabled: true minReplicas: 1 maxReplicas: 100 targetCPUUtilizationPercentage: 80 # targetMemoryUtilizationPercentage: 80

Vous pouvez activer différentes fonctionnalités pour les charges de travail Kubernetes en modifiant les valeurs du values.<ENV>.yaml fichier, en indiquant où se <ENV> trouve votre environnement de développement, de production, d'UAT ou d'assurance qualité.

DevOps

Validez les graphiques de Helm pour détecter les erreurs de syntaxe.

  1. Depuis le terminal, vérifiez que Helm v3 est installé sur votre poste de travail local en exécutant la commande suivante.

    helm --version

    Si Helm v3 n'est pas installé, installez-le.

  2. Dans le terminal, accédez au répertoire des diagrammes Helm (helm_charts/aws-proserve-java-greeting) et exécutez la commande suivante.

    helm lint . -f values.dev.yaml

    Cela permettra de vérifier la présence d'éventuelles erreurs de syntaxe dans les diagrammes de Helm.

DevOps ingénieur
TâcheDescriptionCompétences requises

Créez le pipeline CI/CD.

  1. Ouvrez la CloudFormation console AWS et choisissez Create stack.

  2. Dans Spécifier le modèle, choisissez Télécharger un fichier modèle, chargez le cf_templates/build_deployment.yaml modèle, puis cliquez sur Suivant.

  3. Dans Spécifier les détails de la pile, spécifiez le nom de la pile, puis fournissez les valeurs suivantes pour les paramètres d'entrée :

    • CodeBranchName: nom de branche du CodeCommit dépôt, où réside votre code

    • EKS ClusterName : nom de votre cluster EKS (pas l'EKSClusterID)

    • EKS CodeBuildAppName : nom de l'application Helm chart (aws-proserve-java-greeting)

    • WorkerNodeRoleARN EKS : ARN du rôle IAM des nœuds de travail Amazon EKS

    • EKS WorkerNodeRoleName : nom du rôle IAM attribué aux nœuds de travail Amazon EKS

    • EcrDockerRepository: nom du dépôt Amazon ECR dans lequel les images Docker de votre code seront stockées

    • EmailRecipient: adresse e-mail à laquelle les notifications de build doivent être envoyées

    • EnvType: Environnement (par exemple, dev, test ou prod)

    • SourceRepoName: nom du CodeCommit dépôt, où réside votre code

  4. Choisissez Suivant. Utilisez les paramètres par défaut dans Configurer les options de pile, puis choisissez Next.

  5. Dans la section Révision, vérifiez le CloudFormation modèle AWS et les détails de la pile, puis choisissez Next.

  6. Sélectionnez Créer la pile

  7. Pendant le déploiement de la CloudFormation pile, le propriétaire de l'adresse e-mail que vous avez fournie dans les paramètres recevra un message l'invitant à s'abonner à une rubrique SNS. Pour s'abonner à Amazon SNS, le propriétaire doit choisir le lien contenu dans le message.

  8. Une fois la pile créée, ouvrez l'onglet Sorties de la pile, puis enregistrez la valeur ARN de la clé EksCodeBuildkubeRoleARN de sortie. Cette valeur d'ARN IAM sera requise ultérieurement pour fournir au rôle CodeBuild IAM les autorisations nécessaires pour déployer des charges de travail dans le cluster Amazon EKS.

AWS DevOps
TâcheDescriptionCompétences requises

Activez l'intégration d'Aqua Security.

Cette étape est nécessaire pour télécharger les résultats de vulnérabilité des images Docker signalés par Trivy vers Security Hub. AWS CloudFormation ne prenant pas en charge les intégrations de Security Hub, ce processus doit être effectué manuellement.

  1. Ouvrez la console AWS Security Hub et accédez à Integrations.

  2. Recherchez Aqua Security, puis sélectionnez Aqua Security : Aqua Security.

  3. Choisissez Accepter les résultats.

Administrateur AWS, DevOps ingénieur
TâcheDescriptionCompétences requises

Permet CodeBuild d'exécuter des commandes Helm ou kubectl dans le cluster Amazon EKS.

CodeBuild Pour être authentifié afin d'utiliser Helm ou des kubectl commandes avec le cluster EKS, vous devez ajouter les rôles IAM au. aws-auth ConfigMapDans ce cas, ajoutez l'ARN du rôle IAMEksCodeBuildkubeRoleARN, qui est le rôle IAM créé pour que le CodeBuild service accède au cluster EKS et y déploie des charges de travail. Il s'agit d'une activité ponctuelle.

Important : La procédure suivante doit être terminée avant la phase d'approbation du déploiement dans CodePipeline.

  1. Ouvrez le script cf_templates/kube_aws_auth_configmap_patch.sh shell dans votre environnement Amazon Linux ou macOS.

  2. Authentifiez-vous auprès du cluster Amazon EKS en exécutant la commande suivante.

    aws eks --region <aws-region> update-kubeconfig --name <eks-cluster-name>
  3. Exécutez le script shell à l'aide de la commande suivante, en le <rolearn-eks-codebuild-kubectl> remplaçant par la EksCodeBuildkubeRoleARN valeur ARN enregistrée précédemment.

    bash cf_templates/kube_aws_auth_configmap_patch.sh <rolearn-eks-codebuild-kubectl> 

aws_authConfigMapIl est configuré et l'accès est accordé.

DevOps
TâcheDescriptionCompétences requises

Vérifiez que le pipeline CI/CD démarre automatiquement.

  1. La phase de CodeSecurity scan du pipeline échoue généralement si Checkov détecte des vulnérabilités dans les graphiques Dockerfile ou Helm. Cependant, le but de cet exemple est d'établir un processus permettant d'identifier les vulnérabilités de sécurité potentielles plutôt que de les corriger par le biais du pipeline CI/CD, généralement un DevSecOps processus. Dans le fichierbuildspec/buildspec_secscan.yaml, la checkov commande utilise l'--soft-failindicateur pour éviter une défaillance du pipeline.

    - echo -e "\n Running Dockerfile Scan" - checkov -f code/app/Dockerfile --framework dockerfile --soft-fail --summary-position bottom - echo -e "\n Running Scan of Helm Chart files" - cp -pv helm_charts/$EKS_CODEBUILD_APP_NAME/values.dev.yaml helm_charts/$EKS_CODEBUILD_APP_NAME/values.yaml - checkov -d helm_charts/$EKS_CODEBUILD_APP_NAME --framework helm --soft-fail --summary-position bottom - rm -rfv helm_charts/$EKS_CODEBUILD_APP_NAME/values.yaml

    Pour que le pipeline échoue lorsque des vulnérabilités sont signalées pour les graphiques Dockerfile et Helm, l'--soft-failoption doit être supprimée de la checkov commande. Les développeurs ou les ingénieurs peuvent ensuite corriger les vulnérabilités et valider les modifications dans le référentiel du code CodeCommit source.

  2. À l'instar de CodeSecurity Scan, la phase de construction utilise Aqua Security Trivy pour identifier les vulnérabilités d'image Docker GRAVES et CRITIQUES avant de transférer l'application vers Amazon ECR. Dans cet exemple, nous ne provoquons pas l'échec du pipeline en raison de vulnérabilités liées aux images Docker. Dans le fichierbuildspec/buildspec.yml, la trivy commande inclut l'indicateur --exit-codeavec une valeur 0, ce qui explique pourquoi le pipeline n'échoue pas lorsque des vulnérabilités d'image Docker HIGH ou CRITICAL sont signalées.

    - AWS_REGION=$AWS_DEFAULT_REGION AWS_ACCOUNT_ID=$AWS_ACCOUNT_ID trivy -d image --no-progress --ignore-unfixed --exit-code 0 --severity HIGH,CRITICAL --format template --template "@securityhub/asff.tpl" -o securityhub/report.asff $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$CODEBUILD_RESOLVED_SOURCE_VERSION

    Pour que le pipeline échoue lorsque HIGH, CRTICAL des vulnérabilités sont signalées, modifiez la valeur de --exit-code en1.

    Les développeurs ou les ingénieurs peuvent ensuite corriger les vulnérabilités et valider les modifications dans le référentiel du code CodeCommit source.

  3. Les vulnérabilités des images Docker signalées par Aqua Security Trivy sont téléchargées sur Security Hub. Sur la console AWS Security Hub, accédez à Findings. Filtrez les résultats avec Record State = Active et Product = Aqua Security. Cela répertoriera les vulnérabilités liées aux images Docker dans Security Hub. L'apparition de vulnérabilités sur Security Hub peut prendre entre 15 minutes et 1 heure.

Pour plus d'informations sur le démarrage du pipeline en utilisant CodePipeline, consultez les sections Démarrer un pipeline dans CodePipeline, Démarrer un pipeline manuellement et Démarrer un pipeline selon un calendrier dans la CodePipeline documentation AWS.

DevOps

Approuvez le déploiement.

  1. Une fois la phase de construction terminée, il existe une porte d'approbation du déploiement. Le réviseur ou un responsable de version doit inspecter la version et, si toutes les exigences sont remplies, l'approuver. Il s'agit de l'approche recommandée pour les équipes qui utilisent la livraison continue pour le déploiement d'applications.

  2. Après approbation, le pipeline lance la phase de déploiement.

  3. Une fois la phase de déploiement réussie, le CodeBuild journal de cette étape fournit l'URL de l'application. Utilisez l'URL pour vérifier que l'application est prête.

DevOps

Validez le profilage des applications.

Une fois le déploiement terminé et le module d'application déployé dans Amazon EKS, l'agent Amazon CodeGuru Profiler configuré dans l'application essaie d'envoyer les données de profilage de l'application (processeur, résumé du segment de mémoire, latence et goulots d'étranglement) à Amazon Profiler. CodeGuru

Lors du déploiement initial d'une application, Amazon CodeGuru Profiler prend environ 15 minutes pour visualiser les données de profilage.

AWS DevOps

Ressources connexes

Informations supplémentaires

CodeGuru Profiler ne doit pas être confondu avec le service AWS X-Ray en termes de fonctionnalités. CodeGuru Profiler est idéal pour identifier les lignes de code les plus coûteuses, susceptibles de provoquer des blocages ou des problèmes de sécurité, et pour les corriger avant qu'elles ne deviennent un risque potentiel. Le service AWS X-Ray est destiné à la surveillance des performances des applications.

Dans ce modèle, les règles d'événements sont associées au bus d'événements par défaut. Si nécessaire, vous pouvez étendre le modèle pour utiliser un bus d'événements personnalisé.

Ce modèle utilise CodeGuru Reviewer comme outil de test statique de sécurité des applications (SAST) pour le code des applications. Vous pouvez également utiliser ce pipeline pour d'autres outils, tels que SonarQube Checkmarx. Les instructions de configuration de numérisation correspondantes de n'importe lequel de ces outils peuvent être ajoutéesbuildspec/buildspec_secscan.yaml, en remplacement des instructions de numérisation de CodeGuru.