Domande generali

D: Cos'è Amazon CodeGuru?

Amazon CodeGuru è uno strumento per sviluppatori che fornisce suggerimenti intelligenti per migliorare la qualità del codice e identificare le righe di codice più costose di un'applicazione.

D: Che cosa è possibile fare con Amazon CodeGuru?

Amazon CodeGuru contiene due componenti: Amazon CodeGuru Reviewer e Amazon CodeGuru Profiler. Amazon CodeGuru Reviewer utilizza il machine learning e il ragionamento automatizzato per identificare i problemi critici e i bug difficili da trovare durante lo sviluppo dell'applicazione al fine di migliorare la qualità del codice. Amazon CodeGuru Profiler ottimizza la prestazione delle applicazioni eseguite in produzione e identifica le righe di codice più costose, riducendo significativamente i costi operativi.

D: Come si inizia ad utilizzare Amazon CodeGuru?

Amazon CodeGuru è ora generalmente disponibile. È possibile iniziare ad utilizzarlo subito nella console di Amazon CodeGuru.

Per iniziare a utilizzare Amazon CodeGuru Reviewer, accedi alla console di Amazon CodeGuru Reviewer. Qui potrai associare un repository di codice esistente su GitHub, GitHub Enterprise, Bitbucket o AWS CodeCommit. Dopo una fase di configurazione singola, Amazon CodeGuru Reviewer inizia ad analizzare il codice e a fornire consigli su come migliorarlo direttamente all'interno della richiesta pull o del repository del codice.

Puoi anche avviare la profilatura delle tue applicazioni in pochi minuti. Per iniziare ad utilizzare Amazon CodeGuru Profiler, accedi alla console di CodeGuru Profiler. Qui è possibile configurare un gruppo di profiling per la tua applicazione. Avvia l'applicazione con l'agente di profilatura sulla riga di comando o segui i passaggi per utilizzare uno dei metodi personalizzati descritti. È possibile consentire l'esecuzione continua di Amazon CodeGuru Profiler così da poter rilevare in maniera proattiva i problemi di prestazione nelle applicazioni attive.

D: 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 la pagina Regioni ed endpoint nel documento AWS General Reference.

Amazon CodeGuru Reviewer

D: Cos'è Amazon CodeGuru Reviewer?

Amazon CodeGuru Reviewer è un servizio automatizzato per la revisione del codice che identifica difetti critici e la mancata conformità alle best practice di programmazione per il codice Java e Python. Il servizio analizza le righe di codice all'interno di una richiesta pull e fornisce suggerimenti intelligenti in base agli standard appresi dai progetti open source più importanti e dalla base di codice Amazon. Amazon CodeGuru Reviewer si integra in modo perfetto con i flussi di lavoro di revisione del codice esistenti sui sistemi di controllo del codice sorgente più utilizzati, come GitHub, GitHub Enterprise, Bitbucket e AWS CodeCommit. Inoltre, fornisce suggerimenti eseguibili per migliorare la qualità del codice.

D: Quali linguaggi di programmazione e repository di codice sorgente sono supportati?

Al momento, Amazon CodeGuru Reviewer supporta il codice Java e Python archiviato su GitHub, GitHub Enterprise, Bitbucket e i repository di AWS CodeCommit.

D: Quali tipi di problemi vengono rilevati da Amazon CodeGuru Reviewer?

Amazon CodeGuru Reviewer verifica la presenza di problemi di concorrenza, di potenziali race condition, di input impuri o dannosi o di un trattamento inappropriato di dati sensibili come le credenziali e la perdita di risorse. Inoltre, rileva le race condition e i deadlock nel codice concorrente. Suggerisce inoltre le best practice AWS, Java e Python e rileva i codici clonati che potrebbero essere consolidati per una migliore manutenibilità del codice.

D: Come posso iniziare a utilizzare Amazon CodeGuru Reviewer?

Accedi alla console di Amazon CodeGuru per integrare i suggerimenti di Amazon CodeGuru Reviewer direttamente all'interno delle richieste pull del tuo codice. È possibile iniziare accedendo alla console di CodeGuru e seguendo i passaggi per associare i repository di AWS CodeCommit, GitHub, GitHub Enterprise e Bitbucket per ricevere i suggerimenti di Amazon CodeGuru Reviewer. Una volta abilitato, Amazon CodeGuru Reviewer fornirà automaticamente suggerimenti intelligenti sotto forma di commenti sulle richieste pull generate per i repository connessi.

