

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criação de um ambiente de teste
<a name="getting-started-with-aws-devops-agent-creating-a-test-environment"></a>

Este guia fornece testes práticos para validar a funcionalidade de resposta a incidentes do AWS DevOps Agente usando uma arquitetura de amostra. Use este suplemento se quiser testar o DevOps Agent antes de conectar seus sistemas de produção.

## Pré-requisitos
<a name="prerequisites"></a>
+ AWS conta com acesso administrativo
+ AWS DevOps Espaço do agente criado e configurado usando o fluxo de função de criação automática do DevOps agente

## Visão geral de custos e segurança
<a name="cost-and-safety-overview"></a>

### Proteção de custos
<a name="cost-protection"></a>
+ **Teste EC2**: GRATUITO (nível AWS gratuito) ou \$1 \$10,02 por 2 horas
+ **Teste Lambda**: GRATUITO (nível gratuito de 1 milhão requests/month )
+ **CloudWatch**: GRÁTIS (10 alarmes, métricas básicas incluídas)
+ **Custo total estimado esperado**: \$10,00 - \$10,05 para o teste completo

### Características de segurança nesses testes
<a name="safety-features-in-these-tests"></a>
+ **Terminação automática**: desligamento automático embutido
+ **Nível gratuito qualificado**: usa os menores tipos de instância
+ **Escopo limitado**: recursos de teste mínimos e isolados
+ **Limpeza fácil**: etapas simples do console para remover tudo
+ **Sem impacto na produção**: ambiente de teste completamente separado

## Configure sua AWS conta para testes
<a name="set-up-your-aws-account-for-testing"></a>

**Importante**  
**Os recursos de infraestrutura precisam ser implantados na AWS conta em que você criou a conta de nuvem primária do seu DevOps Agent Space. A região específica não importa.

