Allgemeines
F: Was ist Amazon CodeGuru?
Amazon CodeGuru ist ein Entwickler-Tool, das intelligente Empfehlungen zur Verbesserung der Codequalität und zur Ermittlung der teuersten Codezeilen einer Anwendung bereitstellt.
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 und automatisierte Logik, 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 bewährten Methoden für die Codierung von Java- und Python-Code identifiziert. 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, 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. Sie schlägt außerdem bewährte AWS-, Java- und Python-Verfahren vor und erkennt geklonten Code, der für eine bessere Wartbarkeit des Codes 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 bewährte Methode empfiehlt.
Während der Schulung für Ressourcen- und vertrauliche Datenlecks wird eine vollständige Code-Analyse für alle Code-Pfade durchgeführt, die die Ressourcen- oder sensiblen Daten verwenden, ein Feature-Set erstellt, das diese darstellt, und diese dann als Eingaben für logistische Regressionsmodelle und Konvolutional-neutrale Netzwerke (Convolutional Neural Networks, CNNs) verwendet.
Bei Code-Inkonsistenzen werden die Modelle entweder während des vollständigen oder inkrementellen Code-Überprüfungen trainiert. Nachdem ein Kunde eine Überprüfung ausgelöst hat, verwenden diese Modelle eine Reihe von Data-Mining- und Machine-Learning-Techniken, um den Datensatz zu erstellen, den Grund für die Codemuster hervorzuheben und Empfehlungen zu geben, die auf den Code des Kunden zugeschnitten sind.
Sowohl für regelbasierte als auch für Machine-Learning-Modelle verwendet Amazon CodeGuru Reviewer das von Ihnen als Markierung bereitgestellte Feedback und verbessert die Qualität der Code-Detektoren iterativ.
F: Wie werden Open-Source-Codeanalysetools in CodeGuru Reviewer integriert?
Amazon CodeGuru Reviewer befolgt Regeln von drei Quellen: (1) CodeGuru-Reviewer-Regeln sind ein integraler Bestandteil des Dienstes und wurden zur Verwendung von Machine Learning und automatisiertem Denken entwickelt, um Code auf Codequalität und Sicherheitsprobleme zu analysieren. (2) Eine verwaltete Version von Bandit, einem Open-Source-Tool zur Code-Analyse, das dazu verwendet wird, Sicherheitsprobleme in Python-Code zu finden, ist in CodeGuru Reviewer integriert. (3) Eine verwaltete Version von Infer, einem Open-Source-Tool zur Code-Analyse, das dazu verwendet wird, Parallelität und andere Probleme in Java-Code zu finden, ist ebenfalls in CodeGuru Reviewer integriert. CodeGuru Reviewer analysiert Ihren Code anhand von Regeln aus allen Quellen (je nach Programmiersprache) und hat einen einfache Preisgestaltung, die alle durchgeführten Analysen beinhaltet.
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 und Python 3 und neuere Versionen.
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 stellt zum Beispiel fest, ob Javax.Crypto.KeyGenerator oder crypto.secrets in Python – beides Generatoren für symmetrische geheime Schlüssel – vor dem Benutzen initialisiert werden, auch wenn die Initialisierung und die Nutzung auf unterschiedliche Weise erfolgen.
F: Welche Art von Problemen werden von Amazon CodeGuru Reviewer Security Detector erkannt?
CodeGuru Reviewer kann Ihnen bei fünf Kategorien von Code-Sicherheitsproblemen helfen: (1) Bewährte Methoden für die AWS-API-Sicherheit helfen Ihnen, die bewährten Sicherheitspraktiken zu befolgen, wenn Sie APIs verschiedener AWS-Services wie AWS EC2 und KMS verwenden (2) Bewährte Methoden für Java- und Python-Kryptobibliotheken helfen Ihnen, gängige Java-Kryptobibliotheken wie Javax.Crypto.Cipher und das integrierte Hashing- oder Kryptomodul von Drittanbietern (z. B. cryptography) in Python zu kontrollieren, um sicherzustellen, dass sie korrekt initialisiert und aufgerufen werden (3) Sichere Webanwendungen helfen Ihnen bei der Überprüfung von Sicherheitsfragen im Zusammenhang mit Webanwendungen, wie z. B. Cross-Site-Scripting, LDAP-Injection und Path-Traversal-Injection (4) AWS Security bewährte Methoden bringen internes Sicherheitswissen, wie z. B. AWS Crypto-Empfehlungen, in Ihre Anwendungsfälle ein.
F: Analysiert der Amazon CodeGuru Reviewer Security Detector den gesamten Code in meinem Repository?
Ja, CodeGuru Reviewer Security Detector analysiert Build-Artefakte und den gesamten Java-Quellcode in einem Repository, um Sicherheitsempfehlungen bereitzustellen.
Amazon-CodeGuru-Reviewer-CI/CD-Integrationen
F: Welche CI/CD-Anbieter unterstützt CodeGuru?
CodeGuru unterstützt GitHub-Aktionen für die CI/CD-Integration.
F: Wie hilft die Integration von CodeGuru in meine CI/CD-Pipeline, meinen Code zu verbessern?
Durch die Integration von CodeGuru Reviewer in Ihre CI/CD-Pipeline können Sie den Codeüberprüfungsprozess für Codequalität und Sicherheitsempfehlungen einfach automatisieren. Sie können es so konfigurieren, dass es bei Pull-/Merge-Anforderungen, Push oder geplanten Ausführungen Ihrer Pipeline ausgeführt wird. Die Integration stellt sicher, dass Sie keine Empfehlung verpassen und die Qualität Ihres Codes sowie potenzielle Sicherheitslücken kontinuierlich überwachen.
F: Wie richte ich die CI/CD-Integration mit GitHub ein?
Sie können die CodeGuru Reviewer GitHub Action auf dem GitHub Marketplace anzeigen, indem Sie hier klicken. Befolgen Sie die Anweisungen auf der Marketplace-Seite, um CodeGuru in Ihren GitHub-CI-Workflow zu integrieren. Weitere Details finden Sie in der Dokumentation.
Amazon CodeGuru Profiler
F: Was ist Amazon CodeGuru Profiler?
Mit Amazon CodeGuru Profiler können Entwickler und IT-Betreiber 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 Amazon CodeGuru Profiler 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 Amazon CodeGuru Profiler?
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.

Besuchen Sie die Amazon CodeGuru-Kundenseite.

Sie erhalten sofort Zugriff auf das kostenlose AWS-Kontingent.

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