

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

# Panggilan caching untuk menjalankan HealthOmics
<a name="workflows-call-caching"></a>

AWS HealthOmics mendukung caching panggilan, juga dikenal sebagai resume, untuk alur kerja pribadi. Caching panggilan menyimpan output dari tugas alur kerja yang diselesaikan setelah proses selesai. Proses selanjutnya dapat menggunakan output tugas dari cache, daripada menghitung output tugas lagi. Caching panggilan mengurangi penggunaan sumber daya komputasi, yang menghasilkan durasi berjalan lebih pendek dan penghematan biaya komputasi.

Anda dapat mengakses file output tugas yang di-cache setelah proses selesai. Untuk melakukan debugging tugas lanjutan dan pemecahan masalah, Anda dapat menyimpan file tugas perantara dengan menentukan file ini sebagai output tugas dalam definisi alur kerja.

Anda dapat menggunakan caching panggilan untuk menyimpan hasil tugas yang telah selesai dari proses yang gagal. Jalankan berikutnya dimulai dari tugas terakhir yang berhasil diselesaikan, daripada menghitung tugas yang diselesaikan lagi. 

Jika HealthOmics tidak menemukan entri cache yang cocok untuk tugas, proses tidak akan gagal. HealthOmics menghitung ulang tugas dan tugas-tugas dependennya. 

