

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

# Menggunakan registri pihak ketiga yang didukung oleh pull through cache
<a name="containers-ptc-registries"></a>

Anda dapat menggunakan aturan tarik cache Amazon ECR untuk menyinkronkan repositori dalam registri hulu yang didukung dengan repositori pribadi Amazon ECR Anda. Untuk informasi lebih lanjut, lihat [Menyinkronkan registri hulu](https://docs.aws.amazon.com/AmazonECR/latest/userguide/pull-through-cache.html) di *Panduan Pengguna Registri Kontainer Elastis Amazon*.

Pertama kali gambar ditarik, pull through cache membuat repositori gambar di registri pribadi Anda dan membuatnya tetap disinkronkan dengan gambar hulu, selama tag gambar repositori tetap dapat diubah.

HealthOmics mendukung pull through cache untuk registri hulu berikut:
+ Amazon ECR Public
+ Registri gambar kontainer Kubernetes
+ dermaga
+ Hub Docker
+ Registri Kontainer Microsoft Azure
+ GitHub Pendaftaran Kontainer
+ GitLab Pendaftaran Kontainer

Untuk registri yang menarik melalui cache tidak mendukung, HealthOmics menyalin gambar ke repositori pribadi Amazon ECR Anda. Untuk informasi selengkapnya, lihat [Menggunakan registri pihak ketiga yang tidak didukung oleh pull through cache](containers-non-ptc-registries.md).

Manfaat menggunakan cache pull through Amazon ECR meliputi:

1. Anda menghindari keharusan memigrasikan gambar kontainer secara manual ke Amazon ECR atau untuk menyinkronkan pembaruan dari repositori pihak ketiga.

1. Alur kerja mengakses gambar kontainer yang disinkronkan di repositori pribadi Anda, yang lebih dapat diandalkan daripada mengunduh konten pada waktu berjalan dari registri publik.

1. Karena cache yang ditarik melalui Amazon ECR menggunakan struktur URI yang dapat diprediksi, Anda dapat menyimpan URI gambar hulu dalam definisi alur kerja Anda dan menambahkan peta registri kontainer yang menyelesaikannya ke repositori cache Anda. Untuk informasi selengkapnya, lihat [Langkah 4: Menambahkan peta registri kontainer (jika alur kerja Anda menggunakan URI hulu)](#ecr-ptc-registry-map).

**Topics**
+ [Prasyarat](#ecr-ptc-prerequisites)
+ [Mengkonfigurasi pull through cache](#ecr-pull-through-configure)
+ [Re-running konfigurasi](#rerun-ecr-ptc)
+ [Pemecahan masalah tarik melalui cache](#ecr-ptc-troubleshooting)

## Prasyarat
<a name="ecr-ptc-prerequisites"></a>

Jika registri hulu memerlukan otentikasi, AWS Secrets Manager Rahasia harus dalam hal yang sama Akun AWS dan Wilayah sebagai aturan tarik melalui cache. Saat Anda membuat aturan, lewati `--credential-arn` ARN rahasia persis seperti yang dikembalikan oleh Manajer Rahasia, termasuk akhiran yang ditambahkan Manajer Rahasia ke nama. Manajer Rahasia **create-secret** dan **describe-secret** Jawaban keduanya mengembalikannya. Contoh ARN dalam topik ini menyingkat nama rahasia.


| Registri hulu | URL Pendaftaran | Rahasia Manajer Rahasia diperlukan | 
| --- | --- | --- | 
| Amazon ECR Public | `public.ecr.aws` | Tidak | 
| Registri gambar kontainer Kubernetes | `registry.k8s.io` | Tidak | 
| dermaga | `quay.io` | Tidak | 
| Hub Docker | `registry-1.docker.io` | Ya | 
| Registri Kontainer Microsoft Azure | `{{registry-name}}.azurecr.io` | Ya | 
| GitHub Pendaftaran Kontainer | `ghcr.io` | Ya | 
| GitLab Pendaftaran Kontainer | `registry.gitlab.com` | Ya | 

Nama rahasia harus dimulai dengan `ecr-pullthroughcache/`. Untuk persyaratan lainnya, lihat [Menyimpan kredentif repositori hulu Anda dalam AWS Secrets Manager rahasia](https://docs.aws.amazon.com/AmazonECR/latest/userguide/pull-through-cache-creating-secret.html) di *Panduan Pengguna Registri Kontainer Elastis Amazon*.

## Mengkonfigurasi pull through cache
<a name="ecr-pull-through-configure"></a>

Amazon ECR menyediakan registri untuk Anda Akun AWS di setiap wilayah. Pastikan Anda membuat konfigurasi Amazon ECR di wilayah yang sama di mana Anda berencana untuk menjalankan alur kerja.

Selesaikan tugas konfigurasi berikut secara berurutan. Langkah 4 hanya berlaku jika definisi alur kerja Anda menggunakan URI gambar hulu.

**Topics**
+ [Langkah 1: Membuat aturan pull through cache](#create-ecr-ptc)
+ [Langkah 2: Menyiapkan izin untuk registri hulu](#reg-ecr-ptc)
+ [Langkah 3: Membuat template repositori](#repo-create-templates-ptc)
+ [Langkah 4: Menambahkan peta registri kontainer (jika alur kerja Anda menggunakan URI hulu)](#ecr-ptc-registry-map)
+ [Langkah 5: Memverifikasi konfigurasi cache tarik melalui](#verify-ecr-ptc)

### Langkah 1: Membuat aturan pull through cache
<a name="create-ecr-ptc"></a>

Buat aturan cache pull through Amazon ECR untuk setiap registri hulu yang memiliki gambar yang ingin Anda cache. Aturan menentukan pemetaan antara registri hulu dan repositori pribadi Amazon ECR.

Untuk registri hulu yang memerlukan otentikasi, Anda memberikan kredenSIAL menggunakan AWS Secrets Manager.

**catatan**  
Jangan mengubah aturan pull through cache saat proses aktif menggunakan repositori pribadi. Pengoperasian bisa gagal atau, yang lebih kritis, mengakibatkan pipeline Anda menggunakan gambar yang tidak terduga.

Untuk informasi lebih lanjut, lihat [Membuat aturan pull through cache](https://docs.aws.amazon.com/AmazonECR/latest/userguide/pull-through-cache-creating-rule.html) di *Panduan Pengguna Registri Kontainer Elastis Amazon*.

#### Membuat aturan pull through cache menggunakan konsol
<a name="create-ecr-ptc-console"></a>

Untuk mengonfigurasi pull through cache, ikuti langkah-langkah berikut menggunakan konsol Amazon ECR:

**Bagian 1: Memilih registri hulu**

1. Buka [Konsol Amazon ECR](https://console.aws.amazon.com/ecr/).

1. Di panel navigasi, di bawah **Pendaftaran pribadi**, memperluas **Fitur & Pengaturan**, lalu pilih **Tarik melalui cache**.

1. Pada **Tarik melalui cache** halaman, pilih **Tambahkan aturan**.

1. Di **Registri hulu** panel, pilih registri hulu untuk disinkronkan dengan registri pribadi Anda, lalu pilih **Berikutnya**.

1. Jika registri hulu memerlukan otentikasi, pada halaman berikutnya, tentukan rahasia Manajer Rahasia yang berisi kredenSIAL Anda. Pilih **Berikutnya**.

**Bagian 2: Menentukan ruang nama dan membuat aturan**

1. Di bawah **Tentukan ruang nama**, di **Ruang nama cache** panel, pilih apakah akan membuat repositori pribadi menggunakan awalan repositori tertentu atau tanpa awalan. Jika Anda memilih untuk menggunakan awalan, tentukan nama awalan di **Awalan repositori cache**.

1. Di **Ruang nama hulu** panel, pilih apakah akan menarik dari repositori hulu menggunakan awalan repositori tertentu atau tanpa awalan. Jika Anda memilih untuk menggunakan awalan, tentukan nama awalan di **Awalan repositori hulu**.

    **Contoh namespace** panel menunjukkan contoh pull request, upstream URL, dan URL repositori cache yang dibuat.

1. Pilih **Berikutnya**.

1. Tinjau konfigurasi dan pilih **Buat** untuk membuat aturan.

#### Membuat aturan pull through cache menggunakan AWS CLI
<a name="create-ecr-ptc-cli"></a>

Gunakan Amazon ECR **create-pull-through-cache-rule** perintah untuk membuat aturan pull through cache. Untuk registri hulu yang memerlukan otentikasi, simpan kredensialnya dalam rahasia Manajer Rahasia.

Contoh berikut menunjukkan cara membuat aturan untuk setiap registri hulu yang didukung.

------
#### [ Amazon ECR Public ]

Contoh berikut membuat aturan cache pull through untuk registri Publik Amazon ECR. Ini menentukan awalan repositori `ecr-public`, sehingga setiap repositori yang dibuat aturan menggunakan skema penamaan `ecr-public/{{upstream-repository-name}}`.

```
aws ecr create-pull-through-cache-rule \
     --ecr-repository-prefix {{ecr-public}} \
     --upstream-registry-url public.ecr.aws \
     --region {{us-east-1}}
```

------
#### [ Kubernetes container image registry ]

Contoh berikut membuat aturan cache pull through untuk registri publik Kubernetes. Ini menentukan awalan repositori `kubernetes`, sehingga setiap repositori yang dibuat aturan menggunakan skema penamaan `kubernetes/{{upstream-repository-name}}`.

```
aws ecr create-pull-through-cache-rule \
     --ecr-repository-prefix {{kubernetes}} \
     --upstream-registry-url registry.k8s.io \
     --region {{us-east-1}}
```

------
#### [ Quay ]

Contoh berikut membuat aturan cache pull through untuk registri publik Quay. Ini menentukan awalan repositori `quay`, sehingga setiap repositori yang dibuat aturan menggunakan skema penamaan `quay/{{upstream-repository-name}}`.

```
aws ecr create-pull-through-cache-rule \
     --ecr-repository-prefix {{quay}} \
     --upstream-registry-url quay.io \
     --region {{us-east-1}}
```

------
#### [ Docker Hub ]

Contoh berikut membuat aturan cache pull through untuk registri Docker Hub. Ini menentukan awalan repositori `docker-hub`, sehingga setiap repositori yang dibuat aturan menggunakan skema penamaan `docker-hub/{{upstream-repository-name}}`. Anda harus menentukan Nama Sumber Daya Amazon (ARN) lengkap dari rahasia yang berisi kredenSIAL Docker Hub Anda.

```
aws ecr create-pull-through-cache-rule \
     --ecr-repository-prefix {{docker-hub}} \
     --upstream-registry-url registry-1.docker.io \
     --credential-arn arn:aws:secretsmanager:{{us-east-1}}:{{111122223333}}:secret:{{ecr-pullthroughcache/example1234}} \
     --region {{us-east-1}}
```

------
#### [ GitHub Container Registry ]

Contoh berikut membuat aturan cache pull through untuk GitHub Pendaftaran Kontainer. Ini menentukan awalan repositori `github`, sehingga setiap repositori yang dibuat aturan menggunakan skema penamaan `github/{{upstream-repository-name}}`. Anda harus menentukan Nama Sumber Daya Amazon (ARN) lengkap dari rahasia yang berisi GitHub KredenSIAL Registri Kontainer.

```
aws ecr create-pull-through-cache-rule \
     --ecr-repository-prefix {{github}} \
     --upstream-registry-url ghcr.io \
     --credential-arn arn:aws:secretsmanager:{{us-east-1}}:{{111122223333}}:secret:{{ecr-pullthroughcache/example1234}} \
     --region {{us-east-1}}
```

------
#### [ Microsoft Azure Container Registry ]

Contoh berikut membuat aturan cache pull through untuk Microsoft Azure Container Registry. Ini menentukan awalan repositori `azure`, sehingga setiap repositori yang dibuat aturan menggunakan skema penamaan `azure/{{upstream-repository-name}}`. Anda harus menentukan Nama Sumber Daya Amazon (ARN) lengkap dari rahasia yang berisi kredenSIAL Microsoft Azure Container Registry Anda.

```
aws ecr create-pull-through-cache-rule \
     --ecr-repository-prefix {{azure}} \
     --upstream-registry-url {{myregistry}}.azurecr.io \
     --credential-arn arn:aws:secretsmanager:{{us-east-1}}:{{111122223333}}:secret:{{ecr-pullthroughcache/example1234}} \
     --region {{us-east-1}}
```

------
#### [ GitLab Container Registry ]

Contoh berikut membuat aturan cache pull through untuk GitLab Pendaftaran Kontainer. Ini menentukan awalan repositori `gitlab`, sehingga setiap repositori yang dibuat aturan menggunakan skema penamaan `gitlab/{{upstream-repository-name}}`. Anda harus menentukan Nama Sumber Daya Amazon (ARN) lengkap dari rahasia yang berisi GitLab KredenSIAL Registri Kontainer.

```
aws ecr create-pull-through-cache-rule \
     --ecr-repository-prefix {{gitlab}} \
     --upstream-registry-url registry.gitlab.com \
     --credential-arn arn:aws:secretsmanager:{{us-east-1}}:{{111122223333}}:secret:{{ecr-pullthroughcache/example1234}} \
     --region {{us-east-1}}
```

------

Anda dapat menggunakan **get-run-task** AWS CLI perintah untuk mengambil informasi tentang gambar kontainer yang digunakan untuk tugas tertentu:

```
aws omics get-run-task --id {{run-id}} --task-id {{task-id}}
```

Outputnya mencakup informasi berikut tentang gambar wadah:

```
"imageDetails": {
    "image": "string",
    "imageDigest": "string",
    "sourceImage": "string",
    ...
}
```

### Langkah 2: Menyiapkan izin untuk registri hulu
<a name="reg-ecr-ptc"></a>

Gunakan izin registri untuk mengizinkan HealthOmics untuk menggunakan cache pull through dan untuk menarik gambar kontainer ke registri pribadi Amazon ECR. Tambahkan kebijakan Amazon ECR Registry ke registri yang menyediakan wadah yang digunakan dalam proses. 

Kebijakan berikut memberikan izin untuk HealthOmics layanan untuk membuat repositori dengan prefiks cache tarik yang ditentukan dan untuk memulai penarikan hulu ke repositori ini. 

Pastikan `Resource` mencakup setiap awalan repositori cache yang Anda buat, dan mengatur Region dan Akun AWS di setiap repositori ARN ke registri yang Anda konfigurasi, karena kebijakan registri hanya berlaku untuk Wilayah dan akunnya sendiri.

1. Buka [Konsol Amazon ECR](https://console.aws.amazon.com/ecr/).

1. Di panel navigasi, di bawah **Pendaftaran pribadi**, memperluas **Izin registri**, lalu pilih **Hasilkan pernyataan**.

1. Di sisi kanan atas, pilih JSON. Masukkan kebijakan yang mirip dengan berikut ini:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowPTCinRegPermissions",
               "Effect": "Allow",
               "Principal": {
                   "Service": "omics.amazonaws.com"
               },
               "Action": [
                   "ecr:CreateRepository",
                   "ecr:BatchImportUpstreamImage"
               ],
               "Resource": [
                   "arn:aws:ecr:{{us-east-1}}:{{123456789012}}:repository/ecr-public/*",
                   "arn:aws:ecr:{{us-east-1}}:{{123456789012}}:repository/docker-hub/*"
               ] 
           }
       ]
   }
   ```

------

1. Simpan kebijakan.

Untuk melampirkan kebijakan dengan AWS CLI sebagai gantinya, simpan ke file, lalu gunakan Amazon ECR **put-registry-policy** perintah:

```
aws ecr put-registry-policy \
     --policy-text file://{{registry-policy-file}}.json \
     --region {{region}}
```

**penting**  
**put-registry-policy** menggantikan seluruh kebijakan registri. Jika registri Anda sudah memiliki kebijakan, ambil dengan **get-registry-policy**, tambahkan HealthOmics pernyataan, dan mengembalikan kebijakan gabungan.

Untuk informasi selengkapnya tentang kebijakan untuk cache pull through Amazon ECR, lihat [Kebijakan untuk Amazon ECR menarik melalui cache](permissions-ecr.md#permissions-ecr-ptc).

### Langkah 3: Membuat template repositori
<a name="repo-create-templates-ptc"></a>

Untuk menggunakan pull through caching di HealthOmics, repositori Amazon ECR harus memiliki template pembuatan repositori. Template menentukan pengaturan konfigurasi saat Anda atau Amazon ECR membuat repositori pribadi untuk registri hulu. 

Setiap template berisi awalan namespace repositori, yang digunakan Amazon ECR untuk mencocokkan repositori baru dengan template tertentu. Template menentukan konfigurasi untuk semua pengaturan repositori termasuk kebijakan akses berbasis sumber daya, kekekalan tag, enkripsi, dan kebijakan siklus hidup.

Untuk informasi lebih lanjut, lihat [Templat pembuatan repositori](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-creation-templates.html) di *Panduan Pengguna Registri Kontainer Elastis Amazon*.

**catatan**  
Buat template sebelum dijalankan pertama yang menggunakan awalan. Awalan tanpa templat sendiri, dan tidak `ROOT` template, tidak mendapat kebijakan repositori, jadi HealthOmics tidak dapat menarik gambar yang di-cache. Tinggalkan mutabilitas tag di `MUTABLE`, sehingga Amazon ECR dapat menyegarkan gambar yang di-cache saat tag upstream berubah. Untuk repositori yang sudah ada, lihat [Memperbarui repositori yang dibuat sebelum template](#ecr-ptc-troubleshoot-template-late).

Untuk membuat template pembuatan repositori, ikuti langkah-langkah berikut menggunakan konsol Amazon ECR:

**Bagian 1: Mendefinisikan template**

1. Buka [Konsol Amazon ECR](https://console.aws.amazon.com/ecr/).

1. Di panel navigasi, di bawah **Pendaftaran pribadi**, memperluas **Fitur dan pengaturan**, lalu pilih **Templat pembuatan repositori**.

1. Pilih **Buat templat**.

1. Dalam **Detail template**, pilih **Tarik melalui cache**.

1. Pilih apakah akan menerapkan template ini ke awalan tertentu atau ke semua repositori yang tidak cocok dengan template lain.

   Jika Anda memilih **Awalan tertentu**, masukkan nilai awalan namespace di **Awalan**. Anda menentukan awalan ini saat Anda membuat aturan pull through cache.

1. Pilih **Berikutnya**.

**Bagian 2: Menambahkan konfigurasi pembuatan repositori**

1. Pada **Tambahkan konfigurasi pembuatan repositori** halaman, untuk **Izin repositori**, gunakan salah satu contoh pernyataan kebijakan, atau masukkan yang mirip dengan contoh berikut:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PTCRepoCreationTemplate",
               "Effect": "Allow",
               "Principal": {
                   "Service": "omics.amazonaws.com"
               },
               "Action": [
                   "ecr:BatchGetImage",
                   "ecr:GetDownloadUrlForLayer"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. (Opsional) Tambahkan pengaturan repositori seperti kebijakan siklus hidup dan tag. Amazon ECR menerapkan aturan ini untuk semua gambar kontainer yang dibuat untuk pull through cache yang menggunakan awalan yang ditentukan.

1. Pilih **Berikutnya**.

1. Tinjau konfigurasi dan pilih **Buat** untuk membuat template.

Untuk membuat template dengan AWS CLI sebagai gantinya, simpan kebijakan repositori dari prosedur sebelumnya ke file, lalu gunakan Amazon ECR **create-repository-creation-template** perintah dengan `--prefix` diatur ke awalan repositori cache dari aturan cache tarik melalui Anda. Deskripsi adalah opsional:

```
aws ecr create-repository-creation-template \
     --prefix {{ecr-repository-prefix}} \
     --applied-for PULL_THROUGH_CACHE \
     --repository-policy file://{{repository-policy-file}}.json \
     --image-tag-mutability MUTABLE \
     --description "{{description}}" \
     --region {{region}}
```

Jika template sudah ada untuk awalan, **create-repository-creation-template** gagal dengan TemplateAlreadyExistsException. Perbarui template yang ada di tempat sebagai gantinya:

```
aws ecr update-repository-creation-template \
     --prefix {{ecr-repository-prefix}} \
     --applied-for PULL_THROUGH_CACHE \
     --repository-policy file://{{repository-policy-file}}.json \
     --image-tag-mutability MUTABLE \
     --region {{region}}
```

**penting**  
**update-repository-creation-template** menggantikan setiap nilai yang Anda lewati, jadi `--applied-for` dan `--repository-policy` ganti daftar dan kebijakan yang ada alih-alih menggabungkannya. Ambil template saat ini dengan **describe-repository-creation-templates**, gabungkan perubahan Anda, dan berikan nilai lengkap.

Amazon ECR dikonfigurasi, tetapi HealthOmics Konfigurasi belum selesai. Jika definisi alur kerja Anda menggunakan URI gambar hulu, lanjutkan ke [Langkah 4: Menambahkan peta registri kontainer (jika alur kerja Anda menggunakan URI hulu)](#ecr-ptc-registry-map): tanpa peta registri kontainer, proses gagal setelah dimulai. Jika tidak, lanjutkan ke [Langkah 5: Memverifikasi konfigurasi cache tarik melalui](#verify-ecr-ptc).

### Langkah 4: Menambahkan peta registri kontainer (jika alur kerja Anda menggunakan URI hulu)
<a name="ecr-ptc-registry-map"></a>

URI gambar dalam definisi alur kerja menentukan apakah Anda memerlukan peta registri kontainer:


| Gambar URI dalam definisi alur kerja Anda | Peta registri | 
| --- | --- | 
| URI hulu, dalam bentuk `{{upstream-registry-url}}/{{upstream-repository-name}}:{{tag}}` | Tambahkan peta. Peta memberitahu HealthOmics awalan repositori cache mana yang termasuk dalam registri hulu mana, karena HealthOmics tidak membaca aturan cache tarik Anda. | 
| URI pribadi Amazon ECR dari repositori cache Anda, dalam bentuk `{{account-id}}.dkr.ecr.{{region}}.amazonaws.com/{{ecr-repository-prefix}}/{{upstream-repository-name}}:{{tag}}` | Anda tidak perlu peta. HealthOmics menggunakan setiap URI seperti yang diberikan. | 

Nama gambar yang ditulis tanpa host registri adalah nama pendek Docker Hub, yang dihitung sebagai URI hulu dan membutuhkan peta.

Jika definisi Anda menggunakan kedua jenis URI, tambahkan peta untuk gambar yang menggunakan URI hulu.

**penting**  
Dengan URI hulu, `StartRun` berhasil bahkan jika peta hilang atau tidak memiliki pemetaan untuk registri hulu gambar. HealthOmics memvalidasi setiap gambar saat membuat tugas yang menggunakannya, sehingga proses gagal setelah dimulai. Kedua kasus memberikan alasan kegagalan INVALID\_ECR\_IMAGE\_URI, dan pesan status run membedakan mereka. Pemetaan yang menyelesaikan gambar ke repositori cache yang tidak ada malah memberikan ECR\_REPOSITORY\_TIDAK\_DITEMUKAN.

Cerminkan aturan cache tarik melalui Anda di pemetaan: set `upstreamRegistryUrl` ke URL registri hulu aturan, `ecrRepositoryPrefix` ke awalan repositori cache-nya, dan `upstreamRepositoryPrefix` ke awalan repositori hulu jika aturan menggunakannya.

Jika repositori cache Anda berada di tempat yang berbeda Akun AWS dari alur kerja, atur `ecrAccountId` ke akun yang memiliki repositori cache, dan menambahkan kebijakan lintas akun yang dijelaskan di [Kebijakan untuk akses Amazon ECR lintas akun](permissions-ecr.md#permissions-cross-account). `ecrAccountId` default ke akun alur kerja sendiri.

**catatan**  
Untuk Docker Hub, atur `upstreamRegistryUrl` kepada `registry-1.docker.io`, nilai dalam [Prasyarat](#ecr-ptc-prerequisites). HealthOmics memperlakukan `registry-1.docker.io` dan `docker.io` sebagai host yang sama, sehingga satu pemetaan juga mencakup URI gambar yang ditulis dengan `docker.io`.  
HealthOmics juga memperluas nama Docker Hub pendek sebelum cocok dengan pemetaan: `ubuntu:22.04` menjadi `docker.io/library/ubuntu:22.04`, dan `myorg/image:tag` menjadi `docker.io/myorg/image:tag`. HealthOmics menyisipkan `library/` hanya jika nama gambar dalam definisi Anda tidak memiliki garis miring. Nama yang diperluas juga menentukan jalur repositori cache, jadi `ubuntu:22.04` memutuskan untuk `{{ecr-repository-prefix}}/library/ubuntu:22.04` di registri pribadi Anda.

Anda menyediakan peta saat Anda membuat alur kerja atau versi alur kerja. Untuk format peta dan aturan yang menentukan pemetaan mana yang dibutuhkan alur kerja Anda, lihat [Pemetaan registri](containers-workflow-creation.md#ecr-pull-through-registry-mapping). Untuk pemetaan gambar, lihat [Pemetaan gambar](containers-workflow-creation.md#ecr-pull-through-mapping-format). Setelah Anda menambahkan peta, lanjutkan ke [Langkah 5: Memverifikasi konfigurasi cache tarik melalui](#verify-ecr-ptc).

### Langkah 5: Memverifikasi konfigurasi cache tarik melalui
<a name="verify-ecr-ptc"></a>

Jalankan **aws ecr** perintah di akun yang memiliki repositori cache, karena **get-registry-policy** dan **describe-repository-creation-templates** selalu baca registri akun panggilan, dan jalankan **aws omics** perintah di akun yang memiliki alur kerja. Gunakan Wilayah tempat Anda menjalankan alur kerja untuk keduanya. Tiga pemeriksaan dalam prosedur berikut ini independen, jadi jalankan semuanya dan kumpulkan setiap masalah sebelum Anda kembali untuk memperbaikinya. Pemeriksaan peta registri setelah prosedur berlaku setelah Anda membuat versi alur kerja atau alur kerja, seperti yang dijelaskan dalam [Menambahkan wadah pribadi atau pihak ketiga selama pembuatan alur kerja](containers-workflow-creation.md). Pemeriksaan ujung ke ujung setelah itu juga membutuhkan proses yang dimulai.

1. Konfirmasikan bahwa aturan pull through cache ada dan menunjuk ke registri hulu yang diharapkan:

   ```
   aws ecr describe-pull-through-cache-rules \
        --region {{region}}
   ```

   Setiap aturan yang Anda buat muncul dengan `ecrRepositoryPrefix` dan `upstreamRegistryUrl`. Aturan yang menetapkan awalan repositori hulu juga menunjukkan `upstreamRepositoryPrefix`, dan aturan yang menggunakan kredensi juga menunjukkan `credentialArn`; Amazon ECR menghilangkan masing-masing bidang tersebut ketika aturan tidak mengaturnya. Kosong `pullThroughCacheRules` daftar berarti tidak ada aturan di Wilayah ini. Kembali ke [Langkah 1: Membuat aturan pull through cache](#create-ecr-ptc).

   Jika aturan menggunakan kredensi, konfirmasikan juga bahwa Amazon ECR dapat membaca rahasia dan masuk ke registri hulu:

   ```
   aws ecr validate-pull-through-cache-rule \
        --ecr-repository-prefix {{ecr-repository-prefix}} \
        --region {{region}}
   ```

   Outputnya meliputi `"isValid": true` ketika otentikasi berhasil, dan sebaliknya menyebutkan alasannya `failure`. Jika perintah gagal dengan PullThroughCacheRuleNotFoundException, tidak ada aturan yang menggunakan awalan itu. Sebuah AccessDeniedException berarti penelepon Anda tidak memiliki `ecr:ValidatePullThroughCacheRule` izin, yang tidak selalu disertakan oleh kebijakan baca-saja, bukan berarti aturannya salah. Untuk informasi lebih lanjut, lihat [Memvalidasi aturan tarik melalui cache](https://docs.aws.amazon.com/AmazonECR/latest/userguide/pull-through-cache-working-validating.html) di *Panduan Pengguna Registri Kontainer Elastis Amazon*.

1. Konfirmasikan bahwa kebijakan registri memberikan HealthOmics akses:

   ```
   aws ecr get-registry-policy \
        --region {{region}}
   ```

    `policyText` nilai dalam output, yang dikembalikan Amazon ECR JSON-escaped, harus berisi pernyataan dari [Langkah 2: Menyiapkan izin untuk registri hulu](#reg-ecr-ptc), memberikan `omics.amazonaws.com` kedua-duanya `ecr:CreateRepository` dan `ecr:BatchImportUpstreamImage`, secara individual atau melalui wildcard, dan mencakup setiap awalan repositori cache yang Anda buat. Awalan dicakup oleh `Resource` entri yang cocok dengan repositori cache di bawahnya, seperti repositori ARN yang diakhiri dengan awalan diikuti oleh `/*`, repositori ARN yang diakhiri dengan `/*` sendirian, atau `Resource` dari `*`. ARN yang berakhir pada awalan itu sendiri, tanpa `/*`, tidak mencakup apa pun: nama repositori cache selalu memiliki jalur di bawah awalan. ARN yang menamai Wilayah atau Akun AWS selain registri ini sendiri tidak mencakup apa pun, seperti yang dijelaskan dalam [Langkah 2: Menyiapkan izin untuk registri hulu](#reg-ecr-ptc). Jika tidak ada pernyataan yang mencakup awalan, atau jika perintah gagal dengan RegistryPolicyNotFoundException, kembali ke [Langkah 2: Menyiapkan izin untuk registri hulu](#reg-ecr-ptc) dan pastikan bahwa Anda menyimpan kebijakan.

1. Konfirmasikan bahwa template pembuatan repositori ada untuk setiap awalan repositori cache. Berikan semua awalan yang Anda buat:

   ```
   aws ecr describe-repository-creation-templates \
        --prefixes {{ecr-repository-prefix-1}} {{ecr-repository-prefix-2}} \
        --region {{region}}
   ```

   Untuk setiap awalan, template yang diterapkan Amazon ECR ke repositori cache-nya - diidentifikasi dalam paragraf berikutnya - harus memiliki `PULL_THROUGH_CACHE` di `appliedFor` dan `repositoryPolicy` yang memberikan `omics.amazonaws.com` Tindakan tarik dari [Langkah 3: Membuat template repositori](#repo-create-templates-ptc), `ecr:BatchGetImage` dan `ecr:GetDownloadUrlForLayer`. Kebijakan yang tidak kosong tidak cukup: konfirmasikan prinsipal serta tindakannya.

   Amazon ECR menerapkan template yang awalannya cocok terpanjang untuk repositori, atau `ROOT` template jika tidak ada awalan yang cocok. Jalankan perintah tanpa `--prefixes` untuk melihat setiap template, karena `--prefixes` cocok dengan setiap awalan persis daripada dengan jalur, jadi tidak ada `ROOT` template atau template pada awalan yang lebih panjang muncul di output yang difilter. Kembali ke langkah itu untuk awalan apa pun yang templat yang berlakunya hilang atau gagal dalam salah satu persyaratan. `imageTagMutability` Tidak mempengaruhi apakah HealthOmics dapat menarik gambar, tetapi template yang mengaturnya ke apa pun selain `MUTABLE` menghentikan Amazon ECR menyegarkan gambar yang di-cache saat tag upstream bergerak, seperti yang dijelaskan dalam [Langkah 3: Membuat template repositori](#repo-create-templates-ptc).

   Jika ada repositori cache sebelum Anda membuat template, konfirmasikan juga kebijakan repositori pada masing-masing repositori tersebut, seperti yang dijelaskan dalam [Memperbarui repositori yang dibuat sebelum template](#ecr-ptc-troubleshoot-template-late).

Jika definisi Anda menggunakan URI hulu, konfirmasikan peta registri yang Anda tambahkan [Langkah 4: Menambahkan peta registri kontainer (jika alur kerja Anda menggunakan URI hulu)](#ecr-ptc-registry-map). Peta milik alur kerja atau versi alur kerja yang Anda berikan, jadi periksa yang digunakan saat menjalankan: versi yang Anda berikan sebagai `--workflow-version-name` kepada **start-run**, atau alur kerja jika proses Anda tidak menyebutkan namanya. Untuk lari yang sudah ada, `workflowVersionName` di **get-run** output menamai versinya.

Untuk alur kerja:

```
aws omics get-workflow \
     --id {{workflow-id}} \
     --region {{region}}
```

Untuk versi alur kerja:

```
aws omics get-workflow-version \
     --workflow-id {{workflow-id}} \
     --version-name {{version-name}} \
     --region {{region}}
```

Periksa `containerRegistryMap` nilai dalam output. Jika tidak memiliki peta, respons menghilangkan bidang. Konfirmasikan itu `status` adalah `ACTIVE`: jika masih `CREATING`, tunggu dan coba lagi, dan jika ya `FAILED`, alasannya ada di `statusMessage`. Anda tidak dapat mengubah peta di tempatnya, jadi jika tidak ada atau salah, buat versi alur kerja baru seperti yang dijelaskan di [Re-running konfigurasi](#rerun-ecr-ptc).

Untuk mengonfirmasi ujung ke ujung bahwa proses menggunakan gambar yang di-cache, baca hasil dari proses yang menggunakan cache. Proses yang telah selesai berfungsi, termasuk yang gagal, tetapi proses yang dibatalkan mungkin tidak pernah menyelesaikan gambarnya; mulai menjalankan hanya jika Anda belum memilikinya:

```
aws omics get-run \
     --id {{run-id}} \
     --region {{region}}
```

 `resourceDigests` bidang dalam output, ketika run melaporkannya, merekam sumber daya yang diselesaikan dijalankan, termasuk gambar wadahnya. Entri yang kuncinya adalah URI pribadi Amazon ECR di bawah awalan repositori cache Anda, dengan `sha256` mencerna sebagai nilainya, mengonfirmasi bahwa proses menyelesaikan gambar itu ke cache Anda. Ini adalah pemeriksaan tercepat, dan berfungsi bahkan untuk proses yang gagal karena alasan yang tidak terkait.

Jika lari berhenti tanpa berhasil, `failureReason` dan `statusMessage` bersama-sama memberi tahu Anda apakah konfigurasi ini terlibat. Periksa ini sebelum Anda melihat tugas run, karena proses yang gagal pada gambar mungkin tidak membuat tugas sama sekali:
+ ECR\_REPOSITORY\_TIDAK\_DITEMUKAN, ECR\_IMAGE\_TIDAK\_DITEMUKAN atau ECR\_PERMISSION\_ERROR untuk URI gambar di bawah salah satu awalan repositori cache Anda - lanjutkan ke [Pemecahan masalah tarik melalui cache](#ecr-ptc-troubleshooting). Salah satu alasan untuk URI yang tidak berada di bawah salah satu awalan Anda adalah masalah Amazon ECR dengan repositori itu daripada masalah cache tarik melalui, karena tidak ada aturan cache yang berlaku untuknya. Untuk repositori yang Anda kelola sendiri di Amazon ECR, berikan HealthOmics akses dengan kebijakan repositori, seperti yang dijelaskan dalam [Buat kebijakan sumber daya untuk repositori Amazon ECR](permissions-ecr.md#permissions-resource-policy).
+ INVALID\_ECR\_IMAGE\_URI - peta registri hilang, tidak memiliki pemetaan untuk registri hulu gambar, `upstreamRepositoryPrefix` tidak mencakup jalur gambar, atau URI gambar tidak valid. Baca pesan status untuk membedakannya, dan periksa URI sebelum Anda mengubah peta. Lihat [Langkah 4: Menambahkan peta registri kontainer (jika alur kerja Anda menggunakan URI hulu)](#ecr-ptc-registry-map).
+ TIDAK DAPAT\_MEMULAI\_KONTAINER\_ERROR atau GAGAL\_VERIFIKASI\_GAMBAR untuk URI gambar di bawah salah satu awalan Anda — gambar mencapai repositori cache Anda tetapi tugas tidak dapat menggunakannya. Jika Anda mengubah atau membuat ulang aturan cache, gambar cache basi dapat menyebabkan ini; lihat [Mengubah aturan cache saat proses aktif](#ecr-ptc-troubleshoot-rule-change). Jika tidak, gambar yang di-cache itu sendiri adalah masalah daripada konfigurasi ini, dan gambar hulu atau tugas yang menggunakannya adalah tempat untuk mencari.
+ Alasan kegagalan lainnya, atau tidak sama sekali sebagai laporan run yang dibatalkan - proses berhenti karena alasan yang tidak terkait dengan konfigurasi ini. Untuk status run dan alasan kegagalan lainnya, lihat [Dapatkan informasi lari](getinfo-about-runs.md) dan [Jalankan alasan kegagalan](workflows-run-errors.md).

Tidak setiap laporan lari `resourceDigests`, dan proses yang belum menyelesaikan gambarnya belum memiliki entri untuk mereka. Jika bidang atau entri hilang, atau jika Anda ingin mengonfirmasi gambar mana yang ditarik tugas individual, daftarkan tugas yang dijalankan:

```
aws omics list-run-tasks \
     --id {{run-id}} \
     --region {{region}}
```

Kosong `items` daftar lari yang masih berjalan berarti HealthOmics belum membuat tugas, jadi tunggu dan daftarkan lagi. Saat menjalankan yang telah berhenti, itu berarti bahwa tidak ada tugas yang pernah dibuat: untuk menjalankan yang gagal, alasan kegagalan sebelumnya menjelaskan alasannya, dan proses yang dibatalkan sebelum dimulai tidak memiliki apa pun untuk dikonfirmasi, jadi gunakan run yang berbeda. Jika tidak, ambil detail gambar untuk salah satu tugas, menggunakan `taskId` dari output sebelumnya:

```
aws omics get-run-task \
     --id {{run-id}} \
     --task-id {{task-id}} \
     --region {{region}} \
     --query imageDetails
```

Dalam `imageDetails`, `sourceImage` adalah URI gambar dari definisi alur kerja Anda, dan `image` adalah URI pribadi Amazon ECR yang ditarik oleh tugas tersebut. Sebuah `image` nilai di bawah awalan repositori cache Anda, dalam bentuk Private-URI yang ditampilkan di [Langkah 4: Menambahkan peta registri kontainer (jika alur kerja Anda menggunakan URI hulu)](#ecr-ptc-registry-map) dan mungkin dengan ringkasan gambar ditambahkan, mengonfirmasi bahwa tugas tersebut menggunakan cache tarik melalui Anda. `imageDetails` bisa kosong, untuk tugas yang belum menarik gambarnya dan untuk beberapa tugas yang sudah selesai. Tugas tanpa detail gambar yang direkam juga tidak ada di log manifes run, jadi periksa tugas lain dari proses yang sama. Jika tidak ada tugas dalam proses selesai yang merekamnya, Anda masih dapat mengonfirmasi bahwa gambar di-cache, seperti yang dijelaskan dalam [Menyelesaikan kebijakan registri yang hilang atau tidak lengkap](#ecr-ptc-troubleshoot-registry-policy). Itu mengkonfirmasi konfigurasi daripada gambar mana yang ditarik tugas tertentu, karena proses sebelumnya mungkin telah mengisi cache.

Setelah proses selesai, log manifes run-nya mengulangi informasi gambar ini, sehingga Anda dapat memeriksa tugas run sekaligus alih-alih memanggil **get-run-task** untuk masing-masing. Dalam setiap catatan tugas, bidang bernama `originalImage` sesuai dengan `sourceImage` di sini, dan `image` adalah nilai yang sama seperti di atas. Untuk tempat menemukan log, lihat [Pemantauan HealthOmics bersama CloudWatch Log](monitoring-cloudwatch-logs.md), dan untuk catatan tugas lainnya, lihat [Dapatkan informasi lari](getinfo-about-runs.md).

Setelah mengonfigurasi pull through cache, Anda dapat membuat alur kerja atau versi alur kerja baru untuk menggunakan wadah dari registri yang dikonfigurasi. Untuk informasi selengkapnya, lihat [Menambahkan wadah pribadi atau pihak ketiga selama pembuatan alur kerja](containers-workflow-creation.md).

## Re-running konfigurasi
<a name="rerun-ecr-ptc"></a>

Anda dapat mengulangi langkah-langkah ini, misalnya untuk menambahkan awalan atau untuk memperbaiki kebijakan. Perintah create gagal dengan kode keluar bukan nol ketika sumber daya sudah ada, tanpa mengubahnya. **put-registry-policy** tidak gagal, tetapi menggantikan seluruh kebijakan registri, seperti yang dijelaskan dalam [Langkah 2: Menyiapkan izin untuk registri hulu](#reg-ecr-ptc).
+ Tarik melalui aturan cache - **create-pull-through-cache-rule** gagal dengan PullThroughCacheRuleAlreadyExistsException. Jika registri yang Anda tambahkan memerlukan otentikasi, buat rahasia Manajer Rahasianya terlebih dahulu, seperti yang dijelaskan di [Prasyarat](#ecr-ptc-prerequisites).
+ Kebijakan izin registri - tambahkan `Resource` entri untuk setiap awalan repositori cache baru, seperti yang dijelaskan dalam [Langkah 2: Menyiapkan izin untuk registri hulu](#reg-ecr-ptc); kebijakan yang menyebutkan awalan secara individual tidak akan mencakup yang baru. Konfirmasikan cakupan dengan **get-registry-policy**, seperti yang dijelaskan dalam [Langkah 5: Memverifikasi konfigurasi cache tarik melalui](#verify-ecr-ptc).
+ Template pembuatan repositori - buat template untuk awalan repositori cache yang tidak memilikinya, dan memperbarui template yang ada untuk mengubah awalan yang sudah memilikinya, keduanya seperti yang dijelaskan dalam [Langkah 3: Membuat template repositori](#repo-create-templates-ptc). Menjalankan pembaruan terhadap template awalan lain akan mengganti template itu. Untuk memperbarui repositori yang sudah dibuat Amazon ECR, lihat [Memperbarui repositori yang dibuat sebelum template](#ecr-ptc-troubleshoot-template-late).
+ Peta registri kontainer — Anda menyediakan peta saat Anda membuat alur kerja atau versi alur kerja, dan **update-workflow** dan **update-workflow-version** tidak bisa mengubahnya. Sebelum Anda membuat versi, siapkan peta lengkap: versi baru tidak mewarisi peta versi sebelumnya, jadi daftarkan setiap pemetaan yang masih dibutuhkan alur kerja, bukan hanya yang baru. **create-workflow-version** mengambil seluruh versi daripada hanya peta, jadi Anda juga memerlukan definisi alur kerja dan parameter versi lainnya, seperti yang dijelaskan di [Buat versi alur kerja](workflows-version-create.md). Kemudian buat versi dengan peta yang diperbarui, seperti yang dijelaskan di [Langkah 4: Menambahkan peta registri kontainer (jika alur kerja Anda menggunakan URI hulu)](#ecr-ptc-registry-map), dan mulai menjalankan Anda terhadap versi itu. Proses yang tidak memberi nama versi menggunakan versi default alur kerja, yang menyimpan peta yang dibuat dengannya, sehingga gagal dengan cara yang sama seperti sebelumnya. Untuk informasi selengkapnya, lihat [Versi alur kerja default](workflows-default-version.md).

## Pemecahan masalah tarik melalui cache
<a name="ecr-ptc-troubleshooting"></a>

Masalah konfigurasi berikut menyebabkan proses gagal saat Anda menggunakan kontainer dari pull through cache. Jika definisi alur kerja Anda menggunakan URI gambar hulu dan proses gagal dengan INVALID\_ECR\_IMAGE\_URI, mulai dengan peta registri, seperti yang dijelaskan di [Langkah 4: Menambahkan peta registri kontainer (jika alur kerja Anda menggunakan URI hulu)](#ecr-ptc-registry-map). Untuk alasan kegagalan menjalankan lainnya, lihat [Jalankan alasan kegagalan](workflows-run-errors.md).

Jalankan **aws ecr** perintah di bagian ini di akun yang sama seperti di [Langkah 5: Memverifikasi konfigurasi cache tarik melalui](#verify-ecr-ptc), atau lulus `--registry-id {{ecr-account-id}}`. Gunakan nama repositori persis seperti **describe-repositories** mengembalikannya: nama repositori cache adalah awalan repositori cache diikuti oleh jalur repositori hulu, yang untuk nama pendek Docker Hub menyertakan `library/` Segmen yang dijelaskan dalam [Langkah 4: Menambahkan peta registri kontainer (jika alur kerja Anda menggunakan URI hulu)](#ecr-ptc-registry-map).

### Menyelesaikan kebijakan registri yang hilang atau tidak lengkap
<a name="ecr-ptc-troubleshoot-registry-policy"></a>

**Gejala**—Jalankan gagal untuk URI gambar dengan salah satu alasan kegagalan berikut:
+ ECR\_REPOSITORY\_TIDAK\_DITEMUKAN — repositori cache tidak ada di registri pribadi Anda.
+ ECR\_IMAGE\_TIDAK\_DITEMUKAN — repositori cache ada, tetapi gambar tidak pernah diimpor ke dalamnya.
+ ECR\_PERMISSION\_ERROR — Amazon ECR menolak akses.

Jika repositori cache hilang, perintah berikut tidak mengembalikan repositori untuk awalan:

```
aws ecr describe-repositories \
     --region {{region}} \
     --query "repositories[?starts_with(repositoryName, '{{ecr-repository-prefix}}/')]"
```

Hasil kosong untuk awalan yang belum ditarik dari mana pun diharapkan dan bukan masalah konfigurasi dengan sendirinya. Ketika proses gagal untuk URI gambar, repositori yang hilang biasanya berarti Amazon ECR tidak dapat membuatnya. Jika repositori ada, konfirmasikan apakah gambar mencapainya:

```
aws ecr describe-images \
     --repository-name {{cache-repository-name}} \
     --image-ids imageTag={{tag}} \
     --region {{region}}
```

Gambar yang dikembalikan berarti tag di-cache. ImageNotFoundException berarti repositori ada tetapi tag itu tidak ada di dalamnya, dan RepositoryNotFoundException berarti bahwa nama repositori salah atau belum ada yang melewati awalan. Lulus `--image-ids`: tanpa itu, perintah melaporkan setiap tag di repositori, sehingga kehadiran tag lain dapat terlihat seperti sukses untuk tag yang Anda butuhkan.

**Menyebabkan**—Kebijakan registri tidak memberikan HealthOmics apa yang dibutuhkan: tidak ada kebijakan, kebijakan kehilangan tindakan, atau `Resource` daftar tidak mencakup awalan cache ini.

**Solusi**Menambahkan atau memperbaiki kebijakan registri seperti yang dijelaskan dalam [Langkah 2: Menyiapkan izin untuk registri hulu](#reg-ecr-ptc), dan konfirmasikan seperti yang dijelaskan dalam [Langkah 5: Memverifikasi konfigurasi cache tarik melalui](#verify-ecr-ptc). Jika kebijakan registri sudah mencakup awalan repositori cache, kebijakan registri tidak menjadi masalah. Untuk ECR\_IMAGE\_TIDAK\_DITEMUKAN, di mana repositori ada tetapi gambar tidak pernah tiba, impor hulu gagal: konfirmasikan kredentif aturan dengan **validate-pull-through-cache-rule**, seperti yang dijelaskan dalam [Langkah 5: Memverifikasi konfigurasi cache tarik melalui](#verify-ecr-ptc). Untuk ECR\_PERMISSION\_ERROR pada repositori yang ada, lanjutkan ke [Menyelesaikan template pembuatan repositori atau kebijakan repositori yang hilang](#ecr-ptc-troubleshoot-template). Kemudian mulai lari lagi.

### Menyelesaikan template pembuatan repositori atau kebijakan repositori yang hilang
<a name="ecr-ptc-troubleshoot-template"></a>

**Gejala**—Repositori cache ada dengan gambar yang diimpor, dan proses masih gagal dengan ECR\_PERMISSION\_ERROR untuk URI gambar.

**Menyebabkan**—Tidak ada template pembuatan repositori yang cocok dengan awalan repositori cache, template tidak termasuk `PULL_THROUGH_CACHE` di `appliedFor`, atau template tidak memiliki kebijakan repositori. Oleh karena itu repositori tidak memiliki kebijakan yang memungkinkan HealthOmics tarik dari itu.

**Solusi**—Buat atau perbarui template seperti yang dijelaskan dalam [Langkah 3: Membuat template repositori](#repo-create-templates-ptc). Karena repositori sudah ada, terapkan juga kebijakan untuk mereka, seperti yang dijelaskan dalam [Memperbarui repositori yang dibuat sebelum template](#ecr-ptc-troubleshoot-template-late).

### Memperbarui repositori yang dibuat sebelum template
<a name="ecr-ptc-troubleshoot-template-late"></a>

**Gejala**—Anda membuat atau mengoreksi template pembuatan repositori, **describe-repository-creation-templates** menunjukkannya sebagai benar, dan proses masih gagal dengan kesalahan akses Amazon ECR untuk gambar yang sama. Konfirmasikan kebijakan yang hilang pada repositori yang terpengaruh:

```
aws ecr get-repository-policy \
     --repository-name {{cache-repository-name}} \
     --region {{region}}
```

 `policyText` Nilai harus diberikan `omics.amazonaws.com` setidaknya tindakan yang diberikan kebijakan repositori template. Jika repositori tidak memiliki kebijakan sama sekali, perintah gagal dengan RepositoryPolicyNotFoundException. Jika gagal dengan RepositoryNotFoundException, nama repositori salah atau repositori belum ada.

**Menyebabkan**—Template hanya berlaku ketika Amazon ECR membuat repositori, jadi repositori yang dibuat sebelum Anda menambahkan template tidak memiliki kebijakan repositori untuk HealthOmics.

**Solusi**—Perbarui repositori yang ada dengan salah satu cara berikut.

**Awas**  
Menghapus repositori juga menghapus setiap gambar yang di-cache di dalamnya, dan Anda tidak dapat membatalkannya. Jangan menghapus repositori saat proses sedang menggunakannya.
+ Tetapkan kebijakan pada setiap repositori yang ada secara langsung. Simpan kebijakan repositori template ke file, lalu jalankan perintah berikut untuk setiap repositori yang terpengaruh:

  ```
  aws ecr set-repository-policy \
       --repository-name {{cache-repository-name}} \
       --policy-text file://{{repository-policy-file}}.json \
       --region {{region}}
  ```
+ Hapus setiap repositori yang terpengaruh. Tarik melalui cache membuatnya kembali dari template saat tugas menarik gambar berikutnya, sehingga gambar yang di-cache tidak tersedia sampai penarikan itu selesai.

  ```
  aws ecr delete-repository \
       --repository-name {{cache-repository-name}} \
       --force \
       --region {{region}}
  ```

### Mengubah aturan cache saat proses aktif
<a name="ecr-ptc-troubleshoot-rule-change"></a>

**Gejala**—Setelah Anda mengubah atau membuat ulang aturan pull through cache, proses yang sudah menggunakan repositori yang terpengaruh dapat gagal dengan TIDAK DAPAT\_MEMULAI\_KONTAINER\_ERROR atau GAGAL\_VERIFIKASI\_GAMBAR, atau dapat menyelesaikan menggunakan gambar yang tidak Anda harapkan.

**Menyebabkan**—Awalan repositori cache sekarang diselesaikan ke repositori hulu yang berbeda, sementara proses sudah ditarik dari repositori yang dibuat oleh aturan lama.

**Solusi**—Tunggu proses aktif selesai sebelum Anda mengubah aturan, seperti catatan di [Langkah 1: Membuat aturan pull through cache](#create-ecr-ptc) menjelaskan. Untuk mengonfirmasi gambar mana yang sebenarnya digunakan tugas, periksa `imageDetails` di **get-run-task** output, seperti yang dijelaskan dalam [Langkah 5: Memverifikasi konfigurasi cache tarik melalui](#verify-ecr-ptc). Jika proses menggunakan gambar cache basi, hapus gambar itu dari repositori cache sehingga tarikan berikutnya menyegarkannya dari registri hulu.