Creazione e distribuzione automatica di un'applicazione Java su Amazon EKS utilizzando una pipeline CI/CD - Prontuario AWS

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione e distribuzione automatica di un'applicazione Java su Amazon EKS utilizzando una pipeline CI/CD

Creato da MAHESH RAGHUNANDANAN (AWS), James Radtke (AWS) e Jomcy Pappachen (AWS)

Archivio di codici: aws-cicd-java-eks

Ambiente: produzione

Tecnologie: contenitori e microservizi; CloudNative DevOps; Modernizzazione

Carico di lavoro: tutti gli altri carichi di lavoro

Servizi AWS: AWS CloudFormation; AWS CodeCommit; AWS CodePipeline; Amazon EC2 Container Registry; Amazon EKS

Riepilogo

Questo modello descrive come creare una pipeline di integrazione e distribuzione continua (CI/CD) che crea e distribuisce automaticamente un'applicazione Java con le DevSecOps pratiche consigliate in un cluster Amazon Elastic Kubernetes Service (Amazon EKS) sul cloud Amazon Web Services (AWS). Questo modello utilizza un'applicazione di saluto sviluppata con un framework Java Spring Boot e che utilizza Apache Maven.

Puoi utilizzare l'approccio di questo pattern per creare il codice per un'applicazione Java, impacchettare gli artefatti dell'applicazione come immagine Docker, eseguire la scansione di sicurezza dell'immagine e caricare l'immagine come contenitore di carichi di lavoro su Amazon EKS. L'approccio di questo pattern è utile se desideri migrare da un'architettura monolitica strettamente accoppiata a un'architettura di microservizi. L'approccio consente inoltre di monitorare e gestire l'intero ciclo di vita di un'applicazione Java, garantendo un livello di automazione più elevato e contribuendo a evitare errori o bug.

Prerequisiti e limitazioni

Prerequisiti

  • Un account AWS attivo.

  • AWS Command Line Interface (AWS CLI) versione 2, installata e configurata. Per ulteriori informazioni su questo argomento, consulta Installazione, aggiornamento e disinstallazione della versione 2 dell'interfaccia a riga di comando di AWS nella documentazione dell'interfaccia a riga di comando di AWS.

  • La versione 2 dell'interfaccia a riga di comando di AWS deve essere configurata con lo stesso ruolo IAM che crea il cluster Amazon EKS perché solo quel ruolo è autorizzato ad aggiungere altri ruoli IAM a. aws-auth ConfigMap Per informazioni e passaggi per configurare AWS CLI, consulta Configuration Basics nella documentazione di AWS CLI.

  • Ruoli e autorizzazioni di AWS Identity and Access Management (IAM) con accesso completo ad AWS CloudFormation. Per ulteriori informazioni su questo argomento, consulta Controlling access with IAM nella CloudFormation documentazione AWS.

  • Un cluster Amazon EKS esistente, con dettagli sul nome del ruolo IAM e sul ruolo IAM Amazon Resource Name (ARN) dei nodi di lavoro nel cluster EKS.

  • Kubernetes Cluster Autoscaler, installato e configurato nel tuo cluster Amazon EKS. Per ulteriori informazioni, consulta Cluster Autoscaler nella documentazione di Amazon EKS. 

  • Accesso al codice nel repository. GitHub

Nota importante

AWS Security Hub è abilitato come parte dei CloudFormation modelli AWS inclusi nel codice. Per impostazione predefinita, dopo l'attivazione di Security Hub, viene fornita una prova gratuita di 30 giorni, dopodiché il servizio AWS prevede un costo. Per ulteriori informazioni sui prezzi, consulta i prezzi di AWS Security Hub.

Versioni del prodotto

  • Helm versione 3.4.2 o successiva

  • Apache Maven versione 3.6.3 o successiva

  • BridgeCrew Checkov versione 2.2 o successiva

  • Aqua Security Trivy versione 0.37 o successiva

Architettura