Untuk informasi tentang pemecahan masalah caching panggilan, lihat. [Memecahkan masalah caching panggilan](troubleshooting.md#workflow-cache-troubleshooting)

**Topics**
+ [Cara kerja caching panggilan](how-run-cache.md)
+ [Membuat cache run](workflow-cache-create.md)
+ [Memperbarui cache run](workflow-cache-update.md)
+ [Menghapus cache run](workflow-cache-delete.md)
+ [Isi cache run](workflow-cache-contents.md)
+ [Fitur caching khusus mesin](workflow-cache-per-engine.md)
+ [Menggunakan cache run](workflow-cache-startrun.md)

# Cara kerja caching panggilan
<a name="how-run-cache"></a>

Untuk menggunakan caching panggilan, Anda membuat cache run dan mengonfigurasinya agar memiliki lokasi Amazon S3 terkait untuk data yang di-cache. Saat Anda memulai proses, Anda menentukan cache run. Cache run tidak didedikasikan untuk satu alur kerja. Berjalan dari beberapa alur kerja dapat menggunakan cache yang sama.

Selama fase ekspor dijalankan, sistem mengekspor output tugas yang diselesaikan ke lokasi Amazon S3. Untuk mengekspor file tugas perantara, deklarasikan file-file ini sebagai output tugas dalam definisi alur kerja. Caching panggilan juga menyimpan metadata secara internal dan membuat hash unik untuk setiap entri cache. 

Untuk setiap tugas dalam proses, mesin alur kerja mendeteksi apakah ada entri cache yang cocok untuk tugas ini. Jika tidak ada entri cache yang cocok, HealthOmics hitung tugas. Jika ada entri cache yang cocok, mesin mengambil hasil cache.

Untuk mencocokkan entri cache, HealthOmics gunakan mekanisme hashing yang disertakan dalam mesin alur kerja asli. HealthOmicsmemperluas implementasi hash yang ada ini untuk memperhitungkan HealthOmics variabel, seperti S3 ETag dan intisari wadah ECR.

HealthOmics mendukung caching panggilan untuk versi bahasa alur kerja ini: 
+ WDL versi 1.0, 1.1, dan versi pengembangan
+ Nextflow versi 23.10 dan yang lebih baru
+ Semua versi CWL

**catatan**  
HealthOmics tidak mendukung caching panggilan untuk alur kerja Ready2Run.

**Topics**
+ [Model tanggung jawab bersama](#run-cache-srm)
+ [Persyaratan caching untuk tugas](#workflow-cache-task-prereqs)
+ [Jalankan kinerja cache](#run-cache-performance)
+ [Penyimpanan data cache dan peristiwa pembatalan](#workflow-cache-data)

## Model tanggung jawab bersama
<a name="run-cache-srm"></a>

Ada tanggung jawab bersama antara pengguna dan AWS untuk menentukan apakah tugas dan proses adalah kandidat yang baik untuk caching panggilan. Call caching mencapai hasil terbaik ketika semua tugas idempoten (eksekusi berulang tugas menggunakan input yang sama menghasilkan hasil yang sama). 

Namun, jika tugas mencakup elemen non-deterministik (seperti generasi bilangan acak atau waktu sistem), eksekusi tugas yang berulang menggunakan input yang sama dapat menghasilkan output yang berbeda. Hal ini dapat mempengaruhi efektivitas caching panggilan dengan cara-cara berikut:
+ Jika HealthOmics menggunakan entri cache (dibuat oleh proses sebelumnya) yang tidak identik dengan output yang akan dihasilkan oleh eksekusi tugas untuk proses saat ini, proses dapat menghasilkan hasil yang berbeda dari proses yang sama tanpa caching.
+ HealthOmics mungkin tidak menemukan entri cache yang cocok untuk tugas yang seharusnya cocok, karena output tugas non-deterministik. Jika tidak menemukan entri cache yang valid, proses menghitung ulang tugas secara tidak perlu, yang mengurangi manfaat penghematan biaya menggunakan caching panggilan.

Berikut ini adalah perilaku tugas yang diketahui yang dapat menyebabkan hasil non-deterministik yang memengaruhi hasil caching panggilan:
+ Menggunakan generator angka acak.
+ Ketergantungan pada waktu sistem. 
+ Menggunakan konkurensi (kondisi ras dapat menyebabkan varians keluaran). 
+ Mengambil file lokal atau jarak jauh di luar apa yang ditentukan dalam parameter input tugas.

Untuk skenario lain yang dapat menyebabkan perilaku non-deterministik, lihat [Input proses non-deterministik](https://www.nextflow.io/docs/latest/cache-and-resume.html#non-deterministic-process-inputs) di situs dokumentasi Nextflow.

Jika Anda menduga bahwa tugas menghasilkan output yang non-deterministik, pertimbangkan untuk menggunakan fitur mesin alur kerja untuk menghindari caching tugas tertentu yang non-deterministik. Untuk petunjuk tentang cara memilih keluar dari caching untuk tugas individual dalam setiap bahasa alur kerja yang didukung, lihat. [Fitur caching khusus mesin](workflow-cache-per-engine.md)

Kami menyarankan Anda meninjau alur kerja dan persyaratan tugas spesifik Anda secara menyeluruh sebelum mengaktifkan caching panggilan di lingkungan mana pun di mana caching panggilan yang tidak efektif atau output yang berbeda dari yang diharapkan dapat menimbulkan risiko. Misalnya, potensi keterbatasan caching panggilan harus dipertimbangkan dengan cermat dalam menentukan apakah caching panggilan sesuai untuk kasus penggunaan klinis.

## Persyaratan caching untuk tugas
<a name="workflow-cache-task-prereqs"></a>

HealthOmics cache output tugas untuk tugas yang memenuhi persyaratan berikut:
+ Tugas harus mendefinisikan wadah. HealthOmics tidak akan menyimpan output untuk tugas tanpa wadah.
+ Tugas harus menghasilkan satu atau lebih output. Anda menentukan output tugas dalam definisi alur kerja.
+ Definisi alur kerja tidak boleh menggunakan nilai dinamis. Misalnya, jika Anda meneruskan parameter ke tugas dengan nilai yang bertambah dengan setiap proses, HealthOmics tidak akan men-cache output tugas. 

**catatan**  
Jika beberapa tugas dalam proses menggunakan gambar kontainer yang sama, HealthOmics berikan versi gambar yang sama untuk semua tugas ini. Setelah HealthOmics menarik gambar, ia mengabaikan pembaruan apa pun pada gambar kontainer selama durasi proses. Pendekatan ini memberikan pengalaman yang dapat diprediksi dan konsisten serta mencegah potensi masalah yang dapat muncul dari pembaruan pada gambar kontainer yang diterapkan di pertengahan proses.

## Jalankan kinerja cache
<a name="run-cache-performance"></a>

Saat Anda mengaktifkan caching panggilan untuk dijalankan, Anda mungkin melihat dampak berikut pada kinerja run: 
+ Selama proses pertama, HealthOmics menyimpan data cache untuk tugas-tugas dalam proses. Anda mungkin mengalami waktu ekspor yang lebih lama untuk menjalankan ini, karena caching panggilan meningkatkan jumlah data ekspor.
+ Dalam proses berikutnya, saat melanjutkan proses dari cache, ini dapat mempersingkat jumlah langkah pemrosesan dan mengurangi waktu berjalan Anda.
+  Jika Anda juga memilih untuk mendeklarasikan file perantara sebagai output, maka waktu ekspor Anda mungkin lebih lama karena data ini bisa lebih bertele-tele. 

## Penyimpanan data cache dan peristiwa pembatalan
<a name="workflow-cache-data"></a>

Tujuan utama dari cache run adalah untuk mengoptimalkan perhitungan tugas dalam proses. Jika ada entri cache pencocokan yang valid untuk tugas, HealthOmics gunakan entri cache alih-alih menghitung ulang tugas. Jika tidak, HealthOmics kembali ke perilaku layanan default, yaitu menghitung ulang tugas dan tugas dependennya. Dengan menggunakan pendekatan ini, cache meleset tidak menyebabkan run gagal. 

Kami menyarankan Anda mengelola ukuran cache run. Seiring waktu, entri cache mungkin tidak lagi valid karena pembaruan mesin atau HealthOmics layanan alur kerja atau karena perubahan yang Anda buat dalam menjalankan atau menjalankan tugas. Bagian berikut memberikan detail tambahan. 

**Topics**
+ [Pembaruan versi manifes dan kesegaran data](#workflow-cache-data-versions)
+ [Jalankan perilaku cache](#run-cache-behavior)
+ [Kontrol ukuran cache jalankan](#workflow-cache-manage)

### Pembaruan versi manifes dan kesegaran data
<a name="workflow-cache-data-versions"></a>

Secara berkala, HealthOmics layanan dapat memperkenalkan fitur baru atau pembaruan mesin alur kerja yang membatalkan beberapa atau semua entri cache yang dijalankan. Dalam situasi ini, proses Anda dapat mengalami kehilangan cache satu kali. 

HealthOmics membuat [file manifes JSON](workflow-cache-contents.md) untuk setiap entri cache. Untuk proses yang dimulai setelah 12 Februari 2025, file manifes menyertakan parameter versi. Jika pembaruan layanan membatalkan entri cache apa pun, HealthOmics tambahkan nomor versi sehingga Anda dapat mengidentifikasi entri cache lama untuk dihapus. 

Contoh berikut menunjukkan file manifes dengan versi diatur ke 2:

```
{
     "arn": "arn:aws:omics:us-west-2:12345678901:runCache/0123456/cacheEntry/1234567-195f-3921-a1fa-ffffcef0a6a4",
     "s3uri": "s3://example/1234567-d0d1-e230-d599-10f1539f4a32/1348677/4795326/7e8c69b1-145f-3991-a1fa-ffffcef0a6a4",
     "taskArn": "arn:aws:omics:us-west-2:12345678901:task/4567891",
     "workDir": "/mnt/workflow/1234567-d0d1-e230-d599-10f1539f4a32/workdir/call-TxtFileCopyTask/5w6tn5feyga7noasjuecdeoqpkltrfo3/wxz2fuddlo6hc4uh5s2lreaayczduxdm",
     "files": [
         {
             "name": "output_txt_file",
             "path": "out/output_txt_file/outfile.txt",
             "etag": "ajdhyg9736b9654673b9fbb486753bc8"
         }
     ],
     "nextflowContext": {},
     "otherOutputs": {},
     "version": 2,       
  }
```

Untuk menjalankan dengan entri cache yang tidak lagi valid, buat kembali cache untuk membuat entri baru yang valid. Lakukan langkah-langkah berikut untuk setiap lari:

1. Mulai proses sekali dengan retensi cache disetel ke CACHE ALWAYS. Jalankan ini membuat entri cache baru.

1. Untuk proses selanjutnya, atur retensi cache ke pengaturan sebelumnya (CACHE ALWAYS atau CACHE ON FAILURE).

Untuk membersihkan entri cache yang tidak lagi valid, Anda dapat menghapus entri cache ini dari cache Amazon S3 bucket. HealthOmics jangan pernah menggunakan kembali entri cache ini. Jika Anda memilih untuk mempertahankan entri yang tidak valid, tidak ada dampak pada proses Anda.

**catatan**  
Caching panggilan menyimpan data output tugas di lokasi Amazon S3 yang ditentukan untuk cache, yang menimbulkan biaya ke Anda. Akun AWS

### Jalankan perilaku cache
<a name="run-cache-behavior"></a>

Anda dapat mengatur perilaku run cache untuk menyimpan output tugas untuk menjalankan yang gagal (cache pada kegagalan) atau untuk semua proses (cache selalu). Saat Anda membuat cache run, Anda mengatur perilaku cache default untuk semua proses yang menggunakan cache ini. Anda dapat mengganti perilaku default saat memulai proses.

**Cache on failure**berguna jika Anda men-debug alur kerja yang gagal setelah beberapa tugas berhasil diselesaikan. Proses selanjutnya dilanjutkan dari tugas terakhir yang berhasil diselesaikan jika semua variabel unik yang dipertimbangkan oleh hash identik dengan proses sebelumnya.

**Cache always**berguna jika Anda memperbarui tugas dalam alur kerja yang berhasil diselesaikan. Kami menyarankan Anda mengikuti langkah-langkah ini:

1. Buat run baru. Atur **perilaku Cache** **ke Cache selalu**, dan mulai jalankan.

1. Setelah proses selesai, perbarui tugas dalam alur kerja dan mulai proses baru dengan set perilaku **Cache** selalu. Proses ini memproses tugas yang diperbarui dan tugas selanjutnya yang memiliki ketergantungan pada tugas yang diperbarui. Semua tugas lain menggunakan hasil cache.

1. Ulangi langkah 2 sesuai kebutuhan, hingga pengembangan selesai untuk tugas yang diperbarui.

1. Gunakan tugas yang diperbarui sesuai kebutuhan di future run. Ingatlah untuk mengalihkan proses berikutnya ke **Cache saat gagal** jika Anda berencana untuk menggunakan input baru atau berbeda untuk proses ini.

**catatan**  
Kami merekomendasikan **Cache selalu** mode saat menggunakan set data pengujian yang sama, tetapi tidak untuk batch run. Jika Anda mengatur mode ini untuk sejumlah besar proses, sistem dapat mengekspor sejumlah besar data ke Amazon S3, sehingga meningkatkan waktu ekspor dan biaya penyimpanan.

### Kontrol ukuran cache jalankan
<a name="workflow-cache-manage"></a>

HealthOmics tidak menghapus atau mengarsipkan secara otomatis data cache yang dijalankan atau menerapkan aturan pembersihan Amazon S3 untuk mengelola data cache. Kami menyarankan Anda melakukan pembersihan cache secara teratur untuk menghemat biaya penyimpanan Amazon S3 dan menjaga ukuran cache run Anda tetap dapat dikelola. Anda dapat menghapus file secara langsung atau menyetel retention/replication kebijakan data pada bucket cache run. 

Misalnya, Anda dapat mengonfigurasi kebijakan siklus hidup Amazon S3 agar objek kedaluwarsa setelah 90 hari, atau Anda dapat membersihkan data cache secara manual di akhir setiap proyek pengembangan.

Informasi berikut dapat membantu Anda mengelola ukuran data cache:
+ Anda dapat melihat berapa banyak data yang ada di cache dengan memeriksa Amazon S3. HealthOmics tidak memantau atau melaporkan ukuran cache.
+ Jika Anda menghapus entri cache yang valid, proses berikutnya tidak akan gagal. HealthOmics menghitung ulang tugas dan tugas-tugas dependennya.
+ Jika Anda memodifikasi nama cache atau struktur direktori sedemikian rupa sehingga tidak HealthOmics dapat menemukan entri yang cocok untuk tugas, HealthOmics hitung ulang tugas tersebut.

Jika Anda perlu memeriksa apakah entri cache masih valid, periksa nomor versi manifes cache. Untuk informasi selengkapnya, lihat [Pembaruan versi manifes dan kesegaran data](#workflow-cache-data-versions).

# Membuat cache run
<a name="workflow-cache-create"></a>

Saat membuat cache run, Anda menentukan lokasi Amazon S3 untuk data cache. Data ini harus segera dapat diakses. Caching panggilan tidak mengambil objek yang diarsipkan di Glacier (seperti kelas penyimpanan GFR dan GDA).

Jika bucket Amazon S3 untuk data cache dimiliki oleh orang lain Akun AWS, berikan ID akun tersebut saat Anda membuat cache run.

## Membuat cache run menggunakan konsol
<a name="workflow-cache-create-console"></a>

Dari konsol, ikuti langkah-langkah ini untuk membuat cache run.

1. Buka [konsol HealthOmics ](https://console.aws.amazon.com/omics/).

1.  Jika diperlukan, buka panel navigasi kiri (≡). Pilih **Jalankan cache**.

1. Dari halaman **Jalankan cache**, pilih **Buat cache run**.

1. Di panel **Run cache details** pada halaman **Create run cache**, konfigurasikan bidang-bidang ini:

   1. Masukkan nama untuk cache run.

   1. (Opsional) Masukkan deskripsi.

   1. Masukkan lokasi S3 untuk output cache. Pilih bucket di Wilayah yang sama dengan alur kerja Anda.

   1. (Opsional) Masukkan Akun AWS pemilik bucket untuk memverifikasi kepemilikan bucket. Jika Anda tidak memasukkan nilai, nilai default adalah ID akun Anda.

   1. Di bawah **perilaku Cache**, konfigurasikan perilaku default (apakah akan men-cache output untuk proses yang gagal atau untuk semua proses). Saat memulai proses, Anda dapat mengganti perilaku default secara opsional. 

1. (Opsional) Kaitkan satu atau beberapa tag dengan cache run.

1. Pilih **Buat cache run**. Konsol menampilkan cache run baru di tabel **Jalankan cache**.

## Membuat cache run menggunakan CLI
<a name="workflow-cache-create-api"></a>

Gunakan perintah **create-run-cache**CLI untuk membuat cache run. Perilaku cache default adalah`CACHE_ON_FAILURE`.

```
aws omics create-run-cache \
      --name "workflow 123 run cache" \
      --description "my run cache" \
      --cache-s3-location "s3://amzn-s3-demo-bucket" \ 
      --cache-behavior "CACHE_ALWAYS"                \
      --cache-bucket-owner-id  "111122223333"
```

Jika pembuatan berhasil, Anda menerima respons dengan bidang berikut.

```
{
  "arn": "string",
  "id": "string",
  "status": "ACTIVE"
  "tags": {}
  }
```

# Memperbarui cache run
<a name="workflow-cache-update"></a>

Anda dapat mengubah nama cache, deskripsi, tag, atau perilaku cache, tetapi bukan lokasi S3 untuk cache.

## Memperbarui cache run menggunakan konsol
<a name="workflow-cache-update-console"></a>

Dari konsol, ikuti langkah-langkah ini untuk memperbarui cache run.

1. Buka [konsol HealthOmics ](https://console.aws.amazon.com/omics/).

1.  Jika diperlukan, buka panel navigasi kiri (≡). Pilih **Jalankan cache**.

1. Dari tabel **Jalankan cache**, pilih cache jalankan yang akan diperbarui, lalu pilih **Edit**. 

1. Di panel **Run cache details**, Anda dapat memperbarui kolom run cache name, description, dan cache behavior.

1. (Opsional) Kaitkan satu atau beberapa tag baru dengan cache run, atau hapus tag yang ada.

1. Pilih **Simpan cache run**.

## Memperbarui cache run menggunakan CLI
<a name="workflow-cache-update-api"></a>

Gunakan perintah **update-run-cache**CLI untuk memperbarui cache run.

```
aws omics update-run-cache \
      --name "workflow 123 run cache" \
      --id "workflow id" \
      --description "my run cache" \
      --cache-behavior "CACHE_ALWAYS"
```

Jika pembaruan berhasil, Anda menerima respons tanpa bidang data.

# Menghapus cache run
<a name="workflow-cache-delete"></a>

Anda dapat menghapus cache run jika tidak ada run aktif yang menggunakannya. Jika ada proses yang menggunakan cache run, tunggu hingga proses selesai atau Anda dapat membatalkan proses.

Menghapus cache run akan menghapus sumber daya dan metadatanya, tetapi tidak menghapus data di Amazon S3. Setelah Anda menghapus cache, Anda tidak dapat melampirkannya kembali atau menggunakannya untuk menjalankan selanjutnya.

Data yang di-cache tetap ada di Amazon S3 untuk pemeriksaan Anda. Anda dapat menghapus data cache lama menggunakan **Delete** operasi S3 standar. Atau, buat kebijakan siklus hidup Amazon S3 untuk menghapus data cache yang tidak lagi digunakan.

## Menghapus cache run menggunakan konsol
<a name="workflow-cache-delete-console"></a>

Dari konsol, ikuti langkah-langkah ini untuk menghapus cache run.

1. Buka [konsol HealthOmics ](https://console.aws.amazon.com/omics/).

1.  Jika diperlukan, buka panel navigasi kiri (≡). Pilih **Jalankan cache**.

1. Dari tabel **Jalankan cache**, pilih cache jalankan yang akan dihapus.

1. Dari menu tabel **Jalankan cache**, pilih **Hapus**.

1. Dari dialog modal, simpan tautan data cache Amazon S3 untuk referensi future, lalu konfirmasikan bahwa Anda ingin menghapus cache run.

    Anda dapat menggunakan tautan Amazon S3 untuk memeriksa data yang di-cache, tetapi Anda tidak dapat menautkan kembali data ke cache run lainnya. Hapus data cache saat Anda selesai inspeksi.

## Menghapus cache run menggunakan CLI
<a name="workflow-cache-delete-api"></a>

Gunakan perintah **delete-run-cache**CLI untuk menghapus cache run. 

```
aws omics delete-run-cache \
      --id "my cache id"
```

Jika penghapusan berhasil, Anda menerima respons tanpa bidang data.

# Isi cache run
<a name="workflow-cache-contents"></a>

HealthOmics mengatur cache run Anda dengan struktur berikut di bucket S3 Anda:

```
s3://{cache.S3location}/{cache.uuid}/runID/taskID/{cacheentry.uuid}/
```

Cache.uuid adalah id unik global untuk cache. Cacheentry.uuid adalah uuid unik secara global untuk tugas yang di-cache. HealthOmics menetapkan uuids ke cache dan tugas. 

Untuk semua mesin alur kerja, cache berisi file-file berikut: 
+ **\$1cacheentryuuid\$1.json**File - HealthOmics membuat file manifes ini, yang berisi informasi tentang cache, termasuk daftar semua item dalam cache, dan [versi cache](how-run-cache.md#workflow-cache-data-versions).
+ File output tugas - Setiap output tugas terdiri dari satu atau lebih file, seperti yang didefinisikan oleh tugas. 

Untuk alur kerja yang menggunakan Nextflow, mesin Nextflow membuat file tambahan ini dalam cache:
+ **command.out**File - File ini berisi isi stdout eksekusi tugas.
+ **.exitcode**File - File ini berisi kode keluar tugas (integer).

**catatan**  
Jika Anda ingin mengakses file tugas perantara di cache run untuk pemecahan masalah lanjutan, deklarasikan file ini sebagai output tugas dalam definisi alur kerja.

# Fitur caching khusus mesin
<a name="workflow-cache-per-engine"></a>

HealthOmics mencoba memberikan implementasi caching panggilan yang konsisten di seluruh mesin alur kerja. Ada beberapa perbedaan berdasarkan bagaimana setiap mesin alur kerja menangani kasus tertentu:
+ Alur berikutnya
  + Caching di berbagai versi Nextflow tidak dijamin. Jika Anda menjalankan tugas pada satu versi Nextflow dan kemudian menjalankan tugas yang sama pada versi Nextflow yang berbeda, HealthOmics mungkin menganggap proses kedua sebagai cache yang hilang.
  + Anda dapat mematikan caching untuk tugas individual dengan menggunakan **false** direktif cache. Untuk informasi tentang arahan ini, lihat [Proses dalam spesifikasi](https://www.nextflow.io/docs/latest/process.html#process-cache) Nextflow.
  + HealthOmics menggunakan mode lunak Nextflow, tetapi tidak mendukung mode cache dalam. 
  + Caching mengevaluasi setiap objek S3 individu jika Anda menggunakan pola glob di jalur S3 ke input untuk tugas. Jika Anda menambahkan objek baru, HealthOmics hitung ulang hanya tugas yang menggunakan objek baru.
  + HealthOmics tidak men-cache percobaan ulang tugas. Perilaku ini konsisten dengan perilaku default Nextflow.
+ WDL
  + HealthOmics mendukung jenis “direktori” baru untuk input saat Anda menggunakan versi pengembangan alur kerja WDL. Untuk caching panggilan, jika ada objek di direktori yang berubah, HealthOmics hitung ulang semua tugas yang memasukkan direktori.
  + HealthOmics mendukung caching tingkat tugas, tetapi bukan caching tingkat alur kerja. 
  + Anda dapat menonaktifkan caching untuk tugas individual dengan menggunakan atribut **volatile**. Untuk informasi selengkapnya, lihat [Nonaktifkan caching tingkat tugas dengan atribut volatile](workflow-languages-wdl.md#workflow-wdl-volatile-attribute).
+ CWL
  + Output konstan dari tugas tidak terlihat secara eksplisit dari manifes. HealthOmics cache output konstan sebagai file perantara.
  + Anda dapat mengontrol caching untuk tugas individual dengan menggunakan [WorkReuse](https://www.commonwl.org/v1.1/Workflow.html#WorkReuse)fitur ini.

# Menggunakan cache run
<a name="workflow-cache-startrun"></a>

Secara default, run tidak menggunakan cache run. Untuk menggunakan cache untuk menjalankan, Anda menentukan cache run dan perilaku run cache saat Anda memulai proses.

Setelah proses selesai, Anda dapat menggunakan konsol, CloudWatch Log, atau operasi API untuk melacak klik cache atau memecahkan masalah cache. Untuk detailnya, lihat [Melacak informasi caching panggilan](#workflow-cache-track) dan [Memecahkan masalah caching panggilan](troubleshooting.md#workflow-cache-troubleshooting).

Jika satu atau beberapa tugas dalam proses menghasilkan output non-deterministik, kami sangat menyarankan agar Anda tidak menggunakan caching panggilan untuk menjalankan, atau Anda memilih keluar dari tugas khusus ini dari caching. Untuk informasi selengkapnya, lihat [Model tanggung jawab bersama](how-run-cache.md#run-cache-srm).



**catatan**  
Anda memberikan peran layanan IAM saat memulai proses. Untuk menggunakan caching panggilan, peran layanan memerlukan izin untuk mengakses lokasi Amazon S3 run cache. Untuk informasi selengkapnya, lihat [Peran layanan untuk AWS HealthOmics](permissions-service.md).

Anda dapat menggunakan [Kiro CLI](https://docs.aws.amazon.com/kiro/latest/userguide/what-is.html) untuk menganalisis dan mengelola data cache run Anda. Untuk informasi selengkapnya, lihat [Contoh prompt untuk Kiro CLI dan tutorial AI](getting-started.md#omics-kiro-prompts) generatif [HealthOmics Agentic](https://github.com/aws-samples/aws-healthomics-tutorials/tree/main/generative-ai). GitHub

**Topics**
+ [Mengkonfigurasi run dengan run cache menggunakan konsol](#workflow-cache-startrun-console)
+ [Mengkonfigurasi run dengan run cache menggunakan CLI](#workflow-cache-startrun-api)
+ [Kasus kesalahan untuk menjalankan cache](#workflow-cache-errors)
+ [Melacak informasi caching panggilan](#workflow-cache-track)

## Mengkonfigurasi run dengan run cache menggunakan konsol
<a name="workflow-cache-startrun-console"></a>

Dari konsol, Anda mengonfigurasi cache run untuk dijalankan saat Anda memulai proses.

1. Buka [konsol HealthOmics ](https://console.aws.amazon.com/omics/).

1.  Jika diperlukan, buka panel navigasi kiri (≡). Pilih **Runs**.

1. Pada halaman **Runs**, pilih run untuk memulai.

1. Pilih **Mulai jalankan** dan selesaikan langkah 1 dan 2 dari **Mulai jalankan** seperti yang dijelaskan dalam[Memulai lari menggunakan konsol](starting-a-run.md#starting-a-run-console). 

1. Pada langkah 3 dari **Mulai jalankan**, pilih **Pilih cache run yang ada**. 

1. Pilih cache dari daftar drop-down **Jalankan ID cache**. 

1. Untuk mengganti perilaku cache run default, pilih **perilaku Cache** untuk dijalankan. Untuk informasi selengkapnya, lihat [Jalankan perilaku cache](how-run-cache.md#run-cache-behavior).

1. Lanjutkan ke langkah 4 dari **Mulai jalankan**.

## Mengkonfigurasi run dengan run cache menggunakan CLI
<a name="workflow-cache-startrun-api"></a>

**Untuk memulai proses yang menggunakan cache run, tambahkan parameter cache-id ke perintah CLI start-run.** Secara opsional, gunakan `cache-behavior` parameter untuk mengganti perilaku default yang Anda konfigurasikan untuk menjalankan cache. Contoh berikut hanya menunjukkan bidang cache untuk perintah:

```
aws omics start-run \
        ...  
      --cache-id "xxxxxx"    \
      --cache-behavior  CACHE_ALWAYS
```

Jika operasi berhasil, Anda menerima respons tanpa bidang data. 

## Kasus kesalahan untuk menjalankan cache
<a name="workflow-cache-errors"></a>

Untuk skenario berikut, HealthOmics mungkin tidak cache output tugas, bahkan untuk menjalankan dengan perilaku cache diatur ke **Cache selalu**.
+ Jika proses mengalami kesalahan sebelum tugas pertama berhasil diselesaikan, tidak ada output cache untuk diekspor.
+ Jika proses ekspor gagal, HealthOmics tidak menyimpan output tugas ke lokasi cache Amazon S3.
+ Jika proses gagal karena **filesystem out of space** kesalahan, caching panggilan tidak menyimpan output tugas apa pun.
+ Jika Anda membatalkan proses, caching panggilan tidak menyimpan output tugas apa pun.
+ Jika proses mengalami batas waktu berjalan, caching panggilan tidak menyimpan output tugas apa pun, bahkan jika Anda mengonfigurasi proses untuk menggunakan cache saat gagal.

## Melacak informasi caching panggilan
<a name="workflow-cache-track"></a>

Anda dapat melacak peristiwa caching panggilan (seperti menjalankan cache hits) menggunakan konsol, CLI, CloudWatch atau Log.

**Topics**
+ [Lacak klik cache menggunakan konsol](#workflow-cache-track-console)
+ [Lacak caching panggilan menggunakan CLI](#workflow-cache-track-cli)
+ [Lacak caching panggilan menggunakan CloudWatch Log](#workflow-cache-track-cwl)

### Lacak klik cache menggunakan konsol
<a name="workflow-cache-track-console"></a>

Di halaman run details untuk menjalankan, tabel **Jalankan tugas** menampilkan informasi **klik Cache** untuk setiap tugas. Tabel ini juga menyertakan tautan ke entri cache terkait. Gunakan prosedur berikut untuk melihat informasi cache hit untuk menjalankan.

1. Buka [konsol HealthOmics ](https://console.aws.amazon.com/omics/).

1.  Jika diperlukan, buka panel navigasi kiri (≡). Pilih **Runs**.

1. Pada halaman **Runs**, pilih run untuk diperiksa.

1. Pada halaman run details, pilih tab **Jalankan tugas** untuk menampilkan tabel tugas.

1. Jika tugas memiliki cache hit, kolom **Cache hit** berisi link ke lokasi entri cache run di Amazon S3.

1. Pilih tautan untuk memeriksa entri run cache.

### Lacak caching panggilan menggunakan CLI
<a name="workflow-cache-track-cli"></a>

Gunakan perintah **CLI get-run** untuk mengonfirmasi apakah run menggunakan cache panggilan.

```
 aws omics get-run --id 1234567  
```

Sebagai tanggapan, jika `cacheId` bidang disetel, run menggunakan cache itu.

Gunakan perintah **list-run-tasks**CLI untuk mengambil lokasi data cache untuk setiap tugas yang di-cache dalam proses.

```
 aws omics list-run-tasks --id 1234567  
```

Sebagai tanggapan, jika bidang cacheHit untuk tugas benar, bidang caches3URI menyediakan lokasi data cache untuk tugas itu.

Anda juga dapat menggunakan perintah **get-run-task**CLI untuk mengambil lokasi data cache untuk tugas tertentu:

```
 aws omics get-run-task --id 1234567 --task-id <task_id> 
```

### Lacak caching panggilan menggunakan CloudWatch Log
<a name="workflow-cache-track-cwl"></a>

HealthOmics membuat log aktivitas cache di grup `/aws/omics/WorkflowLog` CloudWatch log. <cache\$1id><cache\$1uuid>Ada aliran log untuk setiap cache run: **Runcache/**/.

Untuk menjalankan yang menggunakan caching panggilan, buat HealthOmics entri CloudWatch Log untuk peristiwa ini: 
+  membuat entri cache (CACHE\$1ENTRY\$1CREATED)
+  mencocokkan entri cache (CACHE\$1HIT) 
+  gagal mencocokkan entri cache (CACHE\$1MISS)

Untuk informasi selengkapnya tentang log ini, lihat[Log masuk CloudWatch](monitoring-cloudwatch-logs.md#cloudwatch-logs).

Gunakan kueri CloudWatch Insights berikut pada grup `/aws/omics/WorkflowLog` log untuk menampilkan jumlah klik cache per run untuk cache ini:

```
filter @logStream like 'runCache/<CACHE_ID>/'
 fields @timestamp, @message
 filter logMessage like 'CACHE_HIT'
 parse "run: *," as run
 stats count(*) as cacheHits by run
```

Gunakan kueri berikut untuk mengembalikan jumlah entri cache yang dibuat oleh setiap proses:

```
filter @logStream like 'runCache/<CACHE_ID>/'
 fields @timestamp, @message
 filter logMessage like 'CACHE_ENTRY_CREATED'
 parse "run: *," as run
 stats count(*) as cacheEntries by run
```