1. Faça login no AWS console: [https://console.aws.amazon.com](https://console.aws.amazon.com/)

1. Verifique se você está trabalhando na mesma AWS conta em que seu Espaço DevOps do Agente está localizado

1. Você pode usar qualquer região para seus recursos de teste

**nota**  
O mapeamento 1:1 entre a conta principal do seu DevOps agente e os recursos do ambiente de teste que você está criando simplifica a configuração do teste. Você pode estender facilmente seu Espaço do DevOps Agente para incluir contas secundárias e permitir investigações entre contas.

## Escolha seu teste
<a name="choose-your-test"></a>

Você pode executar qualquer um dos testes de forma independente ou os dois juntos:

### Opção de teste A: teste de capacidade da CPU EC2
<a name="test-option-a-ec2-cpu-capacity-test"></a>

**Objetivo**: validar a capacidade do AWS DevOps agente de detectar e investigar problemas de desempenho do EC2

**Tempo estimado**: 5 minutos de configuração \$1 10 minutos de execução automática

**Dificuldade**: Totalmente automatizado (sem necessidade de etapas manuais)

### Opção de teste B: teste de taxa de erro Lambda
<a name="test-option-b-lambda-error-rate-test"></a>

**Objetivo**: validar a capacidade do AWS DevOps agente de detectar e investigar erros da função Lambda

**Tempo estimado**: 10 minutos de configuração \$12 minutos para acionar

**Dificuldade**: Muito fácil

## Opção de teste A: teste de capacidade da CPU EC2
<a name="test-option-a-ec2-cpu-capacity-test"></a>

### Etapa 1: implantar a CloudFormation pilha para o teste do EC2
<a name="step-1-deploy-cloudformation-stack-for-ec2-test"></a>

Usaremos CloudFormation para criar nossos recursos de teste, o que permite ao AWS DevOps Agente rastreá-los e investigá-los adequadamente.

1. **Navegue até CloudFormation**:

   1. No AWS Console, pesquise por "CloudFormation" e clique em **CloudFormation**

   1. Clique em **Criar pilha** > **Com novos recursos (padrão)**

1. **Carregar modelo**:

   1. Crie um novo arquivo local chamado `AWS-DevOpsAgent-ec2-test.yaml`

   1. Copie e cole esse CloudFormation modelo no arquivo:

      1. 

         ```
         AWSTemplateFormatVersion: '2010-09-09'
         Description: 'AWS DevOps Agent EC2 CPU Test Stack'
         Parameters:
           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:
               GroupName: AWS-DevOpsAgent-test-sg
               GroupDescription: AWS DevOps Agent beta testing security group
               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
           # 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
               SecurityGroupIds:
                 - !Ref TestSecurityGroup
               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: !Ref TestSecurityGroup
             
           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}'
         ```

   1. No CloudFormation console, selecione **Carregar um arquivo de modelo**

   1. Clique em **Escolher arquivo**

   1. Selecione o `AWS-DevOpsAgent-ec2-test.yaml` arquivo

   1. Clique em **Avançar**.

1. **Configurar pilha**:

   1. **Nome da pilha:** `AWS-DevOpsAgent-EC2-Test`

   1. **Parâmetros:**

      1. **MyIP**: deixe como padrão `0.0.0.0/0` (você pode protegê-lo mais tarde, se necessário)

   1. Clique em **Avançar**.

1. **Configure as opções de pilha:**

   1. **Deixe os padrões, clique em Avançar**

1. **Revisar e criar**:

   1. Verifique, **reconheço que isso AWS CloudFormation pode criar recursos do IAM**

   1. Clique em **Enviar**

1. **Aguarde a conclusão**:

   1. A criação da pilha leva de 3 a 5 minutos

   1. O status mudará de `CREATE_IN_PROGRESS` para `CREATE_COMPLETE`

   1. **Importante**: Sua instância do EC2 agora faz parte de uma CloudFormation pilha que AWS DevOpsAgent pode ser rastreada\$1

#### Opcional: acesso SSH seguro (somente se você planeja se conectar à instância)
<a name="optional-secure-ssh-access-only-if-you-plan-to-connect-to-the-instance"></a>

Ignore esta etapa se você quiser apenas executar o teste automatizado

1. **Navegue até os grupos de segurança do EC2**:

   1. No AWS Console, acesse **EC2** → **Security** Groups

   1. Encontre `AWS-DevOpsAgent-test-sg`

1. **Atualize a regra SSH**:

   1. Selecione o grupo de segurança → guia **Regras de entrada** → **Editar regras de entrada**

   1. Encontre a regra SSH (porta 22)

   1. Altere a fonte de `0.0.0.0/0` para seu IP: `[YOUR_IP]/32`

   1. Obtenha seu IP de [https://whatismyipaddress.com](https://whatismyipaddress.com/)

   1. Clique em **Salvar regras**

### Etapa 2: Aguarde a execução automática do teste
<a name="step-2-wait-for-automatic-test-execution"></a>

1. **Execução automática de testes**:
   + O teste de estresse da CPU será **iniciado automaticamente 5 minutos** após a inicialização da instância
   + Nenhuma intervenção manual é necessária - basta esperar, o teste é executado completamente em segundo plano

1. **Monitore o teste**:
   + A instância inicializa e prepara o teste automaticamente
   + O script será executado por 5 minutos e gerará > 70% de uso da CPU
   + CloudWatch o alarme deve ser acionado dentro de 8 a 10 minutos no total (5 min de atraso \$1 3-5 min para alarme)

1. **Opcional: nova execução manual** (para testes adicionais):
   + Conecte-se à sua instância: console EC2 → → **Connect `AWS-DevOpsAgent-Test-Instance`** → **Session Manager**
   + Execute o teste de estresse novamente: `./cpu-stress-test.sh`
   + Perfeito para testar AWS DevOpsAgent a resposta várias vezes

## Opção de teste B: teste de taxa de erro Lambda
<a name="test-option-b-lambda-error-rate-test"></a>

### Etapa 1: implantar a CloudFormation pilha para o teste Lambda
<a name="step-1-deploy-cloudformation-stack-for-lambda-test"></a>

1. **Navegue até CloudFormation**:

   1. No AWS Console, acesse **CloudFormation**

   1. Clique em **Criar pilha** → **Com novos recursos (padrão)**

1. **Carregar modelo**:

   1. Crie um novo arquivo local chamado `AWS-DevOpsAgent-lambda-test.yaml`

   1. Copie e cole esse CloudFormation modelo no arquivo:

      1. 

         ```
         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'
         ```

   1. No CloudFormation console, selecione **Carregar um arquivo de modelo**

   1. Clique em **Escolher arquivo**

   1. Selecione o `AWS-DevOpsAgent-lambda-test.yaml` arquivo

   1. Clique em **Avançar**.

1. **Configurar pilha**:

   1. **Nome da pilha:** `AWS-DevOpsAgent-Lambda-Test`

   1. Clique em **Avançar**.

1. **Configure as opções de pilha:**

   1. **Deixe os padrões, clique em Avançar**

1. **Revisar e criar**:

   1. Verifique, **reconheço que isso AWS CloudFormation pode criar recursos do IAM**

   1. Clique em **Enviar**

1. **Aguarde a conclusão**:

   1. A criação da pilha leva de 2 a 3 minutos

   1. O status mudará para `CREATE_COMPLETE`

### Etapa 2: acionar erros do Lambda
<a name="step-2-trigger-lambda-errors"></a>

1. **Navegue até o console Lambda**:

   1. Vá para o console **AWS Lambda**

   1. Encontre sua função `AWS-DevOpsAgent-test-lambda`

1. **Teste a função**:

   1. Clique na guia **Teste**

   1. Clique em **Criar novo evento**

   1. **Nome do evento**: `AWS-DevOpsAgent-test-event`

   1. Use essa carga JSON:

      1. 

         ```
         {
         "test": "AWS DevOpsAgent validation",
         "timestamp": "2024-01-01T00:00:00Z"
         }
         ```

   1. Clique em **Salvar**

1. **Gere erros**:

   1. Clique no botão **Testar** 3 vezes (aguarde 10 segundos entre cada uma)

   1. Cada teste gerará um erro intencional

   1. CloudWatch o **alarme** deve ser acionado dentro de 2-3 minutos

   1. **AWS DevOpsAgent**agora deve ser capaz de detectar o alarme com uma **investigação** no **aplicativo Operator**, que você configurará a seguir.

## Validar a detecção AWS DevOps do agente
<a name="validate-aws-devops-agent-detection"></a>

### Etapa 1: CloudWatch alarmes de verificação de sanidade (opcional)
<a name="step-1-sanity-check-cloudwatch-alarms-optional"></a>

Esta etapa é para garantir que os testes acima estejam agora em um estado de alarme.

**Para o teste EC2:**
+ No CloudWatch console, acesse **Alarmes**
+ **Aguarde de 3 a 5 minutos** após iniciar o teste de estresse
+ Seu alarme deve aparecer **Em estado de alarme**
+ **Se ainda estiver “OK”**: aguarde mais 2 a 3 minutos (CloudWatch as métricas podem ser atrasadas)

**Para o Teste Lambda:**
+ Verifique o `AWS-DevOpsAgent-Lambda-Error-Test` alarme
+ Deve mostrar o **alarme** dentro de 2-3 minutos após a execução dos testes

### Etapa 2: iniciar uma investigação AWS DevOps do agente
<a name="step-2-start-a-aws-devops-agent-investigation"></a>

1. Abra seu **AWS DevOps agente AgentSpace**

1. Clique em **Acesso de administrador**. Isso abrirá o aplicativo web DevOps Agent Space em uma nova janela

1. Clique no botão **Iniciar investigação** no lado direito da tela

1. Preencha o seguinte formulário:

   1. **Detalhes da investigação:** descreva a investigação que você gostaria de realizar. Inclua todos os detalhes que puder sobre os objetivos da investigação, áreas a serem exploradas ou informações relevantes.

   1. **Ponto de partida da investigação**: descreva as informações a partir das quais você gostaria de iniciar a investigação. Você pode mencionar um alarme, uma métrica, um trecho de registro ou qualquer outra coisa para dar ao DevOps Agente um ponto de partida para trabalhar. Nesse caso, forneça um resumo dos alarmes que você acabou de criar.

   1. **Data e hora do incidente (de** preferência ISO 8601) ::MMZ YYYY-MM-DDTHH

   1. Dê um **nome à sua investigação:** exemplo: `Oncall_investigation_1:2025-10-27`

   1. **AWS ID da conta** do incidente

   1. **Região** onde o incidente ocorreu

   1. **Prioridade** - AWS DevOpsAgent permite duas investigações simultâneas. A Prioridade permite que você defina a ordem de execução de suas investigações.

1. Clique em Investigar para iniciar a investigação.

1. Clique na sua investigação listada no painel. Você será direcionado para a tela Detalhes da Investigação, onde poderá ver as etapas granulares que o DevOps Agente está realizando.

### Resultados esperados
<a name="expected-results"></a>

#### Resultados do teste EC2:
<a name="ec2-test-results"></a>
+ Detecta o alarme da CPU EC2
+ Identifica a causa raiz: “carga de trabalho do teste de estresse da CPU”
+ Mostra a linha do tempo: Teste de estresse → pico de CPU → Alarme
+ Fornece recomendações para monitoramento e escalabilidade

**Resultados do teste Lambda:**
+ Detecta o pico da taxa de erro do Lambda
+ Identifica a causa raiz: “Exceções de testes intencionais”
+ Mostra a linha do tempo: Invocações de funções → Erros → Alarme
+ Fornece recomendações para tratamento e monitoramento de erros

## Instruções de limpeza
<a name="cleanup-instructions"></a>

### Teste de limpeza A (teste EC2)
<a name="cleanup-test-a-ec2-test"></a>

#### Limpeza automática
<a name="automatic-cleanup"></a>
+ A instância será encerrada automaticamente após 2 horas ( CloudFormation incorporada ao modelo)

#### Limpeza manual (imediata)
<a name="manual-cleanup-immediate"></a>

1. **Excluir CloudFormation pilha**:

   1. Vá para o CloudFormation console

   1. Selecione a `AWS-DevOpsAgent-EC2-Test` pilha

   1. Clique em **Excluir**

   1. Confirme a exclusão

   1. **Isso excluirá automaticamente todos os recursos**: instância do EC2, grupo de segurança, key pair e alarme CloudWatch 

### Teste de limpeza B (teste Lambda)
<a name="cleanup-test-b-lambda-test"></a>

1. **Excluir CloudFormation pilha**:

   1. Vá para o CloudFormation console

   1. Selecione a `AWS-DevOpsAgent-Lambda-Test` pilha

   1. Clique em **Excluir**

   1. Confirme a exclusão

   1. **Isso excluirá automaticamente todos os recursos**: função Lambda, função do IAM e alarme CloudWatch 

## Solução de problemas
<a name="troubleshooting"></a>

### Problemas comuns
<a name="common-issues"></a>

#### “Não é possível se conectar à instância do EC2”
<a name="cant-connect-to-ec2-instance"></a>
+ **Verifique o grupo de segurança**: verifique se o SSH (porta 22) está aberto para o seu IP
+ **Verifique as principais permissões**: Executar `chmod 400 AWS-DevOpsAgent-test-key.pem`
+ **Verifique o IP público**: a instância deve ter um IP público atribuído
+ **Aguarde a instância**: verifique se a instância está no estado “Executando”

#### “O alarme não está sendo acionado”
<a name="alarm-not-triggering"></a>
+ **Aguarde as métricas**: CloudWatch as métricas podem levar de 2 a 5 minutos para aparecer
+ **Verifique a carga da CPU**: SSH para a instância e execute `top` para verificar a CPU > 70%
+ **Verifique o teste de estresse**: execute `ps aux | grep yes` para ver se os processos de carregamento estão em execução
+ **Espera prolongada**: às vezes, leva de 7 a 8 minutos para o primeiro acionamento do alarme

## Validação de testes
<a name="test-validation"></a>

Seu teste de AWS DevOp agente é bem-sucedido quando:

### Validação técnica
<a name="technical-validation"></a>
+ **Precisão da investigação**: Os resultados do teste EC2 devem indicar corretamente que o alarme foi acionado devido à carga da CPU. O resultado do teste Lambda deve indicar que se tratou de uma falha intencional.
+ **Precisão do cronograma**: sequência correta de eventos mostrados
+ **Qualidade da recomendação**: sugestões práticas fornecidas