D: Amazon CodeGuru Reviewer accede al mio codice?

Amazon CodeGuru Reviewer 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 gli accessi non autorizzati e la divulgazione dei contenuti e per garantire che l'utilizzo da parte nostra sia conforme ai nostri impegni nei tuoi confronti. Per ulteriori informazioni, consulta le Domande frequenti sulla privacy dei dati.

D: Amazon CodeGuru Reviewer memorizza una copia del mio codice?

No, Amazon CodeGuru Reviewer non archivia il tuo codice sorgente.

D: In che modo Amazon CodeGuru Reviewer viene istruito per fornire suggerimenti intelligenti?

Amazon CodeGuru Reviewer viene istruito tramite modelli di regole di associazione e di machine learning soggetti a supervisione che uniscono regressione logistica e reti neurali.

Ad esempio, durante la fase di istruzione per il rilevamento della mancata conformità alle best practice AWS, Amazon CodeGuru Reviewer effettua il mining delle basi di codici Amazon tramite tecniche di ricerca e modelli sensibili alla località per le richieste pull che includono chiamate API di AWS. Il servizio analizza le modifiche al codice apportate per migliorarne la qualità e ne effettua i riferimenti incrociati rispetto ai dati della documentazione. Il risultato è la creazione di un nuovo insieme di regole che Reviewer ti suggerisce come best practice durante l'analisi del tuo codice.

Durante la fase di istruzione per la perdita di risorse e 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.

Per le incoerenze del codice, i modelli vengono addestrati durante la revisione del codice completa o incrementale. Dopo che un cliente ha attivato una revisione, questi modelli utilizzano una serie di tecniche di data mining e machine learning per creare il set di dati, evidenziare il motivo dei modelli di codice e formulare suggerimenti personalizzati in base al codice del cliente.

Sia per il modello basato su regole che per quello basato sul machine learning, Amazon CodeGuru Reviewer impiega il feedback fornito sotto forma di etichette e migliora in maniera iterativa la qualità dei rilevatori del codice.

Q: Come sono integrati gli strumenti di analisi del codice open-source in CodeGuru Reviewer?

Amazon CodeGuru Reviewer incorpora regole da tre fonti (1) le regole di CodeGuru Reviewer sono parte integrante del servizio e progettate per utilizzare il machine learning e il ragionamento automatico per analizzare il codice in termini di qualità e problemi di sicurezza dello stesso, (2) una versione gestita di Bandit, uno strumento di analisi del codice open source progettato per trovare problemi di sicurezza nel codice Python, è integrato in CodeGuru Reviewer, e (3) una versione gestita di Infer, uno strumento di analisi del codice open source progettato per trovare concurrency e altri problemi nel codice Java, è anch’essa integrata in CodeGuru Reviewer. CodeGuru Reviewer analizza il tuo codice usando regole da tutte le fonti (come applicabile al linguaggio di programmazione) ed è caratterizzato da un prezzo semplice che include tutte le analisi effettuate.

Amazon CodeGuru Reviewer Security Detector

Q: Quali linguaggi di programmazione sono supportati da Amazon CodeGuru Reviewer Security Detector?

Amazon CodeGuru Reviewer Security Detector supporta da Java 8 fino a Java 11 e Python 3 e successivi. 

Q: Qual è il vantaggio di utilizzare Amazon CodeGuru Reviewer Security Detector?

Con CodeGuru Reviewer Security Detector è come avere un esperto della sicurezza reperibile 24/7 cui far revisionare il codice. Aiuta a identificare le best practice per la sicurezza prima della distribuzione.

D: Come funziona Amazon CodeGuru Reviewer Security Detector?

CodeGuru Reviewer Security Detector analizza staticamente il codice per creare un grafico del flusso di controllo che rappresenta tutti i modi possibili in cui è possibile eseguire il codice. Quindi rileva come avviene il flusso dei dati tramite il grafico del flusso di controllo per individuare potenziali problemi relativi alle sequenze delle operazioni che potrebbero estendersi nell'applicazione, coinvolgendo più metodi e classi. Ad esempio, il rilevatore della sicurezza determina se Javax.Crypto.KeyGenerator o crypto.secrets in Python, entrambi generatori di chiavi segrete simmetriche, vengono avviati prima dell'uso, anche se l'inizializzazione e l'uso hanno luogo con metodi diversi.

