

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración de las reglas de informes de estado avanzados de un entorno
<a name="health-enhanced-rules"></a>

AWS Elastic Beanstalk los informes de estado mejorados se basan en un conjunto de reglas para determinar el estado de su entorno. Algunas de estas reglas podrían no ser adecuadas para su aplicación específica. A continuación, se presentan algunos ejemplos comunes:
+ Utiliza herramientas de prueba del lado del cliente. En este caso, se esperan errores de cliente HTTP (4xx) frecuentes.
+ Utilice [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/) junto con el Application Load Balancer de su entorno para bloquear el tráfico entrante no deseado. En este caso, el equilibrador de carga de aplicaciones devuelve HTTP 403 por cada mensaje entrante rechazado.

De forma predeterminada, Elastic Beanstalk incluye todos los errores HTTP 4xx de la aplicación al determinar el estado del entorno. Cambia el estado de su entorno de **Correcto** a **Advertencia**, **Degradado** o **Grave**, en función de la tasa de errores. Para administrar correctamente casos como los ejemplos indicados, Elastic Beanstalk permite configurar algunas reglas de informes de estado avanzados. Puede optar por omitir los errores HTTP 4xx de la aplicación en las instancias del entorno u omitir los errores HTTP 4xx devueltos por el equilibrador de carga del entorno. En este tema se describe cómo realizar estos cambios de configuración.

**nota**  
En la actualidad, estas son las únicas personalizaciones de reglas de informes de estado avanzados disponibles. No puede configurar los informes de estado avanzados para ignorar otros errores HTTP además de 4xx.

## Configuración de reglas de mantenimiento mejoradas mediante la consola de Elastic Beanstalk
<a name="health-enhanced-rules.console"></a>

Puede utilizar la consola de Elastic Beanstalk para configurar reglas de estado avanzado en su entorno.

**Para configurar la comprobación de código de estado HTTP 4xx mediante la consola de Elastic Beanstalk**

1. Abra la consola de [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) y, **en** la lista Regiones, seleccione su. Región de AWS

1. En el panel de navegación, elija **Environments** (Entornos) y, a continuación, elija el nombre del entorno en la lista.

1. En el panel de navegación, elija **Configuration (Configuración)**.

1. En la categoría de configuración **Monitoring (Supervisión)**, seleccione **Edit (Edición de)**.

1. En **Health monitoring rule customization (Personalización de la regla de supervisión de estado)**, habilite o deshabilite las opciones **Ignore (Omitir)**.  
![Sección de personalización de reglas de supervisión de estado en la página de configuración de supervisión de la consola de Elastic Beanstalk](http://docs.aws.amazon.com/es_es/elasticbeanstalk/latest/dg/images/enhanced-health-rule-customization.png)

1. Para guardar los cambios, elija **Aplicar** en la parte inferior de la página.

## Configuración de reglas de informes de estado avanzados mediante la CLI de EB
<a name="health-enhanced-rules.ebcli"></a>

Puede utilizar la CLI de EB para configurar reglas de estado avanzado guardando localmente la configuración del entorno, añadiendo una entrada que configure las reglas de estado avanzado y cargando la configuración en Elastic Beanstalk. Puede aplicar la configuración guardada al entorno durante o después de la creación.

**Para configurar la comprobación de código de estado HTTP 4xx mediante la CLI de EB y las configuraciones guardadas**

1. Inicialice la carpeta del proyecto con [**eb init**](eb-cli3-configuration.md).

1. Cree un entorno ejecutando el comando **eb create**.

1. Guarde una plantilla de configuración localmente ejecutando el comando **eb config save**. En el ejemplo siguiente, se utiliza la opción `--cfg` para especificar el nombre de la configuración.

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

1. Abra el archivo de configuración guardado en un editor de texto.

1. En `OptionSettings` > `aws:elasticbeanstalk:healthreporting:system:`, agregue una clave `ConfigDocument` para mostrar cada regla de estado avanzado que se va a configurar. El siguiente `ConfigDocument` deshabilita la comprobación de los códigos de estado HTTP 4xx de la aplicación, mientras mantiene habilitada la comprobación del código HTTP 4xx del equilibrador de carga.

   ```
   OptionSettings:
     ...
     aws:elasticbeanstalk:healthreporting:system:
       ConfigDocument:
         Rules:
           Environment:
             Application:
               ApplicationRequests4xx:
                 Enabled: false
             ELB:
               ELBRequests4xx:
                 Enabled: true
         Version: 1
       SystemType: enhanced
   ...
   ```
**nota**  
Puede combinar `Rules` y `CloudWatchMetrics` en el mismo ajuste de opción de `ConfigDocument`. `CloudWatchMetrics` se describen en [Publicar métricas CloudWatch personalizadas de Amazon para un entorno](health-enhanced-cloudwatch.md).  
Si ha habilitado previamente `CloudWatchMetrics`, el archivo de configuración que recupere mediante el comando **eb config save** ya tiene una clave `ConfigDocument` con una sección `CloudWatchMetrics`. *No lo elimine*; agrega una sección `Rules` en el mismo valor de la opción `ConfigDocument`.

1. Guarde el archivo de configuración y cierre el editor de texto. En este ejemplo, el archivo de configuración actualizado se ha guardado con otro nombre (`02-cloudwatch-enabled.cfg.yml`) que sea diferente al del archivo de configuración que se descargó. De este modo, se crea una configuración guardada distinta cuando se cargue el archivo. Puede utilizar el mismo nombre que el del archivo descargado para sobrescribir la configuración existente sin crear una nueva.

1. Utilice el comando **eb config put** para cargar el archivo de configuración actualizado a Elastic Beanstalk.

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

   Si utiliza los comandos **eb config** `get` y `put` con configuraciones guardadas, no incluya la extensión de nombre de archivo.

1. Aplique la configuración guardada en el entorno que está en ejecución.

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

   La opción `--cfg` especifica el archivo de configuración designado que se aplica al entorno. Puede guardar el archivo de configuración localmente o en Elastic Beanstalk. Si hay un archivo de configuración con el nombre especificado en las dos ubicaciones, la CLI de EB utiliza el archivo local.

## Configuración de reglas de informes de estado avanzados mediante un documento de configuración
<a name="health-enhanced-rules.configdocument"></a>

El documento de configuración (config) para reglas de estado avanzado es un documento JSON que contiene una lista de las reglas que se van a configurar. 

El siguiente ejemplo muestra un documento de configuración que deshabilita la comprobación de los códigos de estado HTTP 4xx de la aplicación y habilita la comprobación de los códigos de estado HTTP 4xx del equilibrador de carga.

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

En el caso de AWS CLI, se pasa el documento como valor de la `Value` clave de un argumento de configuración de opciones, que a su vez es un objeto JSON. En este caso, las comillas del documento insertado deben escribirse con caracteres de escape. El siguiente comando comprueba si los ajustes de configuración son válidos.

```
$ 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 }"
    }
]'
```

En los archivos de configuración `.ebextensions` de YAML, puede proporcionar el documento JSON tal y como está.

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