

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Utilizzo delle azioni integrate di Debugger per le regole
<a name="debugger-built-in-actions"></a>

Utilizza le azioni integrate di Debugger per rispondere ai problemi rilevati da [Regola Debugger](debugger-built-in-rules.md#debugger-built-in-rules-Rule). La classe `rule_configs` di Debugger fornisce strumenti per configurare un elenco di azioni, tra cui l'interruzione automatica dei processi di addestramento e l'invio di notifiche tramite Amazon Simple Notification Service (Amazon SNS) quando le regole di Debugger rilevano problemi di addestramento. Di seguito sono riportate le fasi necessarie per eseguire queste attività.

**Topics**
+ [Configurazione di Amazon SNS, creazione di un argomento `SMDebugRules` e iscrizione all’argomento](#debugger-built-in-actions-sns)
+ [Configurazione del ruolo IAM per collegare le policy richieste](#debugger-built-in-actions-iam)
+ [Configurazione delle regole di Debugger con le azioni integrate](#debugger-built-in-actions-on-rule)
+ [Considerazioni sull’utilizzo delle azioni integrate di Debugger](#debugger-built-in-actions-considerations)

## Configurazione di Amazon SNS, creazione di un argomento `SMDebugRules` e iscrizione all’argomento
<a name="debugger-built-in-actions-sns"></a>

Questa sezione spiega come configurare un argomento **SMDebugRules** di Amazon SNS, iscriversi e confermare l'abbonamento per ricevere notifiche dalle regole di Debugger.

**Nota**  
[Per ulteriori informazioni sulla fatturazione per Amazon SNS, consulta i prezzi di [Amazon SNS e Amazon SNS](https://aws.amazon.com/sns/pricing/). FAQs](https://aws.amazon.com/sns/faqs/)

**Per creare un argomento sulle regole SMDebug**

1. [Accedi a Console di gestione AWS e apri la console Amazon SNS nella versione v3/home. https://console.aws.amazon.com/sns/](https://console.aws.amazon.com/sns/v3/home)

1. Nel pannello di navigazione a sinistra, selezionare **Topics (Argomenti)**. 

1. Nella pagina **Topics (Argomenti)**, seleziona **Create new topic (Crea nuovo argomento)**.

1. Nella pagina **Create topic (Crea argomento)**, nella sezione **Details (Dettagli)**, eseguire queste operazioni:

   1. Per **Tipo**, scegli **Standard** come tipo di argomento.

   1. In **Nome**, inserisci **SMDebugRules**.

1. Salta tutte le altre impostazioni opzionali e scegli **Crea argomento**. Per ulteriori informazioni sulle impostazioni opzionali, consulta [Creazione di un argomento Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html).

**Per iscriverti all'argomento Regole SMDebug**

1. [Apri la console Amazon SNS nella versione v3/home. https://console.aws.amazon.com/sns/](https://console.aws.amazon.com/sns/v3/home)

1. Nel pannello di navigazione sinistro scegli **Sottoscrizioni**. 

1. Nella pagina **Sottoscrizioni** scegli **Crea sottoscrizione**.

1. Nella pagina **Crea sottoscrizione**, nella sezione **Dettagli**, eseguire queste operazioni: 

   1. Per **Argomento ARN**, scegli l'argomento **SMDebugRegole** ARN. L'ARN deve avere il formato di `arn:aws:sns:<region-id>:111122223333:SMDebugRules`.

   1. Per **Protocollo**, seleziona **-mail)** o **SMS**. 

   1. Per **Endpoint**, inserisci il valore dell'endpoint, ad esempio un indirizzo e-mail o un numero di telefono a cui desideri ricevere notifiche.
**Nota**  
Assicurati di digitare l'indirizzo e-mail e il numero di telefono corretti. I numeri di telefono devono includere `+`, un prefisso internazionale e un numero di telefono, senza caratteri o spazi speciali. Ad esempio, il numero di telefono \$11 (222) 333-4444 è formattato come **\$112223334444**.

1. Salta tutte le altre impostazioni opzionali e scegli **Crea abbonamento**. Per ulteriori informazioni sulle impostazioni opzionali, consulta [Abbonamento a un argomento Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html).

Dopo la sottoscrizione all'argomento **SMDebugRegole**, riceverai il seguente messaggio di conferma via e-mail o per telefono:

![\[Un messaggio e-mail di conferma dell'abbonamento per l'argomento SMDebugRegole di Amazon SNS.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/debugger/debugger-built-in-action-subscription-confirmation.png)


Per ulteriori informazioni su Amazon SNS, consulta [Messaggi di testo mobili (SMS)](https://docs.aws.amazon.com/sns/latest/dg/sns-mobile-phone-number-as-subscriber.html) e [Notifiche e-mail](https://docs.aws.amazon.com/sns/latest/dg/sns-email-notifications.html) nella *Guida per gli sviluppatori di Amazon SNS*.

## Configurazione del ruolo IAM per collegare le policy richieste
<a name="debugger-built-in-actions-iam"></a>

In questa fase le policy richieste vengono aggiunte al ruolo IAM.

**Per aggiungere le policy richieste al tuo ruolo IAM**

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel riquadro di navigazione a sinistra, seleziona **Policy** e **Crea policy**.

1. Nella pagina **Crea policy**, procedi come segue per creare una nuova policy sns-access:

   1. Scegli la scheda **JSON**.

   1. Incolla le stringhe JSON in grassetto nel codice seguente nella cartella`"Statement"`, sostituendo l'ID dell'account a 12 cifre con l'ID AWS dell'account. 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. Nella parte inferiore della pagina, scegli **Rivedi policy**.

   1. Nella pagina **Review policy (Esamina policy)**, per **Name (Nome)**, immettere **sns-access**.

   1. Nella parte inferiore della pagina, scegli **Crea policy**.

1. Torna alla console IAM e scegli **Ruoli** nel riquadro di navigazione a sinistra.

1. Cerca il ruolo IAM che utilizzi per la formazione sui modelli di SageMaker intelligenza artificiale e scegli quel ruolo IAM.

1. Nella scheda **Autorizzazioni** della pagina **Riepilogo**, scegli **Collega policy**.

1. cerca la policy **sns-access**, seleziona la casella di controllo accanto alla policy, quindi scegli **Collega policy**.

Per altri esempi di configurazione delle policy IAM per Amazon SNS, consulta [Esempi di casi per il controllo degli accessi Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-access-policy-use-cases.html).

## Configurazione delle regole di Debugger con le azioni integrate
<a name="debugger-built-in-actions-on-rule"></a>

Dopo aver completato con successo le impostazioni richieste nelle fasi precedenti, è possibile configurare le azioni integrate di Debugger per le regole di debug, come mostrato nello script di esempio seguente. È possibile scegliere quali azioni integrate utilizzare durante la creazione dell'oggetto elenco `actions`. `rule_configs` è un modulo di supporto che fornisce strumenti di alto livello per configurare le regole e le azioni integrate di Debugger. Le seguenti azioni integrate sono disponibili per Debugger:
+ `rule_configs.StopTraining()` – Interrompe un processo di addestramento quando la regola di Debugger rileva un problema.
+ `rule_configs.Email("abc@abc.com")` – Invia una notifica via e-mail quando la regola di Debugger rileva un problema. Utilizza l'indirizzo e-mail che hai usato quando hai configurato l'abbonamento all'argomento SNS.
+ `rule_configs.SMS("+1234567890")` – Invia una notifica via messaggio di testo quando la regola di Debugger rileva un problema. Utilizza il numero di telefono che hai usato quando hai configurato l'abbonamento all'argomento SNS.
**Nota**  
Assicurati di digitare l'indirizzo e-mail e il numero di telefono corretti. I numeri di telefono devono includere `+`, un prefisso internazionale e un numero di telefono, senza caratteri o spazi speciali. Ad esempio, il numero di telefono \$11 (222) 333-4444 è formattato come **\$112223334444**.

È possibile utilizzare tutte le azioni integrate o un sottoinsieme di azioni concludendo utilizzando il metodo `rule_configs.ActionList()`, che esegue le azioni integrate e configura un elenco di azioni.

**Per aggiungere tutte e tre le azioni predefinite a un'unica regola**

Se desideri assegnare tutte e tre le azioni integrate a una singola regola, configura un elenco di azioni integrate in Debugger durante la creazione di uno strumento di valutazione. Usa il seguente modello per creare lo strumento di valutazione e Debugger interromperà i processi di addestramento e invierà notifiche tramite e-mail e messaggi di testo per tutte le regole che utilizzi per monitorare l'avanzamento del processo di addestramento.

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

**Per creare più oggetti di azione integrati per assegnare azioni diverse a una singola regola**

Se desideri assegnare le azioni integrate da attivare a diversi valori di soglia di una singola regola, puoi creare più oggetti di azione integrati come illustrato nello script seguente. Per evitare un errore di conflitto eseguendo la stessa regola, è necessario inviare nomi di processo di regola diversi (specificare stringhe diverse per l'attributo `name` delle regole), come illustrato nel seguente modello di script di esempio. Questo esempio mostra come impostare [StalledTrainingRule](debugger-built-in-rules.md#stalled-training) per eseguire due azioni diverse: inviare un'e-mail a `abc@abc.com` quando un processo di addestramento si blocca per 60 secondi e interrompere il processo di addestramento se si blocca per 120 secondi.

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

Mentre il processo di addestramento è in esecuzione, l'azione integrata di Debugger invia e-mail e messaggi di testo di notifica ogni volta che la regola rileva problemi con il processo di addestramento. La schermata seguente mostra un esempio di notifica via e-mail per un processo di addestramento che presenta un problema relativo a un processo di addestramento bloccato. 

![\[Un esempio di notifica e-mail inviata da Debugger quando rileva un problema. StalledTraining\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/debugger/debugger-built-in-action-email.png)


La schermata seguente mostra un esempio di notifica di testo che Debugger invia quando la regola rileva un problema. StalledTraining 

![\[Un esempio di notifica di testo inviata da Debugger quando rileva un problema. StalledTraining\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/debugger/debugger-built-in-action-text.png)


## Considerazioni sull’utilizzo delle azioni integrate di Debugger
<a name="debugger-built-in-actions-considerations"></a>
+ Per utilizzare le azioni integrate di Debugger, è necessaria una connessione Internet. Questa funzionalità non è supportata nella modalità di isolamento della rete fornita da Amazon SageMaker AI o Amazon VPC.
+ Le azioni integrate non possono essere utilizzate per [Regole del profiler](debugger-built-in-profiler-rules.md#debugger-built-in-profiler-rules-ProfilerRule).
+ Le azioni integrate non possono essere utilizzate in processi di addestramento con interruzioni spot dell'addestramento.
+ Nelle notifiche via e-mail o SMS, `None` viene visualizzato alla fine dei messaggi. Questo non ha alcun significato, quindi puoi ignorare il testo `None`.