

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memecahkan masalah kesalahan cetak biru di AWS Glue
<a name="blueprint_workflow_troubleshoot"></a>

Jika Anda mengalami kesalahan saat menggunakan AWS Glue cetak biru, gunakan solusi berikut untuk membantu Anda menemukan sumber masalah dan memperbaikinya.

**Topics**
+ [Kesalahan: PySpark modul hilang](#blueprint-workflow-error-1)
+ [Kesalahan: file konfigurasi cetak biru hilang](#blueprint-workflow-error-2)
+ [Kesalahan: file impor hilang](#blueprint-workflow-error-3)
+ [Kesalahan: tidak diizinkan untuk tampil iamPassRole di sumber daya](#blueprint-workflow-error-4)
+ [Kesalahan: jadwal cron tidak valid](#blueprint-workflow-error-5)
+ [Kesalahan: pemicu dengan nama yang sama sudah ada](#blueprint-workflow-error-6)
+ [Kesalahan: alur kerja dengan nama: foo sudah ada.](#blueprint-workflow-error-7)
+ [Kesalahan: modul tidak ditemukan di jalur LayoutGenerator yang ditentukan](#blueprint-workflow-error-8)
+ [Kesalahan: kesalahan validasi di bidang Koneksi](#blueprint-workflow-error-9)

## Kesalahan: PySpark modul hilang
<a name="blueprint-workflow-error-1"></a>

AWS Gluemengembalikan kesalahan “Kesalahan tidak diketahui menjalankan fungsi generator tata letak ModuleNotFoundError: Tidak ada modul bernama 'pyspark'”.

Saat Anda membuka zip arsip cetak biru, itu bisa seperti salah satu dari berikut ini:

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

*Dalam kasus pertama, semua file yang terkait dengan cetak biru ditempatkan di bawah folder bernama compaction dan kemudian diubah menjadi file zip bernama compaction.zip.*

*Dalam kasus kedua, semua file yang diperlukan untuk cetak biru tidak dimasukkan ke dalam folder dan ditambahkan sebagai file root di bawah file zip compaction.zip.*

Membuat file dalam salah satu format di atas diperbolehkan. Namun pastikan bahwa `blueprint.cfg` memiliki jalur yang benar ke nama fungsi dalam skrip yang menghasilkan tata letak.

**Contoh**  
Dalam kasus 1: `blueprint.cfg` harus memiliki `layoutGenerator` sebagai berikut:

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

Dalam kasus 2: `blueprint.cfg` harus memiliki `layoutGenerator` sebagai berikut

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

Jika jalur ini tidak disertakan dengan benar, Anda bisa melihat kesalahan seperti yang ditunjukkan. Misalnya, jika Anda memiliki struktur folder seperti yang disebutkan dalam kasus 2 dan Anda memiliki `layoutGenerator` indikasi seperti dalam kasus 1, Anda dapat melihat kesalahan di atas.

## Kesalahan: file konfigurasi cetak biru hilang
<a name="blueprint-workflow-error-2"></a>

AWS Gluemengembalikan kesalahan “Kesalahan tidak diketahui menjalankan fungsi generator tata letak FileNotFoundError: [Errno 2] Tidak ada file atau direktori seperti itu: '/ tmp/compaction/blueprint .cfg'”.

blueprint.cfg harus ditempatkan pada tingkat root arsip ZIP atau di dalam folder yang memiliki nama yang sama dengan arsip ZIP.

Ketika kita mengekstrak arsip cetak biru ZIP, blueprint.cfg diharapkan dapat ditemukan di salah satu jalur berikut. Jika tidak ditemukan di salah satu jalur berikut, Anda dapat melihat kesalahan di atas.

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

## Kesalahan: file impor hilang
<a name="blueprint-workflow-error-3"></a>

AWS Gluemengembalikan kesalahan “Kesalahan tidak diketahui menjalankan fungsi generator tata letak FileNotFoundError: [Errno 2] Tidak ada file atau direktori seperti itu: \$1 \$1 'demo-project/foo.py'”.

Jika skrip pembuatan tata letak Anda memiliki fungsionalitas untuk membaca file lain, pastikan Anda memberikan jalur lengkap untuk file yang akan diimpor. Misalnya, skrip Conversion.py dapat direferensikan di Layout.py. Untuk informasi selengkapnya, lihat [Contoh Blueprint Project](https://docs.aws.amazon.com/glue/latest/dg/developing-blueprints-sample.html).

## Kesalahan: tidak diizinkan untuk tampil iamPassRole di sumber daya
<a name="blueprint-workflow-error-4"></a>

AWS Gluemengembalikan kesalahan “User: arn:aws:sts: :123456789012: assumed-” role/AWSGlueServiceRole/GlueSession is not authorized to perform: iam:PassRole on resource: arn:aws:iam::123456789012:role/AWSGlueServiceRole

Jika pekerjaan dan crawler dalam alur kerja memiliki peran yang sama dengan peran yang diteruskan untuk membuat alur kerja dari cetak biru, maka peran cetak biru perlu menyertakan izin itu sendiri. `iam:PassRole`

Jika pekerjaan dan crawler dalam alur kerja mengambil peran selain peran yang diteruskan untuk membuat entitas alur kerja dari cetak biru, maka peran cetak biru harus menyertakan `iam:PassRole` izin pada peran lain tersebut, bukan pada peran cetak biru.

Untuk informasi selengkapnya, lihat [Izin untuk Peran cetak biru](https://docs.aws.amazon.com/glue/latest/dg/blueprints-personas-permissions.html#blueprints-role-permissions).

## Kesalahan: jadwal cron tidak valid
<a name="blueprint-workflow-error-5"></a>

AWS Gluemengembalikan kesalahan “Jadwal cron (0 0 \$1 \$1 \$1 \$1) tidak valid.”

Berikan ekspresi [cron](https://en.wikipedia.org/wiki/Cron) yang valid. Untuk informasi selengkapnya, lihat [Jadwal Berbasis Waktu untuk Tugas dan Perayap](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html).

## Kesalahan: pemicu dengan nama yang sama sudah ada
<a name="blueprint-workflow-error-6"></a>

AWS Gluemengembalikan kesalahan “Pemicu dengan nama 'foo\$1starting\$1trigger' sudah dikirimkan dengan konfigurasi yang berbeda”.

Cetak biru tidak mengharuskan Anda untuk menentukan pemicu dalam skrip tata letak untuk pembuatan alur kerja. Pembuatan pemicu dikelola oleh pustaka cetak biru berdasarkan dependensi yang ditentukan antara dua tindakan. 

Penamaan untuk pemicunya adalah sebagai berikut:
+ Untuk pemicu awal dalam alur kerja penamaannya adalah <workflow\$1name>\$1starting\$1trigger.
+ <workflow\$1name><node\$1name>Untuk node (job/crawler) dalam alur kerja yang bergantung pada penyelesaian salah satu atau beberapa node upstream; AWS Glue mendefinisikan pemicu dengan nama \$1 \$1trigger

Kesalahan ini berarti pemicu dengan nama yang sama sudah ada. Anda dapat menghapus pemicu yang ada dan menjalankan kembali pembuatan alur kerja.

**catatan**  
Menghapus alur kerja tidak menghapus node dalam alur kerja. Ada kemungkinan bahwa meskipun alur kerja dihapus, pemicu tertinggal. Karena ini, Anda mungkin tidak menerima kesalahan 'alur kerja sudah ada', tetapi Anda mungkin menerima kesalahan 'pemicu sudah ada' dalam kasus di mana Anda membuat alur kerja, menghapusnya dan kemudian mencoba membuatnya kembali dengan nama yang sama dari cetak biru yang sama.

## Kesalahan: alur kerja dengan nama: foo sudah ada.
<a name="blueprint-workflow-error-7"></a>

Nama alur kerja harus unik. Silakan coba dengan nama yang berbeda.

## Kesalahan: modul tidak ditemukan di jalur LayoutGenerator yang ditentukan
<a name="blueprint-workflow-error-8"></a>

AWS Gluemengembalikan kesalahan “Kesalahan tidak diketahui menjalankan fungsi generator tata letak ModuleNotFoundError: Tidak ada modul bernama 'crawl\$1s3\$1locations'”.

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

Misalnya, jika Anda memiliki jalur LayoutGenerator di atas, maka ketika Anda unzip arsip cetak biru, itu perlu terlihat seperti berikut:

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

Ketika Anda unzip arsip, jika arsip cetak biru terlihat seperti berikut, maka Anda bisa mendapatkan kesalahan di atas.

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

Anda dapat melihat bahwa tidak ada folder bernama `crawl_s3_locations` dan ketika `layoutGenerator` path mengacu ke file tata letak melalui modul`crawl_s3_locations`, Anda bisa mendapatkan kesalahan di atas.

## Kesalahan: kesalahan validasi di bidang Koneksi
<a name="blueprint-workflow-error-9"></a>

AWS Gluemengembalikan kesalahan “Kesalahan tidak diketahui menjalankan fungsi generator tata letak TypeError: Nilai ['foo'] untuk kunci Koneksi harus bertipe <class 'dict'>\$1”.

Ini adalah kesalahan validasi. `Connections`Bidang di `Job` kelas mengharapkan kamus dan sebagai gantinya daftar nilai disediakan menyebabkan kesalahan.

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

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

[Untuk menghindari kesalahan waktu proses ini saat membuat alur kerja dari cetak biru, Anda dapat memvalidasi definisi alur kerja, pekerjaan, dan perayap seperti yang diuraikan dalam Menguji cetak biru.](https://docs.aws.amazon.com/glue/latest/dg/developing-blueprints-testing.html)

Lihat sintaks di [Referensi Kelas AWS Glue cetak biru](https://docs.aws.amazon.com/glue/latest/dg/developing-blueprints-code-classes.html) untuk menentukan AWS Glue pekerjaan, crawler, dan alur kerja dalam skrip tata letak.