Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Automatisieren Sie die Generierung von Lambda-Testereignissen mit Amazon Bedrock AgentCore
Ishita Gupta und Kriti Gupta, Amazon Web Services
Zusammenfassung
Dieses Muster bietet einen AI-powered Ansatz zur automatischen Generierung umfassender Testfälle für AWS Lambda Funktionen mithilfe der generativen KI-Funktionen von Amazon Bedrock. Dieses Muster implementiert eine auf Amazon Bedrock bereitgestellte Architektur mit drei Agenten (Analyzer, Generator und Validator), die den tatsächlichen Lambda-Funktionscode analysiert AgentCore , um input/output Muster zu extrahieren, und positive, negative und Randfall-Testszenarien mit realistischen Daten generiert.
Die Architektur etabliert einen intelligenten Workflow, bei dem der Analyzer Agent Lambda-Code mithilfe von Amazon Bedrock abruft und analysiert, der Generator Agent Testfälle auf der Grundlage erlernter Muster erstellt und der Validator Agent die Qualität durch Deduplizierung und Rangfolge sicherstellt. Ein DynamoDB-based Amazon-Speicher ermöglicht kontinuierliches Lernen aus Benutzerfeedback und verbessert so im Laufe der Zeit die Genauigkeit der Testgenerierung. Amazon Cognito bietet eine sichere Benutzerauthentifizierung mit API-Autorisierung auf Basis von JSON Web Token (JWT). Amazon Bedrock Guardrails bieten schnelle Angriffsfilterung, Redaktion vertraulicher Informationen und Durchsetzung der Inhaltssicherheit bei allen Amazon Bedrock-API-Aufrufen. Wichtigste Funktionen:
Multi-Language Unterstützung: Python-, Java-, C#- und Ruby Lambda-Funktionen JavaScript/TypeScript
Intelligentes Code-Chunking: Teilt automatisch große Codebasen zur Analyse in überschaubare Blöcke auf
Parallele Verarbeitung: Gleichzeitige Amazon Bedrock-API-Aufrufe sorgen für eine schnellere Testgenerierung (5 gleichzeitige Worker für die Codeanalyse, parallele Testgenerierung pro Chunk)
Target-Specific Analyse: Konzentrieren Sie sich auf bestimmte Funktionen, Klassen oder Dateien im Lambda-Code
Pattern Learning: DynamoDB-based Amazon-Speicherspeicher mit zielspezifischem und globalem Musterspeicher
Vermeidung von Ablehnungen: Lernt aus abgelehnten Testfällen, um häufige Fehler zu vermeiden
Fortsetzungsmechanismus: Behandelt unvollständige Amazon Bedrock-Antworten mit automatischer Fortsetzung.
Muster ignorieren: Schließt Testdateien, Abhängigkeiten und Nicht-Codedateien von der Analyse aus.
Serverlose Bereitstellung: Läuft auf Amazon Bedrock mit Authentifizierung AgentCore Cognito-based
Sicherheitsvorkehrungen: Amazon Bedrock Guardrails für schnelle Angriffsfilterung, Redaktion personenbezogener Daten (PII), Inhaltssicherheit und Blockierung verweigerter Themen bei allen KI-Aufrufen
Dieses Muster ist ideal für Entwicklungsteams und Organisationen, die Lambda-Tests beschleunigen, die Testabdeckung verbessern und während der Testgenerierung eine hohe Codequalität aufrechterhalten möchten. AI-assisted Dieses Muster verwendet von AWS verwaltete Services, um die Testerstellung zu vereinfachen, die Qualität durch Lernen zu verbessern und es zu skalieren, um den sich ändernden Testanforderungen gerecht zu werden.
Voraussetzungen und Einschränkungen
Voraussetzungen
Um dieses Muster erfolgreich zu implementieren, stellen Sie sicher, dass die folgenden Bedingungen erfüllt sind:
Ein aktives AWS-Konto — Ein AWS-Konto mit Berechtigungen zum Zugriff auf Lambda-Funktionen, zum Aufrufen von Amazon Bedrock-Modellen, zum Erstellen von DynamoDB-Tabellen, zum Verwalten von Cognito-Benutzerpools und zum Bereitstellen von Amazon Bedrock-Agenten. AgentCore
Zugriff auf das Amazon Bedrock-Modell — Anthropic Claude Sonnet 4 (us.anthropic.claude-sonnet-4-6) ist in Ihrer AWS-Region aktiviert. Anweisungen zur Einrichtung finden Sie unter Modellzugriff in der Amazon Bedrock-Dokumentation. https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html
Eine Entwicklungsumgebung, die besteht aus:
- AWS CLI ist installiert und konfiguriert
- Git
zum Klonen des Repositorys AWS-Lambda-Funktionen — Mindestens eine bereitgestellte Lambda-Funktion mit zugänglichem Quellcode zur Analyse. Die Funktion muss Quelldateien (.py, .js, .java, .cs, .rb) im Bereitstellungspaket enthalten, nicht nur kompilierten Bytecode.
Unterstützte Lambda-Laufzeiten:
- Python 3.x (alle Versionen)
- Node.js (JavaScript/TypeScript)
- Java 8, 11, 17, 21 (erfordert .java-Quelldateien im Bereitstellungspaket)
- .NET Core/.NET 6+ (C#) (benötigt .cs-Quelldateien im Bereitstellungspaket)
- Ruby 2.7, 3.2
Einschränkungen
Dies erfordert Zugriff auf das Amazon Bedrock-Modell in der Region US-East-1 für Claude Sonnet 4.6. AWS Lambda-Funktionen können sich in jeder Region befinden.
Musterdaten in Amazon DynamoDB laufen nach 90 Tagen ab (konfigurierbar über Time to Live (TTL)), um die Relevanz zu wahren und die Kosten zu kontrollieren.
Java- und C#-Lambda-Funktionen müssen Quelldateien (.java, .cs) in den Bereitstellungspaketen enthalten. Compiled-only Pakete (.class, .dll) können nicht analysiert werden.
Das System implementiert eine speicherinterne Ratenbegrenzung pro Benutzer (5 Anfragen pro 60 Sekunden). Bei verteilten Bereitstellungen mit mehreren AgentCore Instanzen müsste die Ratenbegrenzung aus Konsistenzgründen auf DynamoDB oder Redis verschoben werden.
Einige AWS-Services sind nicht in allen AWS-Regionen verfügbar. Informationen zur Verfügbarkeit in Regionen finden Sie unter AWS-Services nach Regionen
. Informationen zu bestimmten Endpunkten finden Sie auf der Seite Service-Endpunkte und Kontingente und wählen Sie den Link für den Service.
Versionen der Produkte
Anthropisches Claude-Sonett 4 (us.anthropic.claude-sonnet-4-6)
bedrock-agentcore 1.4.7 oder höher
bedrock-agentcore-starter-toolkit 0.3.3 oder höher
Architektur
Zielarchitektur
Das folgende Diagramm zeigt die Architektur und den Arbeitsablauf für dieses Muster:

In diesem Arbeitsablauf:
Der Benutzer gibt Eingaben ein: Der Entwickler interagiert mit der lokal ausgeführten Streamlit-Benutzeroberfläche (app.py), gibt den Namen der Lambda-Funktion, optionale benutzerdefinierte Anweisungen für die Testgenerierung, einen Zielfilter, um sich auf bestimmte functions/classes /files zu konzentrieren, und ignoriert Muster, um Testdateien oder Abhängigkeiten auszuschließen.
Cognito-Authentifizierung: Die Anwendung authentifiziert die Anfrage bei Cognito und gibt JWT (Token) an Streamlit zurück. ID/Access
AgentCore API-Aufruf: Streamlit ruft die AgentCore API mit Bearer Token + Payload (Funktionsname, Filter, Anweisungen, Ignoriermuster) auf.
JWT-Validierung: Die AgentCore API validiert JWT mithilfe der Cognito-Token-Signatur.
Routing von Anfragen: Die AgentCore API leitet die Anfrage an den Lambda Test Generator-Workflow weiter (Runtime). AgentCore
Codeanalyse-Anfrage: Analyzer Agent initiiert eine Anfrage, um den Code und die Metadaten der Ziel-Lambda-Funktion abzurufen.
AWS-Authentifizierung für Lambda Access: Boto3 authentifiziert sich mithilfe der AgentCore Ausführungsrolle bei AWS und fordert Lesezugriffsberechtigungen an.
AWS-Lambda-Codeabruf und -verarbeitung: Die IAM-Rolle autorisiert den Zugriff und ruft den Lambda-Funktionscode als ZIP-Datei ab, extrahiert Quelldateien, filtert Abhängigkeiten (node_modules, venv usw.) und Nicht-Code-Dateien heraus, wendet benutzerdefinierte Ignoriermuster an und zerlegt Code in überschaubare Teile.
Amazon Bedrock-Authentifizierung: Der Boto3 Amazon Bedrock-Client authentifiziert sich mit AWS IAM für den Zugriff auf Amazon Bedrock und fordert Modellberechtigungen für die Verwendung von Anthropic Claude Sonnet 4.6 an.
AI-Powered Codeanalyse: Die IAM-Rolle autorisiert und sendet Codeblöcke an Amazon Bedrock (us-east-1) mithilfe von Anthropic Claude Sonnet 4 (us.anthropic.claude-sonnet-4-6), wobei Amazon Bedrock Guardrail für schnelle Angriffsfilterung und Inhaltssicherheit angewendet wird. Amazon Bedrock führt eine erweiterte Regex + LLM-Analyse durch, um tatsächliche Eingabemuster (z. B. event ['body'], headers ['Authorization']), Ausgabemuster (z. B. statusCode, Antworttextstruktur), Abhängigkeiten, Fehlerbehandlungsmuster und Randfälle aus dem Code zu extrahieren.
Analyseergebnisse werden verpackt: Analyzer Agent packt die Analyseergebnisse in ein AnalysisResult Objekt, das Codeblöcke, Eingabemuster, Ausgabemuster, Abhängigkeiten, Fehlermuster und Metadaten enthält, und übergibt sie dann an den Generator Agent.
Der Testgenerierungsprozess beginnt: Der Generator Agent empfängt die Analyseergebnisse und initiiert eine Anforderung zur Generierung von Testfällen. Zunächst fragt er den DynamoDB-Speicher nach historischen Mustern ab, aus denen gelernt werden kann.
Amazon DynamoDB-Authentifizierung für Speicherzugriff: Der Boto3 DynamoDB-Client authentifiziert sich bei AWS IAM, um Lesezugriffsberechtigungen zum Abrufen gespeicherter Muster zu erhalten.
Historische Muster werden aus der Datenbank abgerufen: Die IAM-Rolle autorisiert und fragt die DynamoDB-Speichertabelle (Lambda-Testcase-Memory) ab, um zuvor akzeptierte Muster und abgelehnte Muster (fehlgeschlagene Tests mit Ablehnungsgründen) für die spezifische Lambda-Funktion abzurufen.
Amazon Bedrock-Authentifizierung für die Testgenerierung: Der Boto3 Amazon Bedrock-Client authentifiziert sich erneut mit AWS IAM für den Amazon Bedrock-Zugriff, um Testfälle zu generieren.
Generierung von KI-Testfällen: Die IAM-Rolle autorisiert und sendet Analyseergebnisse in Kombination mit Speichermustern an Amazon Bedrock. Amazon Bedrock generiert Testfallschemas mit realistischen Eingabeereignissen, die auf tatsächlichen Codemustern basieren. Dabei werden positive Tests (35%), negative Tests (35%) und Randfälle (30%) generiert. Die Generierung erfolgt aus Effizienzgründen pro Block parallel, wendet gelernte Muster aus dem Speicher an, vermeidet abgelehnte Muster und generiert bei großen Codebasen bei Bedarf Blöcke. Alle Bedrock converse () -Aufrufe beinhalten GuardRailConfig zur sofortigen Filterung von Angriffen, zur Bearbeitung personenbezogener Daten und zur Durchsetzung verweigerter Themen.
Die Testvalidierung beginnt: Generator Agent leitet die generierten Testfallkandidaten zur Qualitätskontrolle, Deduplizierung und endgültigen Auswahl an den Validator Agent weiter.
Der Validierungsprozess ist konfiguriert: Der Validator Agent empfängt die Testkandidaten und leitet den Validierungsprozess ein. Er fordert den Zugriff auf den DynamoDB-Speicher zur Bewertung und Validierung an.
DynamoDB-Authentifizierung zur Validierung: Der Boto3 DynamoDB-Client authentifiziert sich bei AWS IAM für den Lesezugriff auf die Abfrage von Speichermustern zur Bewertung der Validierung.
Die Testqualität wird bewertet: Die IAM-Rolle autorisiert und verwendet den DynamoDB-Speicher, um Testfälle auf der Grundlage früherer Mustererfolgsraten, Funktionsabdeckung und Codekomplexität zu bewerten. Validator führt die Strukturvalidierung, Deduplizierung mithilfe von Pattern-Hashing, Qualitätsbewertungen mit Konfidenzerhöhungen für Handlerfunktionen und Fehlerbehandlung durch, wählt die Diversität aus, um verschiedene Chunks und Testtypen abzudecken, und wählt die besten N Testfälle mit der höchsten Qualität und den unterschiedlichsten aus.
Letzte Testfälle wurden zurückgegeben an AgentCore: Validator Agent gibt die endgültigen validierten Testfälle mit Metadaten (Konfidenzwerte, Beschreibungen, Eingabeereignisse, Kategorien) an den Hauptorchestrator zurück, der sie formatiert und an die Amazon AgentCore Bedrock-API zurücksendet
An die Benutzeroberfläche übermittelte Ergebnisse: Die AgentCore API sendet die generierten Tests zurück an die Streamlit-Benutzeroberfläche, um sie mit Analysezusammenfassung, Generierungsmetadaten und Testfalldetails anzuzeigen.
Benutzer überprüft und gibt Feedback: Der Entwickler überprüft die angezeigten Testfälle in der Streamlit-Benutzeroberfläche, bewertet jeden Test auf Qualität und Relevanz, akzeptiert gute Testfälle oder lehnt schlechte ab, mit bestimmten Ablehnungsgründen (missing_auth_headers, wrong_status_code, unrealistic_data, missing_required_fields, incorrect_event_source usw.) und optionalen benutzerdefinierten Anmerkungen, die die Ablehnung erläutern, und sendet dann Feedback.
Feedback wird an das System übermittelt: Streamlit UI sendet das gesammelte Feedback (accepted/rejected Status, Ablehnungsgründe, benutzerdefinierte Notizen) an die AgentCore API (save_feedback).
AgentCore leitet Feedback weiter: Die AgentCore API ruft den Validator-Agenten auf, der Logik zum Speichern von Feedback in DynamoDB enthält.
Der Prozess zur Speicherung des Feedbacks beginnt: Der Validator Agent initiiert den Prozess zum Speichern des Feedbacks.
Der DynamoDB-Schreibzugriff ist authentifiziert: Der Boto3 DynamoDB-Client authentifiziert sich bei AWS IAM (AgentCore Execution Role), um Schreibzugriffsberechtigungen zum Speichern von Feedbackmustern zu erhalten.
Lernmuster werden gespeichert: Die IAM-Rolle autorisiert und speichert Benutzerfeedback in der DynamoDB-Speichertabelle. Jedes Muster wird mit einem zusammengesetzten Partitionsschlüssel (function_name #target_function oder function_name #GLOBAL), einem zusammengesetzten Sortierschlüssel (FEEDBACK# accepted/rejected #PATTERN #hash), einem Muster-Hash für die Deduplizierung, Testtyp, Eingabemusterstruktur, Feedback-Status, Ablehnungsgrund (falls abgelehnt), benutzerdefinierten Notizen, Nutzungsanzahl, Erfolgsrate, Zeitstempel und TTL von 90 Tagen für die automatische Bereinigung gespeichert. Diese gespeicherten Daten ermöglichen es dem System, aus dem Feedback der Benutzer zu lernen und die zukünftige Testgenerierung zu verbessern.
Automatisierung und Skalierung
Dieses Muster skaliert automatisch mithilfe der von AWS verwalteten Services. Amazon Bedrock verarbeitet KI-Inferenzen auf Abruf mit einem Kontextfenster von 200.000 Token und einer Ausgabe von 64.000 Tokens pro Anruf. Amazon DynamoDB verwendet eine On-Demand-Abrechnung, die sich automatisch an die Verkehrsmuster anpasst. Das System verwendet parallele Verarbeitung aus Geschwindigkeitsgründen. Der Analyzer Agent führt 5 gleichzeitige Bedrock-Aufrufe durch, um Codeblöcke zu analysieren (ThreadPoolExecutor mit max_workers=5), während der Generator Agent Chunks parallel zu 5 Workern verarbeitet. Ein Fortsetzungsmechanismus behandelt unvollständige Antworten, indem Anfragen automatisch wiederholt werden. Die Ratenbegrenzung (5 Anfragen pro 60 Sekunden pro Benutzer) verhindert den Kostenmissbrauch durch übermäßige Bedrock-API-Aufrufe.
Die Kostenoptimierung umfasst eine TTL-based Bereinigung, bei der Muster entfernt werden, die älter als 90 Tage sind, zusammengesetzte Schlüsselabfragen mit begins_with () für sofortige Suchvorgänge ohne Tabellenscans sowie BatchWriteItem Operationen, die DynamoDB-Schreibvorgänge um etwa 90% reduzieren. Die Leistung hängt von der Funktionsgröße ab, kleine Funktionen (unter 10 Dateien) generieren 10 Testfälle in 30—60 Sekunden, mittlere Funktionen (10—50 Dateien) benötigen 1—3 Minuten und große Funktionen (über 50 Dateien) benötigen 3—5 Minuten, obwohl die Verwendung von Zielfiltern zur Fokussierung auf bestimmte Codeabschnitte die Zeit um 50-70% reduziert.
Tools
AWS-Services
Amazon Bedrock
— Bietet generative KI-Funktionen über Anthropic Claude Sonnet 4 für Codeanalyse, Testgenerierung, Validierung und Zusammenfassung von Ablehnungen. Verwendet immer die Region us-east-1 für den Modellzugriff. Amazon Bedrock AgentCore — Bietet serverlose Agentenlaufzeit für die Bereitstellung und das Hosting des Backends für die Testgenerierung mit automatischer Skalierung, OAuth-based Autorisierung und Beobachtbarkeit. CloudWatch
Amazon Bedrock Guardrails
— Bietet ML-based Sicherheitsfilter für alle Bedrock-API-Aufrufe, einschließlich sofortiger Angriffserkennung (HOHE Stärke), Inhaltsfilterung, PII-Anonymisierung (E-Mail, Telefon, Name), Blockierung von keys/private keys/JWT AWS-Zugriffstoken und Durchsetzung verweigerter Themen (Generierung von Exploit-Code, Ausgabe des Rohquellcodes). Bereitgestellt über. CloudFormation AWS CloudFormation
— Automatisiert die komplette Infrastrukturbereitstellung, einschließlich DynamoDB-Tabelle, Cognito-Benutzerpool, Amazon Bedrock Guardrail mit Versionierung und IAM-Ausführungsrolle für. AgentCore Amazon Cognito — Bietet Benutzerauthentifizierung mit E-Mail-basierter Anmeldung, Ausgabe von JWT-Tokens und sicherer API-Autorisierung für das Backend. AgentCore
Amazon DynamoDB
— Speichert akzeptierte und abgelehnte Testmuster mit Nutzungsstatistiken für kontinuierliches Lernen und Verbessern. Verwendet zusammengesetzte Schlüssel (function_target, pattern_sk) für Zero-Scan-Abfragen und zielspezifische Musterspeicherung. AWS Lambda
— Quelle des Funktionscodes für die Analyse. Die API ruft Code und Konfiguration ab. GetFunction Das Tool unterstützt Python-, Java Node.js -, .NET- und Ruby-Laufzeiten.
Andere Tools
Python 3.11+
— Laufzeitumgebung für die Anwendungs- und Agenten-Orchestrierung. Streamlit
— Web-based Benutzeroberfläche für Authentifizierung, Testgenerierung, Erfassung von Feedback und Überwachung des Systemstatus. Boto3 — AWS-SDK für Python zur Interaktion mit Lambda-, Amazon Bedrock-, DynamoDB- und Cognito-Diensten.
Code-Repository
Der Code für dieses Muster ist in Github - Lambda Test Event Generator
Bewährte Methoden
Dieses Muster implementiert die folgenden Best Practices:
Verwendet IAM-Richtlinien mit geringsten Rechten für den Zugriff auf AWS Lambda (schreibgeschützt), Amazon Bedrock (Aufrufen), Amazon DynamoDB () und Amazon Cognito (Authentifizierung). query/write
Implementieren Sie zielspezifisches Musterlernen mit globalem Fallback, um die Testgenauigkeit zu verbessern.
Aktivieren Sie DynamoDB TTL für die automatische Bereinigung alter Muster (90 Tage), um die Speicherkosten unter Kontrolle zu halten.
Verwenden Sie Zero-Scan-Abfragen mit zusammengesetzten Schlüsseln (function_target, pattern_sk) für einen schnellen Musterabruf.
Wenden Sie Ignoriermuster an, um Testdateien, Abhängigkeiten und Dateien, die nichts mit Code zu tun haben, von der Analyse auszuschließen.
Verwenden Sie mehrsprachiges Code-Chunking mit AST-Parsing (Abstract Syntax Tree) (Python) und Regex-Mustern (Java, C#, JS, Ruby).
Speichern Sie Muster mit tatsächlichen Werten (nicht nur mit Struktur) für eine echte Deduplizierung.
Stellen Sie das Backend auf Amazon Bedrock AgentCore für serverlose Skalierung und verwaltete Infrastruktur bereit.
Authentifizieren Sie Benutzer über Amazon Cognito mit einer JWT-Token-Validierung bei jeder API-Anfrage.
Wenden Sie Amazon Bedrock Guardrails auf alle Converse () -Aufrufe an, um schnell Angriffe zu filtern, PII zu redigieren, vertrauliche Daten (AWS-Schlüssel, private Schlüssel, JWTs) zu blockieren und die Durchsetzung verweigerter Themen zu verhindern.
Bereinigen Sie die Analyseergebnisse, bevor Sie sie an die Benutzer zurückgeben. Alle Rohquellcode-Blöcke werden aus den Antworten entfernt, sodass der Lambda-Quellcode niemals die Laufzeitgrenze verlässt. AgentCore
Validieren Sie alle API-Eingaben mit Regex-Mustern und Längenbeschränkungen (Funktionsname maximal 170 Zeichen, benutzerdefinierte Anweisungen maximal 2000 Zeichen, maximal 50 Ignoriermuster), um Injektion und Missbrauch zu verhindern.
Implementieren Sie eine Ratenbegrenzung pro Benutzer (5 Anfragen pro 60 Sekunden), um Kostenmissbrauch durch übermäßige Bedrock-API-Aufrufe zu verhindern.
Bereinigen Sie Fehlermeldungen, bevor Sie sie an die Benutzer zurückgeben — interne Dateipfade, AWS-SDK-Details und Infrastrukturinformationen werden in den Fehlerantworten niemals preisgegeben.
Beachten Sie die folgenden zusätzlichen bewährten Methoden:
Geben Sie konkrete Gründe für Feedback an, wenn Sie Testfälle ablehnen, um die Lerngenauigkeit zu verbessern.
Generieren Sie iterativ (2-3 mal) Tests für dieselbe Funktion, damit das System lernen und sich verbessern kann.
Stellen Sie benutzerdefinierte Anweisungen bereit, wenn Sie bestimmte Testszenarien oder Datenformate benötigen.
Aktivieren Sie IAM Access Analyzer, um Ressourcenberechtigungen zu überwachen und unbeabsichtigte Zugriffe zu erkennen.
Beginnen Sie mit kleinen Lambda-Funktionen, um das System zu verstehen, bevor Sie große Codebasen analysieren.
Überprüfen Sie die IAM-Richtlinien regelmäßig und entfernen Sie ungenutzte Berechtigungen.
Verwenden Sie sichere Passwortrichtlinien und aktivieren Sie Cognito AdvancedSecurityMode für die Erkennung von Bedrohungen.
Epen
| Aufgabe | Description | Erforderliche Fähigkeiten |
|---|---|---|
Klonen Sie das Repository | Klonen Sie das GitHub Repository auf Ihr lokales System und navigieren Sie zum Projektverzeichnis:
Dieses Repository enthält die Python-Anwendungs-, CloudFormation Vorlagen- und Konfigurationsdateien. | App-Developer |
Konfigurieren Sie die AWS-Anmeldeinformationen. | Konfigurieren Sie Ihre AWS-Anmeldeinformationen, damit die AWS-CLI mit Ihrem AWS-Konto interagieren kann und die Anwendung auf Lambda-Funktionen zugreifen kann, die Sie testen möchten. Sie können dies mit dem AWS-CLI-Konfigurationsbefehl tun:
Wenn Sie dazu aufgefordert werden, geben Sie die folgenden Informationen an:
| App-Developer |
| Aufgabe | Description | Erforderliche Fähigkeiten |
|---|---|---|
Stellen Sie die Infrastruktur mithilfe von bereit CloudFormation. |
Was wird erstellt:
AnmerkungDer Stack erstellt alle erforderlichen Ressourcen. Stellen Sie sicher, dass die CloudFormation Vorlage erfolgreich abgeschlossen wurde, bevor Sie mit dem nächsten Schritt fortfahren. | App-Developer |
Exportieren Sie Konfigurationsvariablen. | Exportieren Sie alle Werte aus den CloudFormation Stack-Ausgaben als Umgebungsvariablen:
Diese Variablen werden in den nachfolgenden Schritten für die AgentCore Konfiguration und die Erstellung von.env-Dateien verwendet. | AWS-Administrator |
| Aufgabe | Description | Erforderliche Fähigkeiten |
|---|---|---|
Erstellen Sie eine virtuelle Umgebung. |
| App-Developer |
Konfiguration und Bereitstellung AgentCore. |
| App-Developer |
Erstellen Sie eine ENV-Datei für die lokale Entwicklung. | Erstellen Sie eine .env-Datei im Stammverzeichnis des Projekts mit allen Konfigurationswerten:
Testen Sie die Konnektivität zu AWS-Services:
Beide Befehle sollten erfolgreiche Antworten zurückgeben. Wenn Sie auf Berechtigungsfehler stoßen, überprüfen Sie, ob die IAM-Richtlinien ordnungsgemäß konfiguriert sind. | App-Developer |
| Aufgabe | Description | Erforderliche Fähigkeiten |
|---|---|---|
Erstellen Sie einen neuen Cognito-Benutzer. | Der Cognito-Benutzerpool ist aus Sicherheitsgründen so konfiguriert, dass Benutzer nur von Administratoren erstellt werden, sodass sich Benutzer nicht selbst registrieren können. Erstellen Sie einen Benutzer über die AWS-CLI mithilfe der Cognito-Pool-ID und der Client-ID, die aus den Stack-Ausgaben exportiert wurden. CloudFormation Erstellen Sie einen neuen Benutzer (
Lege ein permanentes Passwort fest (mindestens 8 Zeichen, muss Groß- und Kleinbuchstaben und eine Zahl enthalten):
Verwenden Sie diese Anmeldeinformationen, um sich im nächsten Schritt über die Streamlit-Benutzeroberfläche anzumelden. | App-Developer |
| Aufgabe | Description | Erforderliche Fähigkeiten |
|---|---|---|
Starten Sie Streamlit UI. | Starten Sie die Anwendung:
Die Benutzeroberfläche wird in Ihrem Standardbrowser unter geöffnet Melden Sie sich mit den im vorherigen Schritt erstellten Anmeldeinformationen an | App-Developer |
Konfigurieren Sie die Generierungsoptionen | Konfigurieren Sie auf der Benutzeroberfläche die folgenden Optionen:
| App-Developer |
Generieren Sie Testfälle. | Klicken Sie auf die Schaltfläche „Testfälle generieren“. Das System führt folgende Aktionen aus:
| App-Developer |
Überprüfen Sie die generierten Tests. | Überprüfen Sie jeden generierten Testfall, der Folgendes beinhaltet:
| DevOps Ingenieur, App-Entwickler |
Geben Sie Feedback. | Geben Sie für jeden Testfall Feedback: Um einen Testfall zu akzeptieren:
Um einen Testfall abzulehnen:
| Testingenieur |
Speichern Sie das Feedback im Speicher. | Nach Überprüfung aller Testfälle:
| Testingenieur |
Iterieren Sie, um Verbesserungen zu erzielen. | Generieren Sie noch 2-3 Mal Tests für dieselbe Funktion, um die Qualität zu verbessern:
AnmerkungDas Lernsystem wird bei wiederholter Verwendung effektiver. Jeder Feedback-Zyklus hilft der KI, Ihre Testpräferenzen zu verstehen und relevantere Testfälle für Ihre Lambda-Funktionen zu generieren. | App-Developer |
| Aufgabe | Description | Erforderliche Fähigkeiten |
|---|---|---|
Rufen Sie die AgentCore API direkt auf. | Rufen Sie zur Automatisierung und Integration das AgentCore Backend direkt mithilfe von API-Aufrufen mit Cognito-Authentifizierung auf. Holen Sie sich ein Cognito-Token:
Testgenerierung aufrufen:
Oder mit Curl:
| App-Developer |
| Aufgabe | Description | Erforderliche Fähigkeiten |
|---|---|---|
Überwachen Sie DynamoDB-Muster und verfolgen Sie die Kosten. |
AnmerkungEine regelmäßige Überwachung hilft bei der Identifizierung von Möglichkeiten zur Kostenoptimierung und stellt sicher, dass das System weiterhin effektiv lernt. Die TTL-Konfiguration in Ihrer DynamoDB-Tabelle bereinigt automatisch alte Muster und hilft so, die Speicherkosten im Laufe der Zeit zu verwalten. | AWS-Administrator |
| Aufgabe | Description | Erforderliche Fähigkeiten |
|---|---|---|
Löschen Sie die bereitgestellten Ressourcen. | Um alle bereitgestellten Ressourcen zu entfernen: Löschen Sie den AgentCore Agenten:
Löschen Sie den CloudFormation Stack (löscht die DynamoDB-Tabelle, den Cognito-Benutzerpool und die IAM-Rolle):
| AWS-Administrator |
Fehlerbehebung
| Problem | Lösung |
|---|---|
Fehler „Zugriff verweigert“ beim Abrufen des Lambda-Codes |
|
„DynamoDB-Schreibfehler“ |
|
Es wurden keine Testfälle generiert | Mögliche Ursachen und Lösungen:
|
Java/C# Lambda zeigt „Kein Quellcode gefunden“ | Für Java- und C#-Lambdas sind Quelldateien im Bereitstellungspaket erforderlich: Java (Maven):
C# (.NET):
|
DynamoDB-Schreibfehler |
|
Langsame Testgenerierung | Generierungsgeschwindigkeit optimieren:
|
AgentCore: „Agent nicht gefunden“ | Stellen Sie sicher, dass der Agent eingesetzt wurde:
|
AgentCore: „Erlaubnis verweigert“ zur Laufzeit | Stellen Sie sicher, dass die Ausführungsrolle die richtigen Richtlinien hat:
|
Cognito: „Ungültiger Benutzername oder Passwort“ | Vergewissern Sie sich, dass Ihre Anmeldeinformationen korrekt sind. Sie können einen neuen Benutzer mithilfe des Ablaufs „Konto erstellen“ der Streamlit-Benutzeroberfläche oder über die AWS-CLI erstellen:
|
Warnung „Bedrock Guardrail nicht konfiguriert“ in den Protokollen | Verify Überprüfen Sie die CloudFormation Ausgaben:
|
Fehler „Ratenlimit überschritten“ | Das System beschränkt sich auf 5 Anfragen pro 60 Sekunden pro Benutzer. Warten Sie die angegebene Zeit, bevor Sie es erneut versuchen. Passen Sie für Produktionsanwendungen mit höherem Durchsatz die |
Zugehörige Ressourcen
AWS-Dokumentation