

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.

# Uso de las acciones integradas del depurador para reglas
<a name="debugger-built-in-actions"></a>

Utilice las acciones integradas del depurador para actuar ante los problemas encontrados por [Regla de depurador](debugger-built-in-rules.md#debugger-built-in-rules-Rule). La clase `rule_configs` del depurador proporciona herramientas para configurar una lista de acciones, como detener automáticamente los trabajos de entrenamiento y enviar notificaciones mediante el Amazon Simple Notification Service (Amazon SNS) cuando las reglas del depurador detecten problemas de entrenamiento. Los siguientes temas lo guiarán a través de los pasos necesarios para realizar estas tareas.

**Topics**
+ [Configuración de Amazon SNS, creación de un tema `SMDebugRules` y suscripción al tema](#debugger-built-in-actions-sns)
+ [Configuración del rol de IAM para asociar las políticas obligatorias](#debugger-built-in-actions-iam)
+ [Configuración de las reglas del depurador con las acciones integradas](#debugger-built-in-actions-on-rule)
+ [Consideraciones sobre el uso de las acciones integradas del depurador](#debugger-built-in-actions-considerations)

## Configuración de Amazon SNS, creación de un tema `SMDebugRules` y suscripción al tema
<a name="debugger-built-in-actions-sns"></a>

En esta sección, se explica cómo configurar un tema **SMDebugRules** de Amazon SNS, cómo suscribirse a él y cómo confirmar la suscripción para recibir notificaciones desde las reglas del depurador.

**nota**  
[Para obtener más información sobre la facturación de Amazon SNS, consulte los precios de Amazon [SNS y Amazon SNS](https://aws.amazon.com/sns/pricing/). FAQs](https://aws.amazon.com/sns/faqs/)

**Para crear un tema sobre reglas SMDebug**

1. [Inicie sesión en la consola Amazon SNS en la v3/home Consola de administración de AWS y ábrala. https://console.aws.amazon.com/sns/](https://console.aws.amazon.com/sns/v3/home)

1. En el panel de navegación izquierdo, elija **Topics (Temas)**. 

1. En la página **Temas**, elija **Crear tema**.

1. En la página **Crear tema**, en la sección **Detalles**, haga lo siguiente:

   1. En **Tipo**, elija **Estándar** como tipo de tema.

   1. En **Name (Nombre)**, escriba **SMDebugRules**.

1. Omita todos los demás ajustes opcionales y seleccione **Crear un tema**. Si desea obtener más información sobre la configuración opcional, consulte [Creación de un tema de Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html).

**Para suscribirse al tema Reglas SMDebug**

1. [Abra la consola Amazon SNS en https://console.aws.amazon.com/sns/ la versión 3/home.](https://console.aws.amazon.com/sns/v3/home)

1. En el panel de navegación izquierdo, elija **Suscripciones**. 

1. En la página **Subscriptions (Suscripciones)**, elija **Create subscription (Crear suscripción)**.

1. En la página **Crear suscripción**, en la sección **Detalles**, haga lo siguiente: 

   1. Para **el tema ARN**, elija el tema de **SMDebugreglas ARN**. El ARN debe tener el formato `arn:aws:sns:<region-id>:111122223333:SMDebugRules`.

   1. En **Protocol (Protocolo)**, elija **Email (Correo electrónico)** o **SMS**. 

   1. En **Punto de conexión**, introduzca el valor del punto de conexión, como una dirección de correo electrónico o un número de teléfono para recibir notificaciones.
**nota**  
Asegúrese de escribir correctamente la dirección de correo electrónico y el número de teléfono. Los números de teléfono deben estar compuestos por `+`, un código de país y un número de teléfono, sin caracteres especiales ni espacios. Por ejemplo, el número de teléfono \$11 (222) 333-4444 tendría el formato **\$112223334444**.

1. Omita todos los demás ajustes opcionales y seleccione **Crear suscripción**. Si desea obtener más información sobre la configuración opcional, consulte [Suscripción a un tema de Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html).

Tras suscribirse al tema de las **SMDebugreglas**, recibirá el siguiente mensaje de confirmación por correo electrónico o por teléfono:

![\[Un mensaje de correo electrónico de confirmación de suscripción para el tema SMDebugReglas de Amazon SNS.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-built-in-action-subscription-confirmation.png)


Para obtener más información sobre Amazon SNS, consulte [Mensajería de texto móvil (SMS)](https://docs.aws.amazon.com/sns/latest/dg/sns-mobile-phone-number-as-subscriber.html) y [Notificaciones por correo electrónico](https://docs.aws.amazon.com/sns/latest/dg/sns-email-notifications.html) en la *Guía para desarrolladores de Amazon SNS*.

## Configuración del rol de IAM para asociar las políticas obligatorias
<a name="debugger-built-in-actions-iam"></a>

En este paso, agregará las políticas obligatorias en su rol de IAM.

**Para agregar las políticas obligatorias a su rol de IAM**

1. Inicie sesión en la consola de IAM Consola de administración de AWS y ábrala en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. En el panel de navegación de la izquierda, seleccione **Políticas** y **Crear política**.

1. En la página **Crear política**, haga lo siguiente para crear una nueva política de acceso SNS:

   1. Seleccione la pestaña **JSON**.

   1. Pegue las cadenas JSON formateadas en negrita del siguiente código en el`"Statement"`, sustituyendo el ID de AWS cuenta de 12 dígitos por el suyo. AWS 

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "VisualEditor0",
                  "Effect": "Allow",
                  "Action": [
                      "sns:Publish",
                      "sns:CreateTopic",
                      "sns:Subscribe"
                  ],
                  "Resource": "arn:aws:sns:*:111122223333:SMDebugRules"
              }
          ]
      }
      ```

------

   1. En la parte inferior de la página, seleccione **Revisar la política**.

   1. En la página **Crear política**, en **Nombre**, ingrese **sns-access**.

   1. En la parte superior de la página, seleccione **Crear política**.

1. Vuelva a la consola de IAM y seleccione **Roles** en el panel de navegación de la izquierda.

1. Busca el rol de IAM que utilizas para la formación de modelos de SageMaker IA y elige ese rol de IAM.

1. En la pestaña **Permisos** de la página **Resumen**, seleccione **Adjuntar políticas**.

1. Busque la política de **acceso SNS**, seleccione la casilla situada junto a la política y, a continuación, elija **Adjuntar política**.

Para ver más ejemplos de configuración de políticas de IAM para Amazon SNS, consulte [Ejemplos de casos de control de acceso con Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-access-policy-use-cases.html).

## Configuración de las reglas del depurador con las acciones integradas
<a name="debugger-built-in-actions-on-rule"></a>

Tras completar correctamente los ajustes necesarios en los pasos anteriores, puede configurar las acciones integradas del depurador para las reglas de depuración, tal y como se muestra en el siguiente script de ejemplo. Puede elegir qué acciones integradas utilizar al crear el objeto de la lista de `actions`. El `rule_configs` es un módulo auxiliar que proporciona herramientas de alto nivel para configurar las reglas y acciones integradas en el depurador. Lo que sigue es una lista de acciones integradas disponibles para el depurador.
+ `rule_configs.StopTraining()`: detiene un trabajo de entrenamiento cuando la regla del depurador detecta un problema.
+ `rule_configs.Email("abc@abc.com")`: envía una notificación por correo electrónico cuando la regla del depurador detecta un problema. Use la dirección de correo electrónico que utilizó al configurar su suscripción a un tema de SNS.
+ `rule_configs.SMS("+1234567890")`: envía una notificación por mensaje de texto cuando la regla del depurador detecta un problema. Use el número de teléfono que utilizó al configurar su suscripción a un tema de SNS.
**nota**  
Asegúrese de escribir correctamente la dirección de correo electrónico y el número de teléfono. Los números de teléfono deben estar compuestos por `+`, un código de país y un número de teléfono, sin caracteres especiales ni espacios. Por ejemplo, el número de teléfono \$11 (222) 333-4444 tendría el formato **\$112223334444**.

Puede utilizar todas las acciones integradas o un subconjunto de acciones. Para ello, utilice el método `rule_configs.ActionList()`, que toma las acciones integradas y configura una lista de acciones.

**Para añadir las tres acciones integradas a una sola regla**

Si desea asignar las tres acciones integradas a una sola regla, configure una lista de acciones integradas en el depurador mientras crea un estimador. Utilice la siguiente plantilla para construir el estimador; el depurador interrumpirá los trabajos de entrenamiento y enviará notificaciones por correo electrónico y mensaje de texto para cualquier regla que utilice a fin de supervisar el progreso de los trabajos de entrenamiento.

```
from sagemaker.debugger import Rule, rule_configs

# Configure an action list object for Debugger rules
actions = rule_configs.ActionList(
    rule_configs.StopTraining(), 
    rule_configs.Email("abc@abc.com"), 
    rule_configs.SMS("+1234567890")
)

# Configure rules for debugging with the actions parameter
rules = [
    Rule.sagemaker(
        base_config=rule_configs.built_in_rule(),         # Required
        rule_parameters={"paramter_key": value },        # Optional
        actions=actions
    )
]

estimator = Estimator(
    ...
    rules = rules
)

estimator.fit(wait=False)
```

**Para crear varios objetos de acción integrados a fin de asignar diferentes acciones a una sola regla**

Si desea asignar las acciones integradas para que se activen con diferentes valores de umbral de una sola regla, puede crear varios objetos de acción integrados, como se muestra en el siguiente script. Para evitar un error de conflicto al ejecutar la misma regla, debe enviar nombres de trabajo de regla diferentes (especifique cadenas diferentes para el atributo `name` de las reglas), como se muestra en el siguiente ejemplo de plantilla de script. Este ejemplo muestra cómo configurar [StalledTrainingRule](debugger-built-in-rules.md#stalled-training) para llevar a cabo dos acciones diferentes: enviar un correo electrónico a `abc@abc.com` cuando un trabajo de entrenamiento se para durante 60 segundos y detener el trabajo de entrenamiento si se detiene durante 120 segundos.

```
from sagemaker.debugger import Rule, rule_configs
import time

base_job_name_prefix= 'smdebug-stalled-demo-' + str(int(time.time()))

# Configure an action object for StopTraining
action_stop_training = rule_configs.ActionList(
    rule_configs.StopTraining()
)

# Configure an action object for Email
action_email = rule_configs.ActionList(
    rule_configs.Email("abc@abc.com")
)

# Configure a rule with the Email built-in action to trigger if a training job stalls for 60 seconds
stalled_training_job_rule_email = Rule.sagemaker(
        base_config=rule_configs.stalled_training_rule(),
        rule_parameters={
                "threshold": "60", 
                "training_job_name_prefix": base_job_name_prefix
        },
        actions=action_email
)
stalled_training_job_rule_text.name="StalledTrainingJobRuleEmail"

# Configure a rule with the StopTraining built-in action to trigger if a training job stalls for 120 seconds
stalled_training_job_rule = Rule.sagemaker(
        base_config=rule_configs.stalled_training_rule(),
        rule_parameters={
                "threshold": "120", 
                "training_job_name_prefix": base_job_name_prefix
        },
        actions=action_stop_training
)
stalled_training_job_rule.name="StalledTrainingJobRuleStopTraining"

estimator = Estimator(
    ...
    rules = [stalled_training_job_rule_email, stalled_training_job_rule]
)

estimator.fit(wait=False)
```

Mientras se ejecuta el trabajo de entrenamiento, la acción integrada del depurador envía notificaciones por correo electrónico y mensajes de texto cuando la regla detecta problemas en el trabajo de entrenamiento. La siguiente captura de pantalla muestra un ejemplo de notificación por correo electrónico para un trabajo de entrenamiento detenido. 

![\[Un ejemplo de notificación por correo electrónico que Debugger envía cuando detecta un problema. StalledTraining\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-built-in-action-email.png)


La siguiente captura de pantalla muestra un ejemplo de notificación de texto que Debugger envía cuando la regla detecta un StalledTraining problema.

![\[Un ejemplo de notificación de texto que Debugger envía cuando detecta un StalledTraining problema.\]](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/debugger/debugger-built-in-action-text.png)


## Consideraciones sobre el uso de las acciones integradas del depurador
<a name="debugger-built-in-actions-considerations"></a>
+ Para utilizar las acciones integradas del depurador, se necesita una conexión a Internet. Esta función no se admite en el modo de aislamiento de red que proporcionan Amazon SageMaker AI o Amazon VPC.
+ Las acciones integradas no se pueden utilizar para [Reglas del generador de perfiles](debugger-built-in-profiler-rules.md#debugger-built-in-profiler-rules-ProfilerRule).
+ Las acciones integradas no se pueden utilizar en trabajos de entrenamiento con interrupciones puntuales.
+ En las notificaciones por correo electrónico o mensaje de texto, al final de los mensajes aparece `None`. Esto no significa nada, por lo que puede ignorar el `None`.