

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á.

# Configurar as regras de integridade aperfeiçoada de um ambiente
<a name="health-enhanced-rules"></a>

AWS Elastic Beanstalk os relatórios de integridade aprimorados dependem de um conjunto de regras para determinar a integridade do seu ambiente. Algumas dessas regras podem não ser adequadas para o seu aplicativo. Veja a seguir alguns exemplos comuns:
+ Você usa ferramentas de teste no lado do cliente. Nesse caso, são esperados erros frequentes de cliente HTTP (4xx).
+ Use o [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/) junto com o Application Load Balancer do ambiente para bloquear tráfego de entrada indesejado. Nesse caso, o Application Load Balancer retorna HTTP 403 para cada mensagem recebida rejeitada.

Por padrão, o Elastic Beanstalk inclui todos os erros HTTP 4xx da aplicação ao determinar a integridade do ambiente. Ele altera o status de integridade do ambiente de **OK** para **Aviso**, **Degradado** ou **Grave**, dependendo da taxa de erros. Para lidar corretamente com casos como os exemplos que mencionamos, o Elastic Beanstalk permite configurar algumas regras de integridade aprimorada. É possível optar por ignorar os erros HTTP 4xx do aplicativo nas instâncias do ambiente ou ignorar os erros HTTP 4xx retornados pelo load balancer do ambiente. Este tópico descreve como fazer essas alterações de configuração.

**nota**  
No momento, essas são as únicas personalizações de regras de integridade avançada disponíveis. Não é possível configurar a integridade avançada para ignorar outros erros HTTP além do 4xx.

## Configurar regras de integridade aprimorada usando o console do Elastic Beanstalk
<a name="health-enhanced-rules.console"></a>

É possível usar o console do Elastic Beanstalk para configurar regras de integridade aprimorada no ambiente.

**Como configurar a verificação de código de status HTTP 4xx usando o console do Elastic Beanstalk**

