Allgemeines

F: Was ist Amazon CodeGuru?

Amazon CodeGuru ist ein Entwickler-Tool, das auf Basis von Machine Learning intelligente Empfehlungen für die Verbesserung der Codequalität liefert und die teuersten Codezeilen in einer Anwendung findet.

F: Was kann ich mit Amazon CodeGuru tun?

Amazon CodeGuru hat zwei Komponenten: Amazon CodeGuru Reviewer und Amazon CodeGuru Profiler. Amazon CodeGuru Reviewer verwendet Machine Learning, um kritische Probleme und schwer zu findende Fehler während der Anwendungsentwicklung zu identifizieren und so die Codequalität zu verbessern. Amazon CodeGuru Profiler optimiert die Leistung für Anwendungen, die in der Produktion laufen, und identifiziert die teuersten Codezeilen, wodurch die Betriebskosten erheblich gesenkt werden.

F: Was sind die ersten Schritte mit Amazon CodeGuru?

Amazon CodeGuru ist jetzt allgemein verfügbar Sie können sofort in der Amazon CodeGuru-Konsole beginnen.

Um mit Amazon CodeGuru Reviewer zu beginnen, melden Sie sich bei der Amazon- CodeGuru-Reviewer-Konsole an, wo Sie ein vorhandenes Code-Repository auf GitHub, GitHub Enterprise, Bitbucket oder AWS CodeCommit zuordnen können. Nach einer einmaligen Einrichtung beginnt Amazon CodeGuru Reviewer mit der Analyse des Codes und der Bereitstellung von Empfehlungen zur Codeverbesserung direkt in der Abrufanforderung oder im Code-Repository.

Sie können auch innerhalb von Minuten mit der Profilerstellung Ihrer Anwendungen beginnen. Um mit dem Amazon CodeGuru Profiler zu beginnen, melden Sie sich bei der Amazon CodeGuru Profiler-Konsole an, wo Sie eine Profiling-Gruppe für Ihre Anwendung konfigurieren können. Starten Sie Ihre Anwendung mit dem Profiling-Agent auf der Befehlszeile oder folgen Sie den Schritten, um eine der beschriebenen benutzerdefinierten Methoden zu verwenden. Sie können Amazon CodeGuru Profiler kontinuierlich ausführen lassen, um Leistungsprobleme in Ihren Live-Anwendungen proaktiv zu erkennen.

F: In welchen AWS-Regionen ist Amazon CodeGuru verfügbar?

Eine Liste der unterstützten AWS-Regionen finden Sie in der Tabelle der AWS-Regionen. Sie enthält Informationen zur gesamten globalen AWS-Infrastruktur. Weitere Informationen erhalten Sie unter Regionen und Endpunkte in der allgemeinen AWS-Referenz.

Amazon CodeGuru Reviewer

F: Was ist Amazon CodeGuru Reviewer?

Amazon CodeGuru Reviewer ist ein automatisierter Codeüberprüfungsservice, der kritische Defekte und Abweichungen von den Best Practices für die Codierung von Java- und Python-Code identifiziert (verfügbar in der Vorschau). Es scannt die Codezeilen in einer Abrufanforderung und liefert intelligente Empfehlungen basierend auf Standards, die großen Open-Source-Projekten sowie der Amazon-Codebasis entnommen sind. Der Amazon CodeGuru Reviewer lässt sich nahtlos in bestehende Codeüberprüfungs-Workflows auf weit verbreiteten Quellcode-Kontrollsystemen wie GitHub, GitHub Enterprise, Bitbucket und AWS CodeCommit integrieren und bietet umsetzbare Empfehlungen zur Verbesserung der Codequalität.

F: Welche Programmiersprachen und Quellcode-Repositorys werden unterstützt?

Amazon CodeGuru Reviewer unterstützt derzeit Java- und Python-Code (verfügbar in der Vorschau), der in GitHub-, GitHub Enterprise-, Bitbucket- und AWS CodeCommit-Repositorys gespeichert ist.

F: Welche Probleme werden von Amazon CodeGuru Reviewer erkannt?

