

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

# Risoluzione degli errori relativi agli schemi in AWS Glue
<a name="blueprint_workflow_troubleshoot"></a>

Se riscontri errori durante l'utilizzo dei piani AWS Glue, usa le seguenti soluzioni per trovare l'origine dei problemi e correggerli.

**Topics**
+ [Errore: PySpark modulo mancante](#blueprint-workflow-error-1)
+ [Errore: file di configurazione del piano mancante](#blueprint-workflow-error-2)
+ [Errore: file importato mancante](#blueprint-workflow-error-3)
+ [Errore: non autorizzato a iamPassRole eseguire sulla risorsa](#blueprint-workflow-error-4)
+ [Errore: pianificazione cron non valida](#blueprint-workflow-error-5)
+ [Errore: esiste già un trigger con questo nome](#blueprint-workflow-error-6)
+ [Errore: un flusso di lavoro con nome “foo” esiste già.](#blueprint-workflow-error-7)
+ [Errore: modulo non trovato nel percorso layoutGenerator specificato](#blueprint-workflow-error-8)
+ [Errore: errore di convalida nel campo Connections (Connessioni)](#blueprint-workflow-error-9)

## Errore: PySpark modulo mancante
<a name="blueprint-workflow-error-1"></a>

AWS Gluerestituisce l'errore «Errore sconosciuto nell'esecuzione della funzione del generatore di layout ModuleNotFoundError: nessun modulo chiamato 'pyspark'».

Quando si decomprime l'archivio del piano, potrebbe verificarsi uno dei seguenti casi:

```
$ unzip compaction.zip 
Archive:  compaction.zip
   creating: compaction/
  inflating: compaction/blueprint.cfg  
  inflating: compaction/layout.py    
  inflating: compaction/README.md    
  inflating: compaction/compaction.py   
  
$ unzip compaction.zip
Archive:  compaction.zip
  inflating: blueprint.cfg           
  inflating: compaction.py           
  inflating: layout.py               
  inflating: README.md
```

Nel primo caso, tutti i file relativi al piano sono stati collocati in una cartella denominata compattazione convertita poi in un file zip denominato *compaction.zip*.

Nel secondo caso, tutti i file necessari per il piano non sono stati inclusi in una cartella e sono stati aggiunti come file root sotto il file zip *compaction.zip*.

È consentita la creazione di un file in uno dei formati sopra indicati. Accertati che `blueprint.cfg` abbia il percorso corretto al nome della funzione nello script che genera il layout.

**Esempi**  
Nel caso 1: `blueprint.cfg` deve avere `layoutGenerator` come segue:

```
layoutGenerator": "compaction.layout.generate_layout"
```

Nel caso 2: `blueprint.cfg` deve avere `layoutGenerator` come segue

```
layoutGenerator": "layout.generate_layout" 
```

Se questo percorso non è incluso correttamente, è possibile che venga visualizzato l'errore indicato. Ad esempio, se disponi della struttura di cartelle come indicato nel caso 2 e `layoutGenerator` come indicato come nel caso 1, potresti visualizzare l'errore di cui sopra.

## Errore: file di configurazione del piano mancante
<a name="blueprint-workflow-error-2"></a>

AWS Gluerestituisce l'errore «Errore sconosciuto nell'esecuzione della funzione del generatore di layout FileNotFoundError: [Errno 2] Nessun file o directory di questo tipo: tmp/compaction/blueprint '/ .cfg'».

blueprint.cfg deve essere posizionato al livello root dell'archivio ZIP o all'interno di una cartella che ha lo stesso nome dell'archivio ZIP.

Quando si estrae l'archivio ZIP del piano, blueprint.cfg deve essere trovato in uno dei seguenti percorsi. Se non viene trovato in uno dei seguenti percorsi, potresti visualizzare l'errore di cui sopra.

```
$ unzip compaction.zip 
Archive:  compaction.zip
   creating: compaction/
  inflating: compaction/blueprint.cfg  
  
$ unzip compaction.zip
Archive:  compaction.zip
  inflating: blueprint.cfg
```

## Errore: file importato mancante
<a name="blueprint-workflow-error-3"></a>

AWS Gluerestituisce l'errore «Errore sconosciuto nell'esecuzione della funzione del generatore di layout FileNotFoundError: [Errno 2] Nessun file o directory di questo tipo: \$1 \$1'demo-project/foo.py'».

Se lo script di generazione del layout dispone di funzionalità per leggere altri file, accertati di fornire un percorso completo per il file da importare. Ad esempio, Layout.py potrebbe fare riferimento allo script Conversion.py. Per ulteriori informazioni, consulta [Progetto di schema di esempio](https://docs.aws.amazon.com/glue/latest/dg/developing-blueprints-sample.html).

## Errore: non autorizzato a iamPassRole eseguire sulla risorsa
<a name="blueprint-workflow-error-4"></a>

AWS Gluerestituisce l'errore «User: arn:aws:sts: :123456789012:assumed-» role/AWSGlueServiceRole/GlueSession is not authorized to perform: iam:PassRole on resource: arn:aws:iam::123456789012:role/AWSGlueServiceRole

Se i processi e i crawler nel flusso di lavoro assumono lo stesso ruolo del ruolo passato per creare il flusso di lavoro dal piano, il ruolo del piano deve includere l'autorizzazione `iam:PassRole` su se stesso.

Se i processi e i crawler nel flusso di lavoro assumono un ruolo diverso da quello passato per creare le entità del flusso di lavoro dal piano, il ruolo del piano deve includere l'autorizzazione `iam:PassRole` sull'altro ruolo invece che sul ruolo del piano.

Per ulteriori informazioni, consulta [Autorizzazioni per i ruoli degli schemi](https://docs.aws.amazon.com/glue/latest/dg/blueprints-personas-permissions.html#blueprints-role-permissions).

## Errore: pianificazione cron non valida
<a name="blueprint-workflow-error-5"></a>

AWS Glue restituisce l'errore "The schedule cron(0 0 \$1 \$1 \$1 \$1) is invalid." (La pianificazione cron(0 0 \$1 \$1 \$1 \$1) non è valida)

Fornisci un'espressione [cron](https://en.wikipedia.org/wiki/Cron) valida. Per ulteriori informazioni, consulta [Pianificazioni basate sul tempo per processi e crawler](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html).

## Errore: esiste già un trigger con questo nome
<a name="blueprint-workflow-error-6"></a>

AWS Glue restituisce l'errore "Trigger with name 'foo\$1starting\$1trigger' already submitted with different configuration" (Trigger con nome foo\$1starting\$1trigger' già inviato con configurazione diversa).

Un piano non richiede la definizione dei trigger nello script di layout per la creazione del flusso di lavoro. La creazione dei trigger viene gestita dalla libreria del piano in base alle dipendenze definite tra due operazioni. 

La denominazione per i trigger è la seguente:
+ Per il trigger iniziale nel flusso di lavoro, la denominazione è <workflow\$1name>\$1starting\$1trigger.
+ Per un nodo (processo/crawler) nel flusso di lavoro che dipende dal completamento di uno o più nodi a monte; AWS Glue definisce un trigger con il nome <workflow\$1name>\$1<node\$1name>\$1trigger

Questo errore indica che esiste già un trigger con lo stesso nome. È possibile eliminare il trigger esistente ed eseguire nuovamente la creazione del flusso di lavoro.

**Nota**  
L'eliminazione di un flusso di lavoro non comporta l'eliminazione dei nodi all'interno del flusso di lavoro. È possibile che i trigger vengano lasciati anche se il flusso di lavoro viene eliminato. Per questo motivo, nel caso in cui crei un flusso di lavoro, lo elimini e quindi provi a ricrearlo con lo stesso nome dallo stesso piano, potresti non ricevere un errore che indica che il flusso di lavoro esiste già, ma potresti ricevere un errore che indica che il trigger esiste già.

## Errore: un flusso di lavoro con nome “foo” esiste già.
<a name="blueprint-workflow-error-7"></a>

Il nome del flusso di lavoro deve essere univoco. Prova con un nome diverso.

## Errore: modulo non trovato nel percorso layoutGenerator specificato
<a name="blueprint-workflow-error-8"></a>

AWS Gluerestituisce l'errore «Errore sconosciuto nell'esecuzione della funzione del generatore di layout: nessun modulo denominato 'crawl\$1s3\$1locations'». ModuleNotFoundError

```
layoutGenerator": "crawl_s3_locations.layout.generate_layout"
```

Ad esempio, disponi del percorso LayoutGenerator di cui sopra, quando decomprimi l'archivio del piano, questo deve essere simile al seguente:

```
$ unzip crawl_s3_locations.zip 
Archive:  crawl_s3_locations.zip
   creating: crawl_s3_locations/
  inflating: crawl_s3_locations/blueprint.cfg  
  inflating: crawl_s3_locations/layout.py    
  inflating: crawl_s3_locations/README.md
```

Quando decomprimi l'archivio, se l'archivio del piano è simile al seguente, potresti visualizzare l'errore precedente.

```
$ unzip crawl_s3_locations.zip
Archive:  crawl_s3_locations.zip
  inflating: blueprint.cfg           
  inflating: layout.py               
  inflating: README.md
```

Non esiste una cartella denominata `crawl_s3_locations` e quando il percorso `layoutGenerator` fa riferimento al file di layout tramite il modulo `crawl_s3_locations`, potresti visualizzare l'errore di cui sopra.

## Errore: errore di convalida nel campo Connections (Connessioni)
<a name="blueprint-workflow-error-9"></a>

AWS Glue<class 'dict'>restituisce l'errore «Errore sconosciuto nell'esecuzione della funzione del generatore di layout TypeError: il valore ['foo'] per le connessioni chiave dovrebbe essere di tipo\$1».

Si tratta di un errore di convalida. Il campo `Connections` nella classe `Job` si aspetta un dizionario e invece viene fornito un elenco di valori che causa l'errore.

```
User input was list of values
Connections= ['string']

Should be a dict like the following
Connections*=*{'Connections': ['string']}
```

Per evitare questi errori di runtime durante la creazione di un flusso di lavoro da uno schema, puoi convalidare le definizioni del flusso di lavoro, del processo e del crawler come descritto in [Test di uno schema](https://docs.aws.amazon.com/glue/latest/dg/developing-blueprints-testing.html).

Fai riferimento alla sintassi in [Riferimento alle classi di schemaAWS Glue](https://docs.aws.amazon.com/glue/latest/dg/developing-blueprints-code-classes.html) per definire processo, crawler e flusso di lavoro AWS Glue nello script di layout.