1. Abra o console do [Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk e, **na** lista Regiões, selecione sua. Região da AWS

1. No painel de navegação, selecione **Ambientes** e selecione o nome do ambiente na lista.

1. No painel de navegação, escolha **Configuration (Configuração)**.

1. Na categoria de configuração **Monitoring (Monitoramento)**, escolha **Edit (Editar)**.

1. Em **Health monitoring rule customization (Personalização da regra de monitoramento de integridade)**, habilite ou desabilite as opções **Ignore (Ignorar)** desejadas.  
![\[Seção de personalização da regra de monitoramento de integridade na página de configuração de monitoramento do console do Elastic Beanstalk\]](http://docs.aws.amazon.com/pt_br/elasticbeanstalk/latest/dg/images/enhanced-health-rule-customization.png)

1. Para salvar as alterações, escolha **Apply (Aplicar)** na parte inferior da página.

## Configurar regras de integridade aprimorada usando a EB CLI
<a name="health-enhanced-rules.ebcli"></a>

Use a CLI do EB para configurar regras de integridade aprimorada, salvando a configuração do ambiente localmente, adicionando uma entrada que defina essas regras e fazendo upload da configuração no Elastic Beanstalk. Você pode aplicar a configuração salva a um ambiente durante ou após a criação.

**Como configurar a verificação de código de status HTTP 4xx usando a CLI do EB e configurações salvas**

1. Inicialize a pasta do projeto com [**eb init**](eb-cli3-configuration.md).

1. Crie um ambiente executando o comando **eb create**.

1. Salve um modelo de configuração localmente, executando o comando **eb config save**. O exemplo a seguir usa a opção `--cfg` para especificar o nome da configuração.

   ```
   $ eb config save --cfg 01-base-state
   Configuration saved at: ~/project/.elasticbeanstalk/saved_configs/01-base-state.cfg.yml
   ```

1. Abra o arquivo de configuração salvo em um editor de texto.

1. Em `OptionSettings` > `aws:elasticbeanstalk:healthreporting:system:`, adicione uma chave `ConfigDocument` para listar cada regra de integridade aprimorada a ser configurada. O `ConfigDocument` a seguir desabilita a verificação dos códigos de status HTTP 4xx do aplicativo, mantendo a verificação do código HTTP 4xx do load balancer habilitada.

   ```
   OptionSettings:
     ...
     aws:elasticbeanstalk:healthreporting:system:
       ConfigDocument:
         Rules:
           Environment:
             Application:
               ApplicationRequests4xx:
                 Enabled: false
             ELB:
               ELBRequests4xx:
                 Enabled: true
         Version: 1
       SystemType: enhanced
   ...
   ```
**nota**  
É possível combinar `Rules` e `CloudWatchMetrics` na mesma configuração da opção `ConfigDocument`. `CloudWatchMetrics` são descritas em [Publicação de métricas CloudWatch personalizadas da Amazon para um ambiente](health-enhanced-cloudwatch.md).  
Se você tiver habilitado `CloudWatchMetrics` anteriormente, o arquivo de configuração recuperado usando o comando **eb config save** já terá uma chave `ConfigDocument` com uma seção `CloudWatchMetrics`. *Não o exclua*, em vez disso, adicione uma seção `Rules` no mesmo valor da opção `ConfigDocument`.

1. Salve o arquivo de configuração e feche o editor de texto. Neste exemplo, o arquivo de configuração atualizado é salvo com um nome (`02-cloudwatch-enabled.cfg.yml`) diferente do arquivo de configuração obtido por download. Isso cria uma configuração salva separada quando o arquivo é carregado. Você pode usar o mesmo nome que o arquivo baixado para substituir a configuração existente, sem criar um novo.

1. Use o comando **eb config put** para fazer upload do arquivo de configuração atualizado no Elastic Beanstalk.

   ```
   $ eb config put 02-cloudwatch-enabled
   ```

   Ao usar os comandos **eb config**, `get` e `put` com configurações salvas, não inclua a extensão do nome do arquivo.

1. Aplique a configuração salva ao ambiente em execução.

   ```
   $ eb config --cfg 02-cloudwatch-enabled
   ```

   A opção `--cfg` especifica um arquivo de configuração nomeado que é aplicado ao ambiente. É possível salvar o arquivo de configuração localmente ou no Elastic Beanstalk. Se um arquivo de configuração com o nome especificado já existir em ambos os locais, a EB CLI usará o arquivo local.

## Configurar regras de integridade aprimorada usando um documento de configuração
<a name="health-enhanced-rules.configdocument"></a>

O documento de configuração (config) para regras de integridade aprimorada é um documento JSON que lista as regras a serem configuradas. 

O exemplo a seguir mostra um documento de configuração que desabilita a verificação de códigos de status HTTP 4xx do aplicativo e habilita a verificação de códigos de status HTTP 4xx do load balancer.

```
{
  "Rules": {
    "Environment": {
      "Application": {
        "ApplicationRequests4xx": {
          "Enabled": false
        }
      },
      "ELB": {
        "ELBRequests4xx": {
          "Enabled": true
        }
      }
    }
  },
  "Version": 1
}
```

Para o AWS CLI, você passa o documento como um valor para a `Value` chave em um argumento de configurações de opção, que por si só é um objeto JSON. Nesse caso, você deve escapar as aspas no documento incorporado. O comando a seguir verifica se as definições de configuração são válidas.

```
$ aws elasticbeanstalk validate-configuration-settings --application-name my-app --environment-name my-env --option-settings '[
    {
        "Namespace": "aws:elasticbeanstalk:healthreporting:system",
        "OptionName": "ConfigDocument",
        "Value": "{\"Rules\": { \"Environment\": { \"Application\": { \"ApplicationRequests4xx\": { \"Enabled\": false } }, \"ELB\": { \"ELBRequests4xx\": {\"Enabled\": true } } } }, \"Version\": 1 }"
    }
]'
```

Para um arquivo de configuração `.ebextensions` em YAML, você pode fornecer o documento JSON no estado em que está.

```
  option_settings:
    - namespace: aws:elasticbeanstalk:healthreporting:system
      option_name: ConfigDocument
      value: {
  "Rules": {
    "Environment": {
      "Application": {
        "ApplicationRequests4xx": {
          "Enabled": false
        }
      },
      "ELB": {
        "ELBRequests4xx": {
          "Enabled": true
        }
      }
    }
  },
  "Version": 1
}
```