Stack tecnologico

  • AWS CodeBuild

  • AWS CodeCommit

  • Amazon CodeGuru

  • AWS CodePipeline

  • Amazon Elastic Container Registry

  • Amazon Elastic Kubernetes Service

  • Amazon EventBridge

  • Centrale di sicurezza AWS

  • Servizio di notifica semplice Amazon (Amazon Simple Notification Service (Amazon SNS))

Architettura Target

""

Il diagramma mostra il flusso di lavoro seguente:

  1. Lo sviluppatore aggiorna il codice dell'applicazione Java nel ramo base del CodeCommit repository, che crea una pull request (PR).

  2. Non appena il PR viene inviato, Amazon CodeGuru Reviewer esamina automaticamente il codice, lo analizza in base alle migliori pratiche per Java e fornisce consigli allo sviluppatore.

  3. Dopo che il PR è stato unito al ramo base, viene creato un EventBridge evento Amazon.

  4. L' EventBridge evento avvia la CodePipeline pipeline, che si avvia.

  5. CodePipeline esegue la fase di CodeSecurity scansione (sicurezza continua).

  6. CodeBuild avvia il processo di scansione di sicurezza in cui i file Helm della distribuzione Dockerfile e Kubernetes vengono scansionati utilizzando Checkov e il codice sorgente dell'applicazione viene scansionato in base alle modifiche incrementali del codice. La scansione del codice sorgente dell'applicazione viene eseguita dal wrapper CLI (Command Line Interface) di CodeGuru Reviewer.

  7. Se la fase di scansione di sicurezza ha esito positivo, viene avviata la fase di compilazione (integrazione continua).

  8. Nella fase di compilazione, CodeBuild crea l'artefatto, lo impacchetta in un'immagine Docker, analizza l'immagine alla ricerca di vulnerabilità di sicurezza utilizzando Aqua Security Trivy e archivia l'immagine in Amazon ECR.

  9. Le vulnerabilità rilevate dalla fase 8 vengono caricate su Security Hub per ulteriori analisi da parte di sviluppatori o ingegneri. Security Hub fornisce una panoramica e consigli per correggere le vulnerabilità.

  10. Le notifiche e-mail relative alle varie fasi della CodePipeline pipeline vengono inviate tramite Amazon SNS.

  11. Una volta completate le fasi di integrazione continua, CodePipeline entra nella fase Deploy (distribuzione continua).

  12. L'immagine Docker viene distribuita su Amazon EKS come carico di lavoro container (pod) utilizzando i grafici Helm.

  13. Il pod dell'applicazione è configurato con Amazon CodeGuru Profiler Agent che invierà i dati di profilazione dell'applicazione (CPU, utilizzo dell'heap e latenza) ad Amazon CodeGuru Profiler, che aiuta gli sviluppatori a comprendere il comportamento dell'applicazione.

Strumenti

Servizi AWS

  • AWS ti CloudFormation aiuta a configurare le risorse AWS, effettuarne il provisioning in modo rapido e coerente e gestirle durante tutto il loro ciclo di vita su account e regioni AWS.

  • AWS CodeBuild è un servizio di build completamente gestito che ti aiuta a compilare codice sorgente, eseguire test unitari e produrre artefatti pronti per la distribuzione.

  • AWS CodeCommit è un servizio di controllo delle versioni che consente di archiviare e gestire archivi Git in modo privato, senza dover gestire il proprio sistema di controllo del codice sorgente.

  • Amazon CodeGuru Profiler raccoglie dati sulle prestazioni di runtime dalle tue applicazioni live e fornisce consigli che possono aiutarti a ottimizzare le prestazioni delle tue applicazioni.

  • Amazon CodeGuru Reviewer utilizza l'analisi dei programmi e l'apprendimento automatico per rilevare potenziali difetti difficili da trovare per gli sviluppatori e offre suggerimenti per migliorare il codice Java e Python.

  • AWS ti CodePipeline aiuta a modellare e configurare rapidamente le diverse fasi di un rilascio di software e ad automatizzare i passaggi necessari per rilasciare continuamente le modifiche al software.

  • Amazon Elastic Container Registry (Amazon ECR) è un servizio di registro di immagini di container gestito sicuro, scalabile e affidabile.

  • Amazon Elastic Kubernetes Service (Amazon EKS) ti aiuta a eseguire Kubernetes su AWS senza dover installare o gestire il tuo piano di controllo o i tuoi nodi Kubernetes.

  • Amazon EventBridge è un servizio di bus eventi senza server che ti aiuta a connettere le tue applicazioni con dati in tempo reale provenienti da una varietà di fonti. Ad esempio, funzioni AWS Lambda, endpoint di invocazione HTTP che utilizzano destinazioni API o bus di eventi in altri account AWS.

  • AWS Identity and Access Management (IAM) ti aiuta a gestire in modo sicuro l'accesso alle tue risorse AWS controllando chi è autenticato e autorizzato a utilizzarle.

  • AWS Security Hub offre una visione completa dello stato di sicurezza in AWS. Inoltre, ti aiuta a verificare il tuo ambiente AWS rispetto agli standard e alle best practice del settore della sicurezza.

  • Amazon Simple Notification Service (Amazon SNS) ti aiuta a coordinare e gestire lo scambio di messaggi tra editori e clienti, inclusi server Web e indirizzi e-mail.

  • Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.

Altri servizi

  • Helm è un gestore di pacchetti open source per Kubernetes.

  • Apache Maven è uno strumento di comprensione e gestione di progetti software.

  • BridgeCrew Checkov è uno strumento statico di analisi del codice per la scansione dei file Infrastructure as Code (IaC) alla ricerca di configurazioni errate che potrebbero portare a problemi di sicurezza o conformità.

  • Aqua Security Trivy è uno scanner completo per le vulnerabilità nelle immagini dei container, nei file system e negli archivi Git, oltre ai problemi di configurazione.

Codice

Il codice per questo pattern è disponibile nel repository. GitHub aws-codepipeline-devsecops-amazoneks

Best practice

  • Il principio del privilegio minimo è stato seguito per le entità IAM in tutte le fasi di questa soluzione. Se desideri estendere la soluzione con servizi AWS aggiuntivi o strumenti di terze parti, ti consigliamo di seguire il principio del privilegio minimo.

  • Se disponi di più applicazioni Java, ti consigliamo di creare pipeline CI/CD separate per ogni applicazione.

  • Se disponi di un'applicazione monolitica, ti consigliamo di suddividere l'applicazione in microservizi il più possibile. I microservizi sono più flessibili, semplificano la distribuzione delle applicazioni come contenitori e offrono una migliore visibilità sulla creazione e sulla distribuzione complessive dell'applicazione.

Epiche

AttivitàDescrizioneCompetenze richieste

Clona il GitHub repository.

Per clonare il repository, esegui il comando seguente.

git clone https://github.com/aws-samples/aws-codepipeline-devsecops-amazoneks
Sviluppatore di app, ingegnere DevOps

Crea un bucket S3 e carica il codice.

  1. Accedi alla Console di gestione AWS, apri la console Amazon S3 e crea un bucket S3 nella regione AWS in cui intendi distribuire questa soluzione. Per ulteriori informazioni, consulta Creazione di un bucket nella documentazione di Amazon S3.

  2. Nel bucket S3, crea una cartella denominata. code

  3. Vai al punto in cui hai clonato il repository. Per creare una versione compressa dell'intero codice con l'estensione.zip (cicdstack.zip) e convalidare il file.zip, esegui i seguenti comandi nell'ordine.

    Nota: se il python comando fallisce e indica che Python non è stato trovato, usa python3 invece.

    cd aws-codepipeline-devsecops-amazoneks python -m zipfile -c cicdstack.zip * python -m zipfile -t cicdstack.zip
  4. Carica il cicdstack.zip file nella cartella di codice che hai creato in precedenza nel bucket S3.

AWS DevOps, DevOps ingegnere, amministratore del cloud, DevOps

Crea uno CloudFormation stack AWS.

  1. Apri la CloudFormation console AWS e scegli Create stack.

  2. In Specificare modello, scegli Carica un file modello, carica il cf_templates/codecommit_ecr.yaml file, quindi scegli Avanti.

  3. In Specificare i dettagli dello stack, inserisci il nome dello stack, quindi fornisci i seguenti valori dei parametri di input:

    • CodeCommitRepositoryBranchName: Il nome del ramo in cui risiederà il codice (l'impostazione predefinita è main)

    • CodeCommitRepositoryName: Il nome del CodeCommit repository da creare.

    • CodeCommitRepositoryS3Bucket: il nome del bucket S3 in cui è stata creata la cartella del codice

    • CodeCommitRepositoryS3BucketObjKey: code/cicdstack.zip

    • ECR RepositoryName: il nome del repository Amazon ECR da creare

  4. Scegli Avanti, utilizza le impostazioni predefinite per le opzioni di configurazione dello stack, quindi scegli Avanti.

  5. Nella sezione Revisione, verifica i dettagli del modello e dello stack, quindi scegli Crea pila. Viene quindi creato lo stack, inclusi i repository CodeCommit e Amazon ECR.

  6. Prendi nota dei nomi dei repository CodeCommit e di Amazon ECR, che saranno necessari per la configurazione della pipeline Java CI/CD.

AWS DevOps, DevOps

Convalida l'implementazione dello CloudFormation stack.

  1. In Stacks sulla CloudFormation console, verifica lo stato dello CloudFormation stack che hai distribuito. Lo stato dello stack deve essere CREATE COMPLETE.

  2. Inoltre, dalla console, verifica che Amazon ECR CodeCommit sia stato effettuato il provisioning e sia pronto.

DevOps ingegnere

Eliminare il bucket S3.

Svuota ed elimina il bucket S3 che hai creato in precedenza. Per ulteriori informazioni, consulta Eliminazione di un bucket nella documentazione di Amazon S3.

AWS DevOps, DevOps
AttivitàDescrizioneCompetenze richieste

Configura i grafici Helm della tua applicazione Java.

  1. Nella posizione in cui hai clonato il GitHub repository, accedi alla cartella. helm_charts/aws-proserve-java-greeting In questa cartella, il values.dev.yaml file contiene informazioni sulla configurazione delle risorse Kubernetes che puoi modificare per le distribuzioni di container in Amazon EKS. Aggiorna il parametro del repository Docker fornendo l'ID dell'account AWS, la regione AWS e il nome del repository Amazon ECR.

    image: repository: <account-id>.dkr.ecr.<region>.amazonaws.com/<app-ecr-repo-name>
  2. Il tipo di servizio del pod Java è impostato su. LoadBalancer

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

    Per utilizzare un servizio diverso (ad esempio,NodePort), è possibile modificare i parametri. Per ulteriori informazioni, consulta la documentazione di Kubernetes.

  3. Puoi attivare Kubernetes Horizontal Pod Autoscaler modificando il parametro in. autoscaling enabled: true

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

Puoi abilitare diverse funzionalità per i carichi di lavoro Kubernetes modificando i valori nel values.<ENV>.yaml file, dove si trova il tuo ambiente di sviluppo, produzione, UAT o <ENV> QA.

DevOps

Convalida i grafici Helm per gli errori di sintassi.

  1. Dal terminale, verificate che Helm v3 sia installato nella workstation locale eseguendo il comando seguente.

    helm --version

    Se Helm v3 non è installato, installalo.

  2. Nel terminale, vai alla directory Helm charts (helm_charts/aws-proserve-java-greeting) ed esegui il seguente comando.

    helm lint . -f values.dev.yaml

    Questo controllerà i grafici Helm per eventuali errori di sintassi.

DevOps ingegnere
AttivitàDescrizioneCompetenze richieste

Crea la pipeline CI/CD.

  1. Apri la CloudFormation console AWS e scegli Create stack.

  2. In Specificare modello, scegli Carica un file modello, carica il cf_templates/build_deployment.yaml modello, quindi scegli Avanti.

  3. In Specificare i dettagli dello stack, specificate il nome dello stack, quindi fornite i seguenti valori per i parametri di input:

    • CodeBranchName: nome del ramo del CodeCommit repository, dove risiede il codice

    • EKSClusterName: nome del cluster EKS (non l'EKSClusterID)

    • EKS CodeBuildAppName: nome dell'app Helm chart () aws-proserve-java-greeting

    • WorkerNodeRoleARN EKS: ARN del ruolo IAM dei nodi di lavoro Amazon EKS

    • EKS WorkerNodeRoleName: nome del ruolo IAM assegnato ai nodi di lavoro Amazon EKS

    • EcrDockerRepository: nome del repository Amazon ECR in cui verranno archiviate le immagini Docker del codice

    • EmailRecipient: Indirizzo e-mail a cui devono essere inviate le notifiche di build

    • EnvType: Ambiente (ad esempio, dev, test o prod)

    • SourceRepoName: nome del CodeCommit repository, dove risiede il codice

  4. Seleziona Successivo. Utilizza le impostazioni predefinite in Configura le opzioni dello stack, quindi scegli Avanti.

  5. Nella sezione Revisione, verifica i dettagli del CloudFormation modello AWS e dello stack, quindi scegli Avanti.

  6. Seleziona Crea stack

  7. Durante la distribuzione CloudFormation dello stack, il proprietario dell'indirizzo e-mail che hai fornito nei parametri riceverà un messaggio per iscriversi a un argomento SNS. Per abbonarsi ad Amazon SNS, il proprietario deve scegliere il link nel messaggio.

  8. Dopo aver creato lo stack, apri la scheda Output dello stack, quindi registra il valore ARN per la chiave di output. EksCodeBuildkubeRoleARN Questo valore IAM ARN sarà richiesto in seguito per fornire al ruolo CodeBuild IAM le autorizzazioni per distribuire carichi di lavoro nel cluster Amazon EKS.

AWS DevOps
AttivitàDescrizioneCompetenze richieste

Attiva l'integrazione con Aqua Security.

Questo passaggio è necessario per caricare i risultati di vulnerabilità delle immagini Docker segnalati da Trivy su Security Hub. Poiché AWS CloudFormation non supporta le integrazioni di Security Hub, questo processo deve essere eseguito manualmente.

  1. Apri la console AWS Security Hub e accedi a Integrazioni.

  2. Cerca Aqua Security e seleziona Aqua Security: Aqua Security.

  3. Scegli Accetta risultati.

Amministratore, DevOps ingegnere di AWS
AttivitàDescrizioneCompetenze richieste

Consenti CodeBuild di eseguire comandi Helm o kubectl nel cluster Amazon EKS.

CodeBuild Per autenticarti per utilizzare Helm o kubectl i comandi con il cluster EKS, devi aggiungere i ruoli IAM a. aws-auth ConfigMapIn questo caso, aggiungi l'ARN del ruolo IAMEksCodeBuildkubeRoleARN, che è il ruolo IAM creato per consentire al CodeBuild servizio di accedere al cluster EKS e distribuire carichi di lavoro su di esso. Questa è un'attività una tantum.

Importante: la seguente procedura deve essere completata prima della fase di approvazione della distribuzione. CodePipeline

  1. Apri lo script della cf_templates/kube_aws_auth_configmap_patch.sh shell nel tuo ambiente Amazon Linux o macOS.

  2. Effettua l'autenticazione sul cluster Amazon EKS eseguendo il comando seguente.

    aws eks --region <aws-region> update-kubeconfig --name <eks-cluster-name>
  3. Esegui lo script della shell utilizzando il seguente comando, sostituendolo <rolearn-eks-codebuild-kubectl> con il valore ARN registrato EksCodeBuildkubeRoleARN in precedenza.

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

aws_authConfigMapè configurato e l'accesso è concesso.

DevOps
AttivitàDescrizioneCompetenze richieste

Verificate che la pipeline CI/CD si avvii automaticamente.

  1. La fase di CodeSecurity scansione nella pipeline di solito fallisce se Checkov rileva vulnerabilità nei grafici Dockerfile o Helm. Tuttavia, lo scopo di questo esempio è stabilire un processo di identificazione delle potenziali vulnerabilità di sicurezza anziché correggerle tramite la pipeline CI/CD, in genere un processo. DevSecOps Nel filebuildspec/buildspec_secscan.yaml, il checkov comando utilizza il --soft-fail flag per evitare errori nella 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

    Affinché la pipeline fallisca quando vengono segnalate vulnerabilità per i grafici Dockerfile e Helm, è necessario rimuovere l'--soft-failopzione dal comando. checkov Gli sviluppatori o gli ingegneri possono quindi correggere le vulnerabilità e inserire le modifiche nell'archivio del codice sorgente. CodeCommit

  2. Analogamente a CodeSecurity Scan, la fase di compilazione utilizza Aqua Security Trivy per identificare le vulnerabilità HIGH e CRITICHE delle immagini Docker prima di inviare l'applicazione ad Amazon ECR. In questo esempio, non stiamo facendo fallire la pipeline per le vulnerabilità delle immagini Docker. Nel filebuildspec/buildspec.yml, il trivy comando include il flag --exit-codecon un valore 0, motivo per cui la pipeline non fallisce quando vengono segnalate vulnerabilità HIGH o CRITICAL dell'immagine Docker.

    - 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

    Affinché la pipeline fallisca quando vengono segnalate HIGH, CRTICAL delle vulnerabilità, modificate il valore di to. --exit-code 1

    Gli sviluppatori o gli ingegneri possono quindi correggere le vulnerabilità e inserire le modifiche nell'archivio del CodeCommit codice sorgente.

  3. Le vulnerabilità delle immagini Docker segnalate da Aqua Security Trivy vengono caricate su Security Hub. Nella console AWS Security Hub, vai a Findings. Filtra i risultati con Record State = Active e Product = Aqua Security. Questo elencherà le vulnerabilità dell'immagine Docker in Security Hub. Possono essere necessari da 15 minuti a 1 ora prima che le vulnerabilità compaiano su Security Hub.

Per ulteriori informazioni sull'avvio della pipeline utilizzando CodePipeline, consulta Start a pipeline in CodePipeline, Avvia una pipeline manualmente e Avvia una pipeline on a schedule nella documentazione AWS. CodePipeline

DevOps

Approva la distribuzione.

  1. Una volta completata la fase di compilazione, c'è una porta di approvazione della distribuzione. Il revisore o un release manager devono ispezionare la build e, se tutti i requisiti sono soddisfatti, approvarla. Questo è l'approccio consigliato per i team che utilizzano la distribuzione continua per la distribuzione delle applicazioni.

  2. Dopo l'approvazione, la pipeline avvia la fase di distribuzione.

  3. Una volta completata la fase di distribuzione, il CodeBuild registro di questa fase fornisce l'URL dell'applicazione. Utilizzate l'URL per convalidare la disponibilità dell'applicazione.

DevOps

Convalida la profilazione dell'applicazione.

Una volta completata la distribuzione e distribuito il pod dell'applicazione in Amazon EKS, l'agente Amazon CodeGuru Profiler configurato nell'applicazione proverà a inviare i dati di profilazione dell'applicazione (CPU, riepilogo dell'heap, latenza e colli di bottiglia) ad Amazon Profiler. CodeGuru

Per la distribuzione iniziale di un'applicazione, Amazon CodeGuru Profiler impiega circa 15 minuti per visualizzare i dati di profilazione.

AWS DevOps

Risorse correlate

Informazioni aggiuntive

CodeGuru Profiler non deve essere confuso con il servizio AWS X-Ray in termini di funzionalità. CodeGuru Profiler è ideale per identificare le righe di codice più costose, che potrebbero causare strozzature o problemi di sicurezza, e risolverle prima che diventino un potenziale rischio. Il servizio AWS X-Ray serve per il monitoraggio delle prestazioni delle applicazioni.

In questo modello, le regole degli eventi sono associate al bus di eventi predefinito. Se necessario, è possibile estendere il pattern per utilizzare un bus di eventi personalizzato.

Questo modello utilizza CodeGuru Reviewer come strumento statico di test della sicurezza delle applicazioni (SAST) per il codice dell'applicazione. Puoi utilizzare questa pipeline anche per altri strumenti, come SonarQube Checkmarx. È possibile aggiungere le istruzioni di configurazione della scansione corrispondenti di uno qualsiasi di questi strumentibuildspec/buildspec_secscan.yaml, sostituendo le istruzioni di scansione di. CodeGuru