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 del blueprint in AWS Glue
Se si verificano errori durante l'utilizzo AWS Glue progetti, usa le seguenti soluzioni per aiutarti a trovare l'origine dei problemi e risolverli.
Argomenti
Errore: modulo mancante PySpark
AWS Glue restituisce 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
AWS Glue restituisce 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
AWS Glue restituisce l'errore «Errore sconosciuto nell'esecuzione della funzione del generatore di layout FileNotFoundError: [Errno 2] Nessun file o directory di questo tipo: * *'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.
Errore: non autorizzato a iamPassRole eseguire sulla risorsa
AWS Glue restituisce 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.
Errore: pianificazione cron non valida
AWS Glue restituisce l'errore «La schedulazione cron (0 0 * * * *) non è valida».
Fornisci un'espressione cron
Errore: esiste già un trigger con questo nome
AWS Glue restituisce l'errore «Trigger con nome 'foo_starting_trigger' già inviato con una 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_name>_starting_trigger.
Per un nodo (job/crawler) nel flusso di lavoro che dipende dal completamento di uno o più nodi upstream; AWS Glue <workflow_name><node_name>definisce un trigger con il nome _ _trigger
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à.
Il nome del flusso di lavoro deve essere univoco. Prova con un nome diverso.
Errore: modulo non trovato nel percorso layoutGenerator specificato
AWS Glue restituisce l'errore «Errore sconosciuto nell'esecuzione della funzione del generatore di layout ModuleNotFoundError: nessun modulo denominato 'crawl_s3_locations'».
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)
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!».
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.
Fate riferimento alla sintassi in AWS Glue blueprint Classes Reference per definire il AWS Glue job, crawler e workflow nello script di layout.