Q: Quali tipi di problemi vengono rilevati da Amazon CodeGuru Reviewer Security Detector?

CodeGuru Reviewer può aiutarti con cinque categorie di problemi di sicurezza dei codici: (1) le best practice per la sicurezza delle API AWS ti indicano le migliori prassi da seguire quando utilizzi API di vari servizi AWS, come AWS EC2 e KMS; (2) le best practice di Java e Python Crypto Library ti aiutano a verificare le librerie di crittografia Java comuni, come Javax.Crypto.Cipher e il modulo di hashing o crypto integrato e di terze parti (ad esempio crittografia) in Python, per assicurare che vengano inizializzate e denominate correttamente; (3) le applicazioni Web sicure ti consentono di verificare problemi di sicurezza correlati alle app Web, come il cross-site scripting (XSS), l'injection LDAP e quella trasversale del percorso; (4) le best practice per la sicurezza di AWS forniscono competenze sulla sicurezza interna, come i consigli su AWS Crypto, nei casi d'uso.

Q: Amazon CodeGuru Reviewer Security Detector analizza tutto il codice nel mio repository?

Sì, CodeGuru Reviewer Security Detector analizza i manufatti e tutti i codici sorgente Java all'interno di un repository per fornire suggerimenti sulla sicurezza.

Integrazioni CI/CD per Amazon CodeGuru Reviewer

D: Quali provider CI/CD sono supportati da CodeGuru?

CodeGuru supporta Azioni GitHub per integrazione CI/CD.

D: In che modo l'integrazione di CodeGuru nella mia pipeline CI/CD aiuta a migliorare il mio codice?

Integrando CodeGuru Reviewer nella tua pipeline CI/CD, puoi facilmente automatizzare il processo di revisione del codice sia per la qualità del codice stesso che per i suggerimenti per la sicurezza. Puoi configurarlo perché sia eseguito su richieste pull/merge, push o esecuzioni pianificate della pipeline. L'integrazione ti assicura di non perdere mai una raccomandazione e di monitorare continuamente la qualità del tuo codice e le potenziali vulnerabilità della sicurezza.

D: Come posso configurare l’integrazione CI/CD con GitHub?

Puoi visualizzare l’azione GitHub di CodeGuru Reviewer su GitHub Marketplace facendo clic qui. Segui le istruzioni sulla pagina del marketplace per integrare CodeGuru nel flusso di lavoro CI GitHub. Per maggiori dettagli, consulta la nostra documentazione.

Amazon CodeGuru Profiler

D: Cos'è Amazon CodeGuru Profiler?

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.

D: 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.

D: Il codice comprende già un servizio completo di registrazione. Occorre comunque effettuare la profilatura?

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.

D: In che modo Amazon CodeGuru Profiler 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.

D: Quali tipi di applicazione è possibile 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 Amazon CodeGuru Profiler in locale.

D: In che modo CodeGuru Profiler 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.

D: Quali linguaggi di programmazione sono supportati?

Amazon CodeGuru Profiler attualmente supporta i linguaggi Java, Python (in anteprima) e JVM come Scala e Kotlin.

D: Come funziona Amazon CodeGuru Profiler?

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.

D: Quali sono le risorse profilate da Amazon CodeGuru Profiler e quali sono i linguaggi supportati?

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.

D: 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.

D: Quali informazioni sulla profilazione della memoria fornisce Amazon CodeGuru Profiler?

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). 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.

D: 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.

Standard Product Icons (Features) Squid Ink
Scopri di più sui nostri clienti

Visita la pagina dei clienti di Amazon CodeGuru.

Ulteriori informazioni 
Sign up for a free account
Registrati per creare un account gratuito

Ottieni l'accesso immediato al piano gratuito di AWS. 

Registrati 
Standard Product Icons (Start Building) Squid Ink
Inizia a creare nella console

Inizia subito a utilizzare Amazon CodeGuru nella console di gestione AWS.

Accedi