Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Creazione di un ambiente di test
Questa guida fornisce test pratici per convalidare la funzionalità di risposta agli incidenti di AWS DevOps Agent utilizzando un'architettura di esempio. Utilizzate questo supplemento se desiderate testare DevOps Agent prima di connettere i vostri sistemi di produzione.
Prerequisiti
AWS account con accesso amministrativo
AWS DevOps Agent Space creato e configurato utilizzando il flusso di ruolo Auto create DevOps Agent
Per il test EC2: un VPC esistente con almeno una sottorete nella regione in cui verrà implementato.
Panoramica dei costi e della sicurezza
Protezione dei costi
Test EC2: GRATUITO (livello AWS gratuito) o ~$0,02 per 2 ore
Test Lambda: GRATUITO (livello gratuito di 1 milione) requests/month
CloudWatch: GRATUITO (10 allarmi, metriche di base incluse)
Costo totale stimato previsto: 0,00 USD - 0,05 USD per il test completo
Caratteristiche di sicurezza in questi test
Auto-termination: spegnimento Built-in automatico
Idoneo al livello gratuito: utilizza i tipi di istanza più piccoli
Ambito limitato: risorse di test minime e isolate
Facile pulizia: semplici passaggi della console per rimuovere tutto
Nessun impatto sulla produzione: ambiente di test completamente separato
Configura il tuo AWS account per i test
Importante
Le risorse dell'infrastruttura devono essere distribuite nell' AWS account in cui è stato creato l'account cloud principale di DevOps Agent Space. La regione specifica non ha importanza.
Accedi alla AWS console: https://console.aws.amazon.com
Assicurati di lavorare nello stesso AWS account in cui si trova il tuo DevOps Agent Space
Puoi utilizzare qualsiasi regione per le tue risorse di test
Nota
La mappatura 1:1 tra l'account principale del tuo DevOps agente e le risorse dell'ambiente di test che stai creando semplifica la configurazione del test. Puoi facilmente estendere il tuo DevOps Agent Space per includere account secondari e consentire indagini tra account.
Scegli il tuo test
Puoi eseguire entrambi i test indipendentemente o entrambi insieme:
Opzione di test A: test della capacità della CPU EC2
Scopo: convalidare la capacità AWS DevOps dell'agente di rilevare e analizzare i problemi di prestazioni di EC2
Tempo stimato: 5 minuti di configurazione + 10 minuti di esecuzione automatica
Difficoltà: completamente automatizzata (non sono richiesti passaggi manuali)
Opzione di test B: test del tasso di errore Lambda
Scopo: convalidare la capacità AWS DevOps dell'agente di rilevare e analizzare gli errori delle funzioni Lambda
Tempo stimato: 10 minuti di configurazione + 2 minuti per l'attivazione
Difficoltà: molto facile
Opzione di test A: test della capacità della CPU EC2
Fase 1: Implementazione CloudFormation dello stack per il test EC2
Le useremo CloudFormation per creare le nostre risorse di test, che consentiranno all' AWS DevOps agente di tracciarle e analizzarle correttamente.
Passa a CloudFormation:
In AWS Console, cerca "CloudFormation" e scegli CloudFormation
Scegli Crea stack > Con nuove risorse (standard).
Carica modello:
Crea un nuovo file locale chiamato
AWS-DevOpsAgent-ec2-test.yamlCopia e incolla questo CloudFormation modello nel file:
-
AWSTemplateFormatVersion: '2010-09-09' Description: 'AWS DevOps Agent EC2 CPU Test Stack' Parameters: VpcId: Type: AWS::EC2::VPC::Id Description: ID of an existing VPC where the test instance will be launched. SubnetId: Type: AWS::EC2::Subnet::Id Description: ID of an existing subnet within the selected VPC. Choose a subnet that routes to an internet gateway if you plan to connect via SSH. MyIP: Type: String Description: Your current IP address for SSH access (find at https://whatismyipaddress.com) Default: '0.0.0.0/0' Resources: # Security Group for SSH access TestSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: AWS DevOps Agent beta testing security group VpcId: !Ref VpcId SecurityGroupIngress: - IpProtocol: tcp FromPort: 22 ToPort: 22 CidrIp: !Ref MyIP Description: SSH access from your IP Tags: - Key: Name Value: AWS-DevOpsAgent-Test-SG - Key: Purpose Value: AWS-DevOpsAgent-Testing # Key Pair for SSH access TestKeyPair: Type: AWS::EC2::KeyPair Properties: KeyName: AWS-DevOpsAgent-test-key KeyType: rsa Tags: - Key: Name Value: AWS-DevOpsAgent-Test-Key - Key: Purpose Value: AWS-DevOpsAgent-Testing # IAM Role for Session Manager access SSMInstanceRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: ec2.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore Tags: - Key: Name Value: AWS-DevOpsAgent-Test-SSMRole - Key: Purpose Value: AWS-DevOpsAgent-Testing # Instance profile wrapping the SSM role SSMInstanceProfile: Type: AWS::IAM::InstanceProfile Properties: Roles: - !Ref SSMInstanceRole # EC2 Instance for CPU testing TestInstance: Type: AWS::EC2::Instance Properties: InstanceType: t3.micro ImageId: '{{resolve:ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64}}' KeyName: !Ref TestKeyPair SubnetId: !Ref SubnetId SecurityGroupIds: - !GetAtt TestSecurityGroup.GroupId IamInstanceProfile: !Ref SSMInstanceProfile InstanceInitiatedShutdownBehavior: terminate UserData: Fn::Base64: !Sub | #!/bin/bash yum update -y yum install -y htop # Create the CPU stress test script cat > /home/ec2-user/cpu-stress-test.sh << 'EOF' #!/bin/bash echo "Starting AWS DevOpsAgent CPU Stress Test" echo "Time: $(date)" echo "Instance: $(curl -s http://169.254.169.254/latest/meta-data/instance-id)" echo "" # Get number of CPU cores CORES=$(nproc) echo "CPU Cores: $CORES" echo "" echo "Starting stress test (5 minutes)..." echo "This will generate >70% CPU usage to trigger CloudWatch alarm" echo "" # Create CPU load using yes command echo "Starting CPU load processes..." for i in $(seq 1 $CORES); do (yes > /dev/null) & CPU_PID=$! echo "Started CPU load process $i (PID: $CPU_PID)" echo $CPU_PID >> /tmp/cpu_test_pids done # Auto-cleanup after 5 minutes (sleep 300 && echo "Stopping CPU load processes..." && kill $(cat /tmp/cpu_test_pids 2>/dev/null) 2>/dev/null && rm -f /tmp/cpu_test_pids) & echo "" echo "CPU load processes started for 5 minutes" echo "Check CloudWatch for alarm trigger in 3-5 minutes" EOF chmod +x /home/ec2-user/cpu-stress-test.sh chown ec2-user:ec2-user /home/ec2-user/cpu-stress-test.sh # Create auto-shutdown script (safety mechanism) cat > /home/ec2-user/auto-shutdown.sh << 'SHUTDOWN_EOF' #!/bin/bash echo "Auto-shutdown scheduled for 2 hours from now: $(date)" sleep 7200 echo "Auto-shutdown executing at: $(date)" sudo shutdown -h now SHUTDOWN_EOF chmod +x /home/ec2-user/auto-shutdown.sh nohup /home/ec2-user/auto-shutdown.sh > /home/ec2-user/auto-shutdown.log 2>&1 & echo "AWS DevOpsAgent test setup completed at $(date)" > /home/ec2-user/setup-complete.txt Tags: - Key: Name Value: AWS-DevOpsAgent-Test-Instance - Key: Purpose Value: AWS-DevOpsAgent-Testing # CloudWatch Alarm for CPU utilization CPUAlarm: Type: AWS::CloudWatch::Alarm Properties: AlarmName: AWS-DevOpsAgent-EC2-CPU-Test AlarmDescription: AWS-DevOpsAgent beta test - EC2 CPU utilization alarm MetricName: CPUUtilization Namespace: AWS/EC2 Statistic: Average Period: 60 EvaluationPeriods: 1 Threshold: 70 ComparisonOperator: GreaterThanThreshold Dimensions: - Name: InstanceId Value: !Ref TestInstance TreatMissingData: notBreaching Outputs: InstanceId: Description: EC2 Instance ID for testing Value: !Ref TestInstance SecurityGroupId: Description: Security Group ID Value: !GetAtt TestSecurityGroup.GroupId AlarmName: Description: CloudWatch Alarm Name Value: !Ref CPUAlarm SSHCommand: Description: SSH command to connect to instance Value: !Sub 'ssh -i "AWS-DevOpsAgent-test-key.pem" ec2-user@${TestInstance.PublicDnsName}'
-
Nella CloudFormation console, seleziona Carica un file modello
Scegli il file
Seleziona il
AWS-DevOpsAgent-ec2-test.yamlfileSeleziona Next (Successivo).
Configura lo stack:
Nome dello stack:
AWS-DevOpsAgent-EC2-TestParametri:
VpcId: seleziona un VPC esistente dal menu a discesa.
SubnetId: seleziona una sottorete all'interno del VPC che hai scelto. Per l'accesso SSH, la sottorete deve essere indirizzata a un gateway Internet e all'istanza deve essere associato un indirizzo IPv4 pubblico. Altrimenti, l'
SSHCommandoutput sarà vuoto e le connessioni SSH non avranno esito positivo.MyIP: lascia il valore predefinito
0.0.0.0/0(puoi proteggerlo in seguito, se necessario)
Seleziona Next (Successivo).
Configura le opzioni dello stack:
Lascia le impostazioni predefinite, scegli Avanti
Revisione e creazione:
Seleziona Riconosco che AWS CloudFormation potrebbe creare risorse IAM
Scegli Invia
Attendi il completamento:
La creazione dello stack richiede 3-5 minuti
Lo stato cambierà da
CREATE_IN_PROGRESSaCREATE_COMPLETEImportante: la tua istanza EC2 ora fa parte di uno CloudFormation stack in AWS DevOpsAgent grado di tracciare!
Facoltativo: accesso SSH sicuro (solo se prevedi di connetterti all'istanza)
Salta questo passaggio se desideri eseguire solo il test automatico
Individua il gruppo di sicurezza:
In AWS Console, vai a CloudFormation e seleziona lo
AWS-DevOpsAgent-EC2-TeststackApri la scheda Outputs e copia il valore di
SecurityGroupId(inizia consg-)Vai su EC2 → Gruppi di sicurezza e incolla l'ID nella barra di ricerca per aprire il gruppo di sicurezza
Aggiorna la regola SSH:
Seleziona il gruppo di sicurezza → scheda Regole in entrata → Modifica regole in entrata
Trova la regola SSH (porta 22)
Cambia la fonte dal
0.0.0.0/0tuo IP:[YOUR_IP]/32Ottieni il tuo IP da https://whatismyipaddress.com
Scegliere Save rules (Salva regole).
Fase 2: Attendi l'esecuzione automatica del test
Esecuzione automatica del test:
Lo stress test della CPU verrà avviato automaticamente 5 minuti dopo l'avvio dell'istanza
Non è richiesto alcun intervento manuale: aspetta, il test viene eseguito completamente in background
Monitora il test:
Instance avvia e prepara il test automaticamente
Lo script verrà eseguito per 5 minuti e genererà un utilizzo della CPU superiore al 70%
CloudWatch l'allarme dovrebbe attivarsi entro 8-10 minuti totali (5 minuti di ritardo + 3-5 minuti per l'allarme)
Opzionale: riesecuzione manuale (per test aggiuntivi):
Connettiti alla tua istanza: console EC2 → → Connetti
AWS-DevOpsAgent-Test-Instance→ Session ManagerEsegui nuovamente lo stress test:
./cpu-stress-test.shPerfetto per AWS DevOpsAgent la risposta dei test più volte
Opzione di test B: test del tasso di errore Lambda
Fase 1: Implementazione CloudFormation dello stack per il test Lambda
Passa a: CloudFormation
In AWS Console, vai a CloudFormation
Scegli Crea stack → Con nuove risorse (standard)
Carica modello:
Crea un nuovo file locale chiamato
AWS-DevOpsAgent-lambda-test.yamlCopia e incolla questo CloudFormation modello nel file:
-
AWSTemplateFormatVersion: '2010-09-09' Description: 'AWS DevOpsAgent Lambda Error Test Stack' Resources: # IAM Role for Lambda function LambdaExecutionRole: Type: AWS::IAM::Role Properties: RoleName: AWS-DevOpsAgentLambdaTestRole AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: lambda.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole Tags: - Key: Name Value: AWS-DevOpsAgent-Lambda-Test-Role - Key: Purpose Value: AWS-DevOpsAgent-Testing # Lambda function that generates errors TestLambdaFunction: Type: AWS::Lambda::Function Properties: FunctionName: AWS-DevOpsAgent-test-lambda Runtime: python3.12 Handler: index.lambda_handler Role: !GetAtt LambdaExecutionRole.Arn Code: ZipFile: | import json import random import time from datetime import datetime def lambda_handler(event, context): print(f"AWS DevOpsAgent Test Lambda - {datetime.now()}") print(f"Event: {json.dumps(event)}") # Intentionally generate errors for testing error_scenarios = [ "Simulated database connection timeout", "Test API rate limit exceeded", "Intentional validation error for AWS DevOpsAgent testing" ] # Always throw an error for testing purposes error_message = random.choice(error_scenarios) print(f"Generating test error: {error_message}") # This will create a Lambda error that CloudWatch will detect raise Exception(f"AWS DevOpsAgent Test Error: {error_message}") Description: AWS DevOpsAgent beta test function - intentionally generates errors Timeout: 30 Tags: - Key: Name Value: AWS-DevOpsAgent-Test-Lambda - Key: Purpose Value: AWS-DevOpsAgent-Testing # CloudWatch Alarm for Lambda errors LambdaErrorAlarm: Type: AWS::CloudWatch::Alarm Properties: AlarmName: AWS-DevOpsAgent-Lambda-Error-Test AlarmDescription: AWS-DevOpsAgent beta test - Lambda error rate alarm MetricName: Errors Namespace: AWS/Lambda Statistic: Sum Period: 60 EvaluationPeriods: 1 Threshold: 0 ComparisonOperator: GreaterThanThreshold Dimensions: - Name: FunctionName Value: !Ref TestLambdaFunction TreatMissingData: notBreaching Outputs: LambdaFunctionName: Description: Lambda Function Name for testing Value: !Ref TestLambdaFunction LambdaFunctionArn: Description: Lambda Function ARN Value: !GetAtt TestLambdaFunction.Arn AlarmName: Description: CloudWatch Alarm Name Value: !Ref LambdaErrorAlarm TestCommand: Description: AWS CLI command to test the function Value: !Sub 'aws lambda invoke --function-name ${TestLambdaFunction} --payload "{\"test\":\"AWS DevOpsAgent validation\"}" response.json'
-
Nella CloudFormation console, seleziona Carica un file modello
Scegli il file
Seleziona il
AWS-DevOpsAgent-lambda-test.yamlfileSeleziona Next (Successivo).
Configura lo stack:
Nome dello stack:
AWS-DevOpsAgent-Lambda-TestSeleziona Next (Successivo).
Configura le opzioni dello stack:
Lascia le impostazioni predefinite, scegli Avanti
Revisione e creazione:
Seleziona Riconosco che AWS CloudFormation potrebbe creare risorse IAM
Scegli Invia
Attendi il completamento:
La creazione dello stack richiede 2-3 minuti
Lo stato cambierà in
CREATE_COMPLETE
Fase 2: Attiva gli errori Lambda
Passa alla console Lambda:
Vai alla console AWS Lambda
Trova la tua funzione
AWS-DevOpsAgent-test-lambda
Prova la funzione:
Scegli la scheda Test
Scegli Crea nuovo evento
Nome dell'evento:
AWS-DevOpsAgent-test-eventUsa questo payload JSON:
-
{ "test": "AWS DevOpsAgent validation", "timestamp": "2024-01-01T00:00:00Z" }
-
Seleziona Salva
Genera errori:
Scegli il pulsante Test 3 volte (attendi 10 secondi tra una e l'altra)
Ogni test genererà un errore intenzionale
CloudWatch l'allarme dovrebbe attivarsi entro 2-3 minuti
AWS DevOpsAgentora dovrebbe essere in grado di rilevare l'allarme con un'indagine nell'app Operator che configurerai successivamente.
Convalida AWS DevOps Rilevamento degli agenti
Fase 1: CloudWatch allarmi Sanity Check (opzionali)
Questo passaggio serve a garantire che i test precedenti siano ora in stato di allarme.
Per il test EC2:
Nella CloudWatch console, vai su Allarmi
Attendi 3-5 minuti dopo l'avvio dello stress test
La sveglia dovrebbe apparire in stato di allarme
Se è ancora «OK»: attendi altri 2-3 minuti (le CloudWatch metriche possono essere ritardate)
Per Lambda Test:
Controlla l'allarme
AWS-DevOpsAgent-Lambda-Error-TestDovrebbe apparire In allarme entro 2-3 minuti dall'esecuzione dei test
Fase 2: Avviare un AWS DevOps Indagine sugli agenti
Apri il tuo AWS DevOps agente AgentSpace
Scegli Accesso amministratore. Si aprirà l'app web di DevOps Agent Space in una nuova finestra
Scegli il pulsante Avvia indagine
Compila il seguente modulo:
Dettagli dell'indagine: descrivi l'indagine che vorresti condurre. Includi tutti i dettagli possibili sugli obiettivi dell'indagine, sulle aree da esplorare o sulle informazioni pertinenti.
Punto di partenza dell'indagine: descrivi le informazioni da cui vorresti iniziare l'indagine. Puoi menzionare un allarme, una metrica, un frammento di registro o qualsiasi altra cosa per dare all' DevOps agente un punto di partenza su cui lavorare. In questo caso, fornisci un riepilogo degli allarmi appena creati.
Data e ora dell'incidente (preferibilmente ISO 8601): YYYY-MM-DDTHH:MMZ
Assegna un nome alla tua indagine: esempio:
Oncall_investigation_1:2025-10-27AWS ID dell'account relativo all'incidente
Regione in cui si è verificato l'incidente
Priorità: AWS DevOpsAgent consente 2 indagini simultanee. La priorità consente di definire l'ordine di esecuzione delle indagini.
Scegli Investiga per avviare l'indagine.
Scegli la tua indagine elencata nella dashboard. Verrai indirizzato alla schermata Dettagli dell'indagine in cui potrai visualizzare i passaggi dettagliati che l' DevOps Agente sta eseguendo.
Risultati attesi
Risultati dei test EC2:
Rileva l'allarme della CPU EC2
Identifica la causa principale: «carico di lavoro per lo stress test della CPU»
Mostra la cronologia: Stress test → CPU spike → Alarm
Fornisce consigli per il monitoraggio e il ridimensionamento
Risultati dei test Lambda:
Rileva il picco del tasso di errore Lambda
Identifica la causa principale: «Eccezioni di test intenzionali»
Mostra la sequenza temporale: Richiami di funzione → Errori → Allarme
Fornisce raccomandazioni per la gestione e il monitoraggio degli errori
Istruzioni per la pulizia
Test di pulizia A (test EC2)
Pulizia automatica
L'istanza verrà interrotta automaticamente dopo 2 ore (integrata nel modello) CloudFormation
Pulizia manuale (immediata)
Elimina CloudFormation stack:
Vai alla CloudFormation console
Seleziona
AWS-DevOpsAgent-EC2-TestpilaSeleziona Delete (Elimina)
Conferma l'eliminazione
Ciò eliminerà automaticamente tutte le risorse: istanza EC2, gruppo di sicurezza, coppia di chiavi e allarme CloudWatch
Test di pulizia B (test Lambda)
Elimina stack CloudFormation :
Vai alla CloudFormation console
Seleziona
AWS-DevOpsAgent-Lambda-TestpilaSeleziona Delete (Elimina)
Conferma l'eliminazione
Questa operazione eliminerà automaticamente tutte le risorse: funzione Lambda, ruolo IAM e allarme CloudWatch
Risoluzione dei problemi
Problemi comuni
«Impossibile connettersi all'istanza EC2"
Controlla il gruppo di sicurezza: assicurati che SSH (porta 22) sia aperto al tuo IP
Controlla le autorizzazioni chiave: Esegui
chmod 400 AWS-DevOpsAgent-test-key.pemVerifica l'IP pubblico: all'istanza deve essere assegnato un IP pubblico
Attendi l'istanza: assicurati che l'istanza sia in stato «In esecuzione»
«L'allarme non si attiva»
Attendi le metriche: la visualizzazione delle CloudWatch metriche può richiedere da 2 a 5 minuti
Controlla il carico della CPU: SSH sull'istanza ed esegui per verificare che la CPU
topsia superiore al 70%Verifica lo stress test: esegui
ps aux | grep yesper vedere se i processi di caricamento sono in esecuzioneAttesa prolungata: a volte sono necessari fino a 7-8 minuti per l'attivazione del primo allarme
Convalida dei test
Il test del tuo AWS DevOp agente ha esito positivo quando:
Convalida tecnica
Precisione dell'indagine: i risultati del test EC2 dovrebbero indicare correttamente che l'allarme è stato attivato a causa del carico della CPU. Il risultato del test Lambda dovrebbe indicare che si è trattato di un errore intenzionale.
Precisione della cronologia: viene mostrata la sequenza corretta degli eventi
Qualità delle raccomandazioni: vengono forniti suggerimenti attuabili