

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

# Usar ações integradas das regras do Depurador
<a name="debugger-built-in-actions"></a>

Use as ações integradas do Debugger para responder aos problemas encontrados por [Regra do Depurador](debugger-built-in-rules.md#debugger-built-in-rules-Rule). A classe `rule_configs` Debugger fornece ferramentas para configurar uma lista de ações, incluindo a interrupção automática de trabalhos de treinamento e o envio de notificações usando o Amazon Simple Notification Service (Amazon SNS) quando as regras do Debugger encontram problemas de treinamento. Os tópicos a seguir orienta as etapas necessárias para realizar essas tarefas.

**Topics**
+ [Configurar o Amazon SNS, criar um tópico `SMDebugRules` e assinar o tópico](#debugger-built-in-actions-sns)
+ [Configurar o seu perfil do IAM para anexar as políticas necessárias](#debugger-built-in-actions-iam)
+ [Configuração das regras do Depurador com ações integradas](#debugger-built-in-actions-on-rule)
+ [Considerações sobre o uso das ações integradas do Depurador](#debugger-built-in-actions-considerations)

## Configurar o Amazon SNS, criar um tópico `SMDebugRules` e assinar o tópico
<a name="debugger-built-in-actions-sns"></a>

Esta seção explica como configurar um **SMDebugRules** tópico do Amazon SNS, inscrever-se nele e confirmar a assinatura para receber notificações das regras do Debugger.

**nota**  
[Para obter mais informações sobre o faturamento do Amazon SNS, consulte os preços do Amazon SNS [e o Amazon SNS](https://aws.amazon.com/sns/pricing/). FAQs](https://aws.amazon.com/sns/faqs/)

**Para criar um tópico de SMDebug regras**

1. [Faça login no Console de gerenciamento da AWS e abra o console do Amazon SNS em https://console.aws.amazon.com/sns/ v3/home.](https://console.aws.amazon.com/sns/v3/home)

1. No painel de navegação à esquerda, selecione **Tópicos**. 

1. Na página **Tópicos**, escolha **Criar tópico**.

1. Na página **Criar tópico**, na seção **Detalhes**, faça o seguinte:

   1. Em **Tipo**, escolha **Padrão** para o tipo de tópico.

   1. Em **Nome**, insira **SMDebugRules**.

1. Ignore todas as outras configurações opcionais e escolha **Criar tópico**. Se você quiser saber mais sobre as configurações opcionais, consulte o tópico [Criação de um Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html).

**Para se inscrever no tópico SMDebug Regras**

1. [Abra o console do Amazon SNS em https://console.aws.amazon.com/sns/ v3/home.](https://console.aws.amazon.com/sns/v3/home)

1. No painel de navegação à esquerda, selecione **Assinaturas**. 

1. Na página **Assinaturas**, escolha **Criar assinatura**.

1. Na página **Criar assinatura**, na seção **Detalhes**, faça o seguinte: 

   1. Em **ARN do tópico, escolha o ARN** do tópico **SMDebugRegras**. O ARN deve estar no formato de `arn:aws:sns:<region-id>:111122223333:SMDebugRules`.

   1. Em **Protocolo**, escolha **Email** ou **SMS**. 

   1. Em **Endpoint**, insira o valor do endpoint, como um endereço de e-mail ou um número de telefone do qual você deseja receber notificações.
**nota**  
Certifique-se de digitar o endereço de e-mail e o número de telefone corretos. Os números de telefone devem incluir `+`, um código de país e um número de telefone, sem caracteres especiais ou espaços. Por exemplo, o número de telefone \$11 (222) 333-4444 está formatado como **\$112223334444**.

1. Ignore todas as outras configurações opcionais e escolha **Criar assinatura**. Se você quiser saber mais sobre as configurações opcionais, consulte o tópico [Inscrevendo-se para um Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html).

Depois de assinar o tópico **SMDebugRegras**, você receberá a seguinte mensagem de confirmação por e-mail ou telefone:

![\[Uma mensagem de e-mail de confirmação da assinatura para o tópico SMDebugRegras do Amazon SNS.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/debugger/debugger-built-in-action-subscription-confirmation.png)


Para obter mais informações sobre o Amazon SNS, consulte [Mensagens de texto móveis (SMS)](https://docs.aws.amazon.com/sns/latest/dg/sns-mobile-phone-number-as-subscriber.html) e [Notificações por e-mail](https://docs.aws.amazon.com/sns/latest/dg/sns-email-notifications.html) no *Guia do desenvolvedor do Amazon SNS*.

## Configurar o seu perfil do IAM para anexar as políticas necessárias
<a name="debugger-built-in-actions-iam"></a>

Nesta etapa, adicione as políticas necessárias à perfil do IAM.

**Para adicionar as políticas necessárias à sua perfil do IAM**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação à esquerda, selecione **Políticas** e **Criar política**.

1. Na página **Criar política**, faça o seguinte para criar uma nova política de acesso ao sns:

   1. Selecione a guia **JSON**.

   1. Cole as sequências de caracteres JSON formatadas em negrito no código a seguir no`"Statement"`, substituindo o ID da conta de 12 dígitos pelo ID da AWS sua conta. 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. Na parte inferior da página, escolha **Revisar política**.

   1. Na página **Revisar política**, em **Nome**, insira **sns-access**.

   1. Na parte inferior da página, escolha **Criar política**.

1. Volte para o console do IAM e escolha **Funções** no painel de navegação à esquerda.

1. Pesquise a função do IAM que você usa para o treinamento do modelo de SageMaker IA e escolha essa função do IAM.

1. Na guia de **Permissões** da página **Resumo**, escolha **Anexar políticas**.

1. Pesquise a política de **acesso sns**, marque a caixa de seleção ao lado da política e escolha **Anexar política**.

Para obter mais exemplos de configuração de políticas do IAM para o Amazon SNS, consulte [Exemplos de casos de controle de acesso ao Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-access-policy-use-cases.html).

## Configuração das regras do Depurador com ações integradas
<a name="debugger-built-in-actions-on-rule"></a>

Depois de concluir com êxito as configurações necessárias nas etapas anteriores, você poderá configurar as ações integradas do Debugger para regras de depuração, conforme mostrado no script de exemplo a seguir. Você pode escolher quais ações internas usar ao criar o objeto da lista `actions`. O `rule_configs` é um módulo auxiliar que fornece ferramentas de alto nível para configurar as regras e ações integradas do Debugger. As seguintes ações integradas estão disponíveis para o Debugger:
+ `rule_configs.StopTraining()`: Interrompe um trabalho de treinamento quando a regra do Debugger encontra um problema.
+ `rule_configs.Email("abc@abc.com")`: Envia uma notificação por e-mail quando a regra do Debugger encontra um problema. Use o endereço de e-mail que você usou ao configurar sua assinatura de tópicos do SNS.
+ `rule_configs.SMS("+1234567890")`: Envia uma notificação por mensagem de texto quando a regra do Debugger encontra um problema. Use o número de telefone que você usou ao configurar sua assinatura de tópico SNS.
**nota**  
Certifique-se de digitar o endereço de e-mail e o número de telefone corretos. Os números de telefone devem incluir `+`, um código do país e um número de telefone, sem caracteres especiais ou espaços. Por exemplo, o número de telefone \$11 (222) 333-4444 está formatado como **\$112223334444**.

Você pode usar todas as ações integradas ou um subconjunto de ações concluindo usando o método `rule_configs.ActionList()`, que usa as ações integradas e configura uma lista de ações.

**Para adicionar todas as três ações integradas a uma única regra**

Se você quiser atribuir todas as três ações integradas a uma única regra, configure uma lista de ações integradas do Debugger ao construir um estimador. Use o modelo a seguir para construir o estimador, e o Debugger interromperá os trabalhos de treinamento e enviará notificações por email e texto para quaisquer regras que você usar para monitorar o progresso do seu trabalho de treinamento.

```
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 criar vários objetos de ação integrados para atribuir ações diferentes a uma única regra**

Se desejar atribuir ações integradas para serem acionadas em diferentes valores de limite de uma única regra, você poderá criar vários objetos de ação integrados, conforme mostrado no script a seguir. Para evitar um erro de conflito ao executar a mesma regra, você deve enviar nomes de tarefas de regras diferentes (especificar sequências diferentes para o atributo `name` das regras), conforme mostrado no modelo de script de exemplo a seguir. Este exemplo mostra como configurar [StalledTrainingRule](debugger-built-in-rules.md#stalled-training) para realizar duas ações diferentes: enviar um e-mail para `abc@abc.com` quando um trabalho de treinamento parar por 60 segundos e interromper o trabalho de treinamento se ficar parado por 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)
```

Enquanto o trabalho de treinamento está em execução, a ação integrada do Debugger envia e-mails de notificação e mensagens de texto sempre que a regra encontra problemas com seu trabalho de treinamento. A captura de tela a seguir mostra um exemplo de notificação por email para um trabalho de treinamento que apresenta um problema de trabalho de treinamento paralisado. 

![\[Um exemplo de notificação por e-mail enviada pelo Debugger quando ele detecta um problema. StalledTraining\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/debugger/debugger-built-in-action-email.png)


A captura de tela a seguir mostra um exemplo de notificação de texto que o Debugger envia quando a regra encontra um problema. StalledTraining 

![\[Um exemplo de notificação de texto enviada pelo Debugger quando ele detecta um problema. StalledTraining\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/debugger/debugger-built-in-action-text.png)


## Considerações sobre o uso das ações integradas do Depurador
<a name="debugger-built-in-actions-considerations"></a>
+ Para usar as ações integradas do Debugger, é necessária uma conexão com a Internet. Esse recurso não é suportado no modo de isolamento de rede fornecido pela Amazon SageMaker AI ou Amazon VPC.
+ As ações integradas não podem ser usadas para [Regras do perfilador](debugger-built-in-profiler-rules.md#debugger-built-in-profiler-rules-ProfilerRule).
+ As ações integradas não podem ser usadas em trabalhos de treinamento com interrupções pontuais no treinamento.
+ Nas notificações por e-mail ou texto, `None` aparece no final das mensagens. Isso não tem nenhum significado, então você pode ignorar o texto `None`.