- Strumenti per sviluppatori›
- Amazon CodeGuru›
- Domande frequenti
Domande frequenti su Amazon CodeGuru
Domande generali
Cos'è Amazon CodeGuru?
CodeGuru contiene due componenti: Sicurezza di Amazon CodeGuru e il profilatore Amazon CodeGuru. Sicurezza di CodeGuru è uno strumento di scansione del codice basato sul machine learning e sull'analisi dei programmi che rileva le vulnerabilità di sicurezza nel codice. Sicurezza di CodeGuru analizza anche le credenziali codificate. Il profilatore CodeGuru ottimizza le prestazioni delle applicazioni eseguite in produzione e identifica le righe di codice più costose, riducendo significativamente i costi operativi.
Come si inizia ad utilizzare Amazon CodeGuru?
CodeGuru è ora disponibile al pubblico. Puoi iniziare a utilizzarlo subito nella console di Amazon CodeGuru.
In quali regioni AWS è disponibile Amazon CodeGuru?
Per le Regioni AWS supportate, consulta la tabella delle Regioni AWS per l'infrastruttura globale AWS. Per ulteriori informazioni, consulta Regioni ed endpoint in Riferimenti generali AWS.
Amazon CodeGuru Security
Cos'è Amazon CodeGuru Security?
Sicurezza di CodeGuru è uno strumento di scansione del codice basato sul machine learning e sull'analisi dei programmi che rileva le vulnerabilità di sicurezza nel codice.
Quali sintassi di programmazione supporta?
Sicurezza di CodeGuru attualmente supporta la scansione di Java, Python, JavaScript, TypeScript, C#, CloudFormation, Terraform, Go e Ruby.
Che tipo di problemi vengono rilevati da CodeGuru Security?
CodeGuru Security rileva i dieci problemi principali di OWASP (Open Worldwide Application Security Project), i 25 problemi principali CWE (Common Weakness Enumeration), l'iniezione di log, i segreti e l'uso sicuro delle API e degli SDK AWS. Consulta Amazon CodeGuru Detector Library per maggiori dettagli sulle vulnerabilità rilevate da CodeGuru Security.
Come inizio a utilizzare CodeGuru Security?
Visita la console di CodeGuru per integrare CodeGuru Security nel tuo ciclo di vita da sviluppatore. Puoi integrarlo in strumenti di integrazione e distribuzione continua (CI/CD), nella scansione dei repository e negli ambienti di sviluppo integrati (IDE).
CodeGuru Security accede al mio codice?
CodeGuru Security richiede l'accesso in sola lettura al tuo codice allo scopo di generare i suggerimenti. La tua fiducia, la tua privacy e la sicurezza dei tuoi contenuti rappresentano la nostra massima priorità. Implementiamo controlli adeguati, tra cui la crittografia durante i trasferimenti, per impedire l'accesso o la divulgazione non autorizzati dei tuoi contenuti e per garantire che l'utilizzo da parte nostra sia conforme ai nostri impegni nei tuoi confronti. Supportiamo anche le chiavi KMS del gestore clienti (CMCMK) per la crittografia. Per ulteriori informazioni, consulta le Domande frequenti sulla privacy dei dati.
CodeGuru Security conserva una copia del mio codice?
No, CodeGuru Security non archivia il tuo codice sorgente.
In che modo CodeGuru Security viene addestrato per fornire suggerimenti intelligenti?
CodeGuru Security viene addestrato utilizzando rule mining e modelli di machine learning supervisionati che utilizzano una combinazione di regressione logistica e reti neurali. Ad esempio, durante la fase di addestramento per la perdita di dati sensibili, il servizio esegue un'analisi completa del codice in cerca dei percorsi che utilizzano la risorsa o i dati sensibili, crea funzioni che li rappresentano e le utilizza come input per i modelli di regressione logistica e per le reti neurali convoluzionali.
Quali integrazioni supporta CodeGuru Security?
CodeGuru Security è integrato con la scansione del codice Amazon Inspector per Lambda. Presto saranno disponibili ulteriori integrazioni con repository e strumenti CI/CD.
Amazon CodeGuru Profiler
Cos'è il profilatore Amazon CodeGuru?
Amazon CodeGuru Profiler aiuta gli sviluppatori e gli operatori IT a comprendere in modo semplice il comportamento in runtime delle proprie applicazioni, a migliorare le prestazioni e a diminuire i costi di elaborazione. Amazon CodeGuru Profiler analizza il profilo di runtime dell'applicazione e fornisce suggerimenti intelligenti e visualizzazioni che guidano gli sviluppatori al miglioramento delle prestazioni delle parti più pertinenti del codice.
Cos'è un gruppo di profiling?
Un gruppo di profiling è un raggruppamento logico creato da te. Rappresenta i limiti di un'applicazione. Ad esempio, in un'architettura di microservizi, un gruppo di profiling aggrega i profili dei microservizi assegnati e ne produce un profilo unico.
Il codice comprende già un servizio completo di registrazione. Occorre comunque effettuare il profiling?
Registrare il tempo di esecuzione funziona solo in un numero limitato di casi perché la registrazione è solo in grado di monitorare la latenza (non l'utilizzo della CPU) e implementarlo richiede molto tempo perché gli sviluppatori devono registrare ogni funzione in un'applicazione (senza alcun impatto sulla prestazione dell'applicazione), rimanendo senza gli strumenti necessari per monitorare ed eseguire efficacemente la risoluzione dei problemi di applicazioni in produzione. Ecco dove entra in gioco la profilatura: Amazon CodeGuru Profiler è stato progettato per raccogliere i dati su qualsiasi evento che si verifica nel comportamento dell'applicazione, indipendentemente dalla situazione. CodeGuru Profiler utilizza una knowledge base di inefficienze di prestazione riscontrate più di frequente al fine di rilevare automaticamente le sequenze di codice nell'applicazione attiva che compromettono le sue prestazioni. Dunque, gli sviluppatori possono seguire i suggerimenti forniti per risolvere i problemi riscontrati.
In che modo il profilatore Amazon CodeGuru differisce dalle APM tradizionali e dai profiler autonomi?
Le APM tradizionali forniscono dati utili sul monitoraggio, sulla tracciatura e sulle prestazioni delle applicazioni. Amazon CodeGuru Profiler integra queste funzionalità APM offrendo visualizzazioni dei dati di runtime dell'applicazione e suggerimenti eseguibili per i problemi di prestazione riscontrati. Utilizza inoltre il machine learning per rilevare e avvisare riguardo ad anomalie nel profilo dell'applicazione, indicando le righe di codice anomale. Amazon CodeGuru Profiler ti consente di individuare facilmente le parti di codice che offrono le migliori opportunità di ottimizzazione delle prestazioni, nonché potenziali risparmi e ricevere indicazioni su come procedere senza dover contare su competenze specializzate in ambito tecnico. Amazon CodeGuru Profiler esegue la profilatura delle istanze EC2, dei container e delle piattaforme di calcolo serverless inclusa AWS Lambda anche in locale. Inoltre, alcuni profiler autonomi sono progettati per essere eseguiti solo in ambienti di test, mentre Amazon CodeGuru Profiler è stato progettato per l'esecuzione continua in produzione, con carichi di traffico di produzione e senza interferire con l'applicazione. Si tratta di un aspetto utile durante la fase di risoluzione dei problemi operativi in produzione, anche in caso di esecuzione su host bare metal.
Quali tipi di applicazione posso profilare?
Amazon CodeGuru Profiler funziona con le applicazioni ospitate da Amazon EC2, le applicazioni in container eseguite su Amazon ECS e Amazon EKS, nonché le applicazioni serverless in esecuzione su AWS Fargate e AWS Lambda. Inoltre, puoi eseguire il profilatore Amazon CodeGuru on-premise
In che modo il profilatore CodeGuru influisce sulle prestazioni delle applicazioni ospitate da AWS Lambda?
L'agente di Amazon CodeGuru Profiler utilizza le risorse (CPU, memoria) allocate alle funzioni di AWS Lambda. È stato messo a punto per avere un impatto minimo sulla prestazione dell'applicazione mentre viene eseguito in quanto thread in-process. Se l'applicazione consuma la maggior parte delle risorse nella funzione AWS Lambda, considera l'aumento delle risorse per abilitare il funzionamento adeguato dell'agente.
Quali linguaggi di programmazione sono supportati?
Il profilatore CodeGuru attualmente supporta i linguaggi Java, Python (in anteprima) e JVM come Scala e Kotlin.
Come funziona il profilatore Amazon CodeGuru?
Amazon CodeGuru Profiler è composto da tre parti: un agente, il servizio profiler e i suggerimenti intelligenti. L'agente viene avviato con l'applicazione sulla riga di comando e viene eseguito in forma di thread in-process come parte dell'applicazione. Raccoglie dati da ognuna delle istanze del servizio in cui l'agente è in esecuzione e li invia ogni cinque minuti al servizio profiler, dove vengono aggregati. A questo punto, Amazon CodeGuru Profiler pubblica i dati del profilo in grafici a fiamma interattivi che consentono la visualizzazione delle prestazioni della tua applicazione. Inoltre, Amazon CodeGuru Profiler analizza di continuo i dati profilati e li confronta alle best practice di Amazon e dell'ingegneria delle prestazioni. Il servizio ti invia anche suggerimenti intelligenti quando vengono rilevati problemi di prestazioni. Utilizza inoltre il machine learning per analizzare di continuo i dati del runtime dell'applicazione e allerta quando rileva anomalie nel profilo dell'applicazione e indica le righe di codice anomale.
Quali sono le risorse profilate dal profilatore Amazon CodeGuru e quali sono i linguaggi supportati?
Il profilatore CodeGuru profila CPU (CPU attiva e tempo reale) e memoria (riepilogo dell'heap) per Java e altri linguaggi JVM e CPU (tempo reale) per le applicazioni Python.
Posso ottenere informazioni su CPU e memoria dalla stessa applicazione?
Sì, una volta abilitata la profilazione della memoria e la avvii, CodeGuru Profiler raccoglierà le informazioni sia sulla memoria sia sulla CPU per l'applicazione. È necessario solo un gruppo di profiling per ottenere dati della CPU e della memoria di un'applicazione specifica.
Quali informazioni sulla profilazione della memoria fornisce il profilatore Amazon CodeGuru?
CodeGuru Profiler offre informazioni sul riepilogo dell'heap. Il riepilogo dell'heap fornisce una vista consolidata dell'utilizzo della memoria per tipo di oggetto (ad esempio, String, int, char[]) e tipi personalizzati, in un determinato arco di tempo (in genere 5 minuti). Il profilatore CodeGuru tiene traccia sia delle dimensioni totali degli oggetti che del loro numero. Questi parametri vengono presentati in un grafico cronologico, in modo da poter individuare facilmente tendenze e picchi dell'utilizzo della memoria per tipo di oggetto.
Come posso utilizzare le informazioni sul riepilogo dell'heap?
Il riepilogo dell'heap è utile in due scenari. Nel primo, puoi individuare potenziali perdite di memoria. Una curva di utilizzo della memoria in costante crescita per uno o più tipi di oggetti può indicare una perdita, con possibili conseguenti errori di memoria e arresti dell'applicazione. Nel secondo scenario è necessario ottimizzare la capacità della memoria dell'applicazione. In questo caso la suddivisione dell'utilizzo della memoria per tipo di oggetto ti aiuterà a sapere dove focalizzare l'attenzione. Ad esempio, sapendo che un'elevata quantità di memoria imprevista è stata associata a un tipo di oggetto specifico, puoi focalizzare l'analisi e le attività di ottimizzazione sulle parti dell'applicazione responsabili dell'allocazione degli oggetti di quel tipo e cui fanno riferimento.