Amazon CodeGuru Reviewer prüft auf Parallelitätsprobleme, potenzielle Race-Bedingungen, nicht bereinigte oder böswillige Eingaben, unangemessene Verarbeitung vertraulicher Daten wie Anmeldeinformationen und Ressourcenlecks und erkennt auch Race-Bedingungen und Sackgassen im Concurrent-Code. Er schlägt außerdem bewährte AWS-, Java- und Python-Verfahren (verfügbar in der Vorschau) vor und erkennt geklonten Code, der für eine bessere Codewartbarkeit konsolidiert werden könnte.

F: Was sind die ersten Schritte mit CodeGuru Reviewer?

Besuchen Sie die Amazon CodeGuru-Konsole, um die Empfehlungen von Amazon CodeGuru Reviewer direkt in Ihre Code-Pull-Anforderungen zu integrieren. Sie können damit beginnen, indem Sie die CodeGuru-Konsole besuchen und die Schritte zum Verknüpfen Ihrer AWS CodeCommit-, GitHub-, GitHub Enterprise- und BitBucket-Repositorys befolgen, um die Empfehlungen des Amazon CodeGuru Reviewer zu erhalten. Nach der Aktivierung gibt Amazon CodeGuru Reviewer automatisch intelligente Empfehlungen als Kommentare zu Ihren Pull-Anforderungen aus, die für die verbundenen Repositorys generiert wurden.

F: Greift Amazon CodeGuru Reviewer auf meinen Code zu?

Amazon CodeGuru Reviewer benötigt Lesezugriff auf Ihren Code, um Empfehlungen zu generieren. Ihr Vertrauen, Ihre Privatsphäre und die Sicherheit Ihrer Inhalte haben für uns höchste Priorität. Wir führen geeignete Kontrollen durch, einschließlich der Verschlüsselung während der Übertragung, um den unbefugten Zugriff auf Ihre Inhalte oder deren Offenlegung zu verhindern und sicherzustellen, dass unsere Nutzung unseren Verpflichtungen gegenüber Ihnen entspricht. Weitere Informationen finden Sie unter Häufig gestellte Fragen zum AWS-Datenschutz.

F: Behält Amazon CodeGuru Reviewer eine Kopie meines Codes bei?

Nein, Amazon CodeGuru Reviewer speichert Ihren Quellcode nicht.

F: Wie wird Amazon CodeGuru Reviewer geschult, um intelligente Empfehlungen abzugeben?

Der Amazon CodeGuru Reviewer wird anhand von Rule Mining- und überwachten Machine Learning-Modellen geschult, die eine Kombination aus logistischer Regression und neuronalen Netzwerken verwenden.

Während der Schulung für Abweichungen von bewährten AWS-Methoden überprüft Amazon CodeGuru Reviewer beispielsweise Amazon-Codebasen mithilfe von Suchtechniken und ortsbezogenen Modellen auf Pull-Anforderungen, die AWS-API-Aufrufe enthalten. Es werden Codeänderungen untersucht, mit denen die Qualität des Codes verbessert werden soll, und Querverweise mit Dokumentationsdaten erstellt. Das Ergebnis ist die Erstellung eines neuen Regelsatzes, den Reviewer Ihnen bei der Überprüfung Ihres Codes als Best Practices empfiehlt.
Während der Schulung für Ressourcen- und vertrauliche Datenlecks wird eine vollständige Codeanalyse für alle Codepfade durchgeführt, die die Ressourcen- oder vertraulichen Daten verwenden, ein Feature-Set erstellt, das diese darstellt, und diese dann als Eingaben für logistische Regressionsmodelle und Faltungs Neuronale Netwerke (Convolutional Neural Networks, CNNs) verwendet.

Sowohl für regelbasierte als auch für Machine Learning-Modelle verwendet Amazon CodeGuru Reviewer das von Ihnen als Beschriftung bereitgestellte Feedback und verbessert die Qualität der Codedetektoren iterativ.

Amazon CodeGuru Reviewer Security Detector

F: Welche Programmiersprachen werden von Amazon CodeGuru Reviewer Security Detector unterstützt?

Amazon CodeGuru Reviewer Security Detector unterstützt Java 8 bis Java 11.

F: Warum sollte ich Amazon CodeGuru Reviewer Security Detector verwenden?

CodeGuru Reviewer Security Detector ist wie ein Sicherheitsexperte, der rund um die Uhr zur Verfügung steht, um Ihren Code zu überprüfen. Er hilft, bewährte Sicherheitsmethoden vor der Bereitstellung zu ermitteln.

F: Wie funktioniert Amazon CodeGuru Reviewer Security Detector?

CodeGuru Reviewer Security Detector analysiert den Code statisch, um ein Kontrollflussdiagramm zu erstellen, das alle möglichen Ausführungsarten des Codes darstellt. Anschließend wird ermittelt, wie Daten durch das Kontrollflussdiagramm fließen, um potenzielle Probleme mit Abfolgen von Vorgängen zu entdecken, die sich über Ihre Anwendung erstrecken können und mehrere Methoden und Klassen umfassen. Der Sicherheitsdetektor ermittelt beispielsweise, ob Javax.Crypto.KeyGenerator, ein symmetrischer Generator für geheime Schlüssel, vor der Verwendung initialisiert wird, auch wenn die Initialisierung und Verwendung auf unterschiedliche Weise erfolgt.

F: Welche Art von Problemen werden von Amazon CodeGuru Reviewer Security Detector erkannt?

Der CodeGuru Reviewer kann Ihnen helfen, fünf Kategorien von Code-Sicherheitsproblemen festzustellen: (1) AWS API Security Best Practices hilft Ihnen bei der Befolgung bewährter Sicherheitsmethoden bei Verwendung von APIs verschiedener AWS-Services, wie AWS EC2 und KMS. (2) Java Crypto Library Best Practices hilft Ihnen bei der Überprüfung gängiger Java-Kryptografie-Bibliotheken wie Javax.Crypto.Cipher, um sicherzustellen, dass sie korrekt initialisiert und aufgerufen werden. (3) Secure Web Applications helfen Ihnen bei der Überprüfung von Web-App-bezogenen Sicherheitsproblemen wie Cross-Site-Scripting, LDAP-Injection und Path Traversal Injection. (4) AWS Security Best Practices bringen internes Sicherheitswissen in Ihre Anwendungsfälle, wie etwa AWS Crypto-Empfehlungen.

F: Analysiert der Amazon CodeGuru Reviewer Security Detector den gesamten Code in meinem Repository?

Ja. Der CodeGuru Reviewer Security Detector analysiert Build-Artefakte und den gesamten Java-Quellcode in einem Repository, um Sicherheitsempfehlungen bereitzustellen.

Amazon CodeGuru Profiler

F: Was ist Amazon CodeGuru Profiler?

Mit Amazon CodeGuru Profiler können Entwickler das Laufzeitverhalten ihrer Anwendungen auf einfache Weise verstehen, die Leistung verbessern und die Infrastrukturkosten senken. Amazon CodeGuru Profiler analysiert das Laufzeitprofil der Anwendung und bietet intelligente Empfehlungen und Visualisierungen, die Entwicklern dabei helfen, die Leistung der wichtigsten Teile ihres Codes zu verbessern.

F: Was ist eine Profilgruppe?

Eine Profilgruppe ist eine von Ihnen erstellte logische Gruppierung. Es stellt die Grenze einer Anwendung dar. In einer Microservices-Architektur aggregiert eine Profiling-Gruppe beispielsweise die Profile der Microservices, die Sie ihr zugewiesen haben, und erstellt für alle ein Profil.

F: Ich habe bereits umfangreiche Protokollierungs-Funktionen in meinen Code integriert. Muss ich trotzdem noch profilieren?

Die Protokollierung der Ausführungszeit funktioniert nur für eine begrenzte Anzahl von Szenarien, da die Protokollierung nur die Latenzzeit (nicht die CPU-Auslastung) überwachen kann und die Implementierung zeitaufwändig ist, weil die Entwickler jede Funktion in einer Anwendung protokollieren müssen (ohne die Anwendungsleistung zu beeinträchtigen), sodass sie nicht über die erforderlichen Tools verfügen, um Anwendungen in der Produktion effektiv zu überwachen und Fehler zu beheben. Hier kommt die Profilierung ins Spiel: Amazon CodeGuru Profiler wurde entwickelt, um Daten zu allen Ereignissen, die im Verhalten der Anwendung aufgetreten sind, unabhängig von den Szenarien zu sammeln. CodeGuru Profiler verwendet eine Wissensdatenbank zu häufig auftretenden Leistungsschwächen, um automatisch Codemuster in Ihrer Live-Anwendung zu erkennen, die sich auf die Leistung auswirken. Entwickler können dann die angegebenen Empfehlungen befolgen, um die Probleme zu beheben.

F: Inwiefern unterscheidet sich Amazon CodeGuru Profiler von herkömmlichen APMs und eigenständigen Profilern?

Herkömmliche APMs liefern nützliche Daten zur Überwachung, Nachverfolgung und Anwendungsleistung. Amazon CodeGuru Profiler ergänzt diese APM-Funktionen durch Visualisierungen der Laufzeitdaten der Anwendung sowie durch umsetzbare Empfehlungen für die festgestellten Leistungsprobleme. Er nutzt auch Machine Learning, um Anomalien in Ihrem Anwendungsprofil zu erkennen und darauf aufmerksam zu machen, wobei auf die anomalen Codezeilen hingewiesen wird. Mit Amazon CodeGuru Profiler können Sie auf einfache Weise die Teile des Codes anzeigen, die die größte Chance zur Leistungsoptimierung und das höchste Einsparpotenzial bieten, und erhalten Anleitungen zu deren Behebung, ohne dass Sie über umfassende Kenntnisse im Bereich Performance Engineering verfügen müssen. Amazon CodeGuru Profiler profiliert sowohl EC2-Instances als auch Container und serverlose Rechnerplattformen einschließlich AWS Lambda sowie vor Ort. Davon abgesehen können einige eigenständige Profiler nur in Testumgebungen ausgeführt werden, während Amazon CodeGuru Profiler für die kontinuierliche Ausführung in der Produktion unter Last des Produktionsverkehrs und ohne Auswirkungen auf die Anwendung konzipiert wurde. Dies ist hilfreich bei der Behebung von Betriebsproblemen in der Produktion, einschließlich der Ausführung auf Bare-Metal-Hosts.

F: Welche Arten von Anwendungen kann ich profilieren?

Amazon CodeGuru Profiler funktioniert mit auf Amazon EC2 gehosteten Anwendungen, mit auf Amazon ECS und Amazon EKS ausgeführten containerisierten Anwendungen sowie mit auf AWS Fargate und AWS Lambda ausgeführten serverlosen Anwendungen. Darüber hinaus können Sie Amazon CodeGuru Profiler lokal ausführen.

F: Wie wirkt sich der CodeGuru Profiler auf die Leistung von auf AWS Lambda gehosteten Anwendungen aus?

Der Agent des Amazon CodeGuru Profiler verwendet die Ressourcen (CPU, Speicher), die den AWS Lambda-Funktionen zugeordnet sind. Er ist so abgestimmt, dass er die Leistung Ihrer Anwendung nur minimal beeinträchtigt, während er als prozessinterner Thread läuft. Wenn Ihre Anwendung die meisten Ressourcen für die AWS Lambda-Funktion verbraucht, sollten Sie eine Aufstockung der Ressourcen evaluieren, damit der Agent ordnungsgemäß funktionieren kann.

F: Welche Programmiersprachen werden unterstützt?

Amazon CodeGuru Profiler unterstützt derzeit Java-, Python- (Vorschau) und JVM-Sprachen wie Scala und Kotlin.

F: Wie funktioniert Amazon CodeGuru Profiler?

Amazon CodeGuru Profiler besteht aus drei Teilen: einem Agenten, dem Profiler-Service und intelligenten Empfehlungen. Der Agent wird mit Ihrer Anwendung auf der Befehlszeile gestartet und läuft als prozessinterner Thread als Teil Ihrer Anwendung. Es nimmt Daten von jeder Ihrer Service-Instances entgegen, auf denen der Agent ausgeführt wird, und sendet sie alle fünf Minuten an den Profiler-Service, der sie dann aggregiert. Anschließend veröffentlicht Amazon CodeGuru Profiler die Profildaten in interaktiven Flammendiagrammen, mit denen Sie die Leistung Ihrer Anwendung visualisieren können. Amazon CodeGuru Profiler scannt die profilierten Daten außerdem kontinuierlich und vergleicht sie mit den bewährten Verfahren von Amazon und Performance Engineering. Er warnt Sie proaktiv mit intelligenten Empfehlungen, wenn Leistungsprobleme entdeckt werden. Darüber hinaus nutzt er Machine Learning zur kontinuierlichen Analyse von Anwendungslaufzeitdaten, warnt bei Entdeckung von Anomalien im Anwendungsprofil und weist auf die anomalen Codezeilen hin.

F: Welche Ressourcen profiliert CodeGuru und welche Sprachen werden unterstützt?

CodeGuru profiliert CPU (aktive CPU und Wanduhrzeit) und Speicher (Heap-Zusammenfassung) für Java und andere JVM-Sprachen sowie CPU (Wanduhrzeit) für Python-Anwendungen.

F: Kann ich sowohl CPU- als auch Speicherinformationen von derselben Anwendung abrufen?

Ja, sobald Sie die Speicherprofilerstellung aktivieren und mit der Profilerstellung beginnen, sammelt CodeGuru Profiler sowohl CPU- als auch Speicherinformationen für Ihre Anwendung. Sie benötigen nur eine Profilierungsgruppe, um sowohl CPU- als auch Speicherdaten für eine bestimmte Anwendung abzurufen.

F: Welche Informationen zur Speicherprofilerstellung bietet CodeGuru?

CodeGuru Profiler bietet Heap-Zusammenfassungsinformationen. Die Heap-Zusammenfassung bietet eine konsolidierte Ansicht der Speicherauslastung pro Objekttyp (z. B. String, int, char[]) und der benutzerdefinierten Typen während eines bestimmten Zeitrahmens (normalerweise 5 Minuten). CodeGuru verfolgt sowohl die summierten Größen von Objekten als auch deren Anzahl. Diese Metriken werden in einem Zeitleistendiagramm dargestellt, sodass Sie Trends und Spitzen der Speicherauslastung pro Objekttyp leicht erkennen können.

F: Was kann ich mit Heap-Zusammenfassungsinformationen tun?

Die Heap-Zusammenfassung ist in zwei Szenarien nützlich. Erstens können Sie potentielle Speicherlecks erkennen. Eine ständig wachsende Speicherauslastungskurve für einen oder mehrere Objekttypen kann auf ein Leck hinweisen, das möglicherweise zu Fehlern aufgrund von Speichermangel und Anwendungsabstürzen führt. Das zweite Szenario ist, wenn Sie den Speicherbedarf Ihrer Anwendung optimieren möchten. In diesem Fall hilft Ihnen die Aufschlüsselung der Speicherauslastung nach Objekttyp, zu wissen, auf was Sie sich konzentrieren müssen. Wenn Sie beispielsweise wissen, dass einem bestimmten Objekttyp eine unerwartet hohe Speichermenge zugeordnet wurde, können Sie Ihre Analyse- und Optimierungsbemühungen auf die Teile Ihrer Anwendung konzentrieren, die für die Zuweisung und Referenzierung von Objekten dieses Typs verantwortlich sind.

Product-Page_Standard-Icons_01_Product-Features_SqInk
Erfahren Sie mehr über unsere Kunden.

Besuchen Sie die Amazon CodeGuru-Kundenseite.

Weitere Informationen 
Product-Page_Standard-Icons_02_Sign-Up_SqInk
Registrieren Sie sich und erhalten Sie ein kostenloses Konto

Sie erhalten sofort Zugriff auf das kostenlose AWS-Kontingent. 

Registrieren 
Product-Page_Standard-Icons_03_Start-Building_SqInk
Beginnen Sie mit der Entwicklung in der Konsole

Beginnen Sie mit dem Erstellen mit Amazon CodeGuru in der AWS-Managementkonsole.

Anmelden