

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

# Ketentuan tugas
<a name="job_definitions"></a>

AWS Batch definisi pekerjaan menentukan bagaimana pekerjaan harus dijalankan. Meskipun setiap tugas harus mereferensikan ketentuan tugas, banyak parameter yang ditentukan dalam ketentuan tugas dapat diganti pada saat waktu aktif. 

Beberapa atribut yang ditentukan dalam ketentuan tugas meliputi:
+ Gambar Docker mana yang akan digunakan dengan wadah dalam pekerjaan Anda.
+ Berapa banyak v CPUs dan berapa banyak memori yang digunakan dengan wadah.
+ Perintah wadah harus dijalankan ketika dimulai.
+ Variabel lingkungan apa (jika ada) yang harus diteruskan ke wadah ketika dimulai.
+ Setiap volume data yang harus digunakan dengan wadah.
+ Apa (jika ada) peran IAM yang harus digunakan pekerjaan Anda untuk AWS izin.

**Topics**
+ [Buat definisi pekerjaan simpul tunggal](create-job-definition.md)
+ [Buat definisi pekerjaan paralel multi-node](create-multi-node-job-def.md)
+ [Template definisi Job yang menggunakan ContainerProperties](job-definition-template.md)
+ [Buat definisi pekerjaan menggunakan EcsProperties](multi-container-jobs.md)
+ [Gunakan driver log awslogs](using_awslogs.md)
+ [Tentukan data sensitif](specifying-sensitive-data.md)
+ [Otentikasi registri pribadi untuk pekerjaan](private-registry.md)
+ [Volume Amazon EFS](efs-volumes.md)
+ [Contoh definisi Job](example-job-definitions.md)

# Buat definisi pekerjaan simpul tunggal
<a name="create-job-definition"></a>

Sebelum Anda dapat menjalankan pekerjaan di AWS Batch, Anda harus membuat definisi pekerjaan. Proses ini sedikit berbeda antara single-node dan multi-node parallel jobs. Topik ini mencakup secara khusus cara membuat definisi pekerjaan untuk AWS Batch pekerjaan yang bukan pekerjaan paralel multi-node (juga dikenal sebagai *penjadwalan geng*).

Anda dapat membuat definisi pekerjaan paralel multi-node di sumber daya Amazon Elastic Container Service. Lihat informasi yang lebih lengkap di [Buat definisi pekerjaan paralel multi-node](create-multi-node-job-def.md). 

**Topics**
+ [Buat definisi pekerjaan simpul tunggal di sumber daya Amazon EC2](create-job-definition-EC2.md)
+ [Buat definisi pekerjaan simpul tunggal pada sumber daya Fargate](create-job-definition-Fargate.md)
+ [Buat definisi pekerjaan simpul tunggal di sumber daya Amazon EKS](create-job-definition-eks.md)
+ [Buat definisi pekerjaan simpul tunggal dengan beberapa kontainer di sumber daya Amazon EC2](create-job-definition-single-node-multi-container.md)

# Buat definisi pekerjaan simpul tunggal di sumber daya Amazon EC2
<a name="create-job-definition-EC2"></a>

Selesaikan langkah-langkah berikut untuk membuat definisi pekerjaan simpul tunggal di sumber daya Amazon Elastic Compute Cloud (Amazon EC2).

**Untuk membuat definisi pekerjaan baru di sumber daya Amazon EC2:**

1. Buka AWS Batch konsol di [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Dari bilah navigasi, pilih yang Wilayah AWS akan digunakan.

1. Di panel navigasi kiri, pilih **Definisi Job**.

1. Pilih **Buat**.

1. Untuk **jenis Orkestrasi, pilih** Amazon **Elastic Compute Cloud (Amazon** EC2).

1. Untuk **konfigurasi platform EC2**, matikan **Aktifkan pemrosesan paralel multi-node**.

1. Untuk **Name** (Name), masukkan nama yang unik untuk ketentuan tugas Anda. Nama dapat memiliki panjang hingga 128 karakter. Nama dapat memuat huruf besar dan huruf kecil, angka, tanda hubung (-), dan garis bawah (\$1).

1. (Opsional) Untuk **batas waktu Eksekusi**, masukkan nilai batas waktu (dalam detik). Batas waktu eksekusi adalah lamanya waktu sebelum pekerjaan yang belum selesai dihentikan. Jika upaya melebihi durasi batas waktu, upaya dihentikan dan dipindahkan ke `FAILED` status. Untuk informasi selengkapnya, lihat [Batas waktu Job](job_timeouts.md). Nilai minimum adalah 60 detik.

1. (Opsional) Aktifkan **Prioritas penjadwalan**. Masukkan nilai prioritas penjadwalan antara 0 dan 100. Nilai yang lebih tinggi diberikan prioritas yang lebih tinggi.

1. (Opsional) Untuk **upaya Job**, masukkan berapa kali AWS Batch upaya untuk memindahkan pekerjaan ke `RUNNABLE` status. Masukkan angka antara 1 dan 10.

1. (Opsional) Untuk **kondisi strategi Coba lagi**, pilih **Tambahkan evaluasi saat keluar**. Masukkan setidaknya satu nilai parameter dan kemudian pilih **Action**. Untuk setiap set kondisi, **Tindakan** harus diatur ke **Coba Ulang** atau **Keluar**. Tindakan ini berarti sebagai berikut:
   + **Coba lagi — AWS Batch coba** lagi sampai jumlah upaya pekerjaan yang Anda tentukan tercapai.
   + **Keluar** — AWS Batch berhenti mencoba kembali pekerjaan.
**penting**  
Jika Anda memilih **Tambahkan evaluasi saat keluar**, Anda harus mengonfigurasi setidaknya satu parameter dan memilih **Tindakan** atau memilih **Hapus evaluasi saat keluar**.

1. (Opsional) Perluas **Tag** dan kemudian pilih **Tambahkan tag** untuk menambahkan tag ke sumber daya. Masukkan kunci dan nilai opsional, lalu pilih **Tambah tag**.

1. (Opsional) Aktifkan **Propagate tag** untuk menyebarkan tag dari definisi pekerjaan dan pekerjaan ke tugas Amazon ECS.

1. Pilih **Halaman berikutnya**.

1. Di bagian **Konfigurasi kontainer**:

   1. Untuk **Gambar**, pilih Docker gambar yang akan digunakan untuk pekerjaan Anda. Secara default, gambar dalam Docker Hub registri tersedia. Anda juga dapat menentukan repositori lainnya dengan `repository-url/image:tag`. Namanya bisa mencapai 225 karakter panjangnya. Ini dapat berisi huruf besar dan kecil, angka, tanda hubung (-), garis bawah (\$1), titik dua (:), garis miring maju (/), dan tanda angka (\$1). Parameter ini sesuai dengan `Image` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan `IMAGE` parameter [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).
**catatan**  
Arsitektur gambar Docker harus sesuai dengan arsitektur prosesor sumber daya komputasi tempatnya dijadwalkan. Sebagai contoh, gambar Docker berbasis ARM hanya dapat berjalan pada sumber daya komputasi berbasis ARM.
      + Gambar di Amazon ECR Repositori Publik menggunakan konvensi lengkap `registry/repository[:tag]` atau `registry/repository[@digest]` penamaan (misalnya,). `public.ecr.aws/registry_alias/my-web-app:latest`
      + Gambar di repositori Amazon ECR menggunakan konvensi `registry/repository[:tag]` penamaan lengkap (misalnya,). `aws_account_id.dkr.ecr.region.amazonaws.com` `/my-web-app:latest`
      + Gambar di repositori resmi Docker Hub menggunakan satu nama (misalnya, `ubuntu` atau`mongo`).
      + Gambar di repositori lain di Docker Hub memenuhi syarat dengan nama organisasi (misalnya,`amazon/amazon-ecs-agent`).
      + Gambar di repositori online lainnya memenuhi syarat lebih lanjut berdasarkan nama domain (misalnya, `quay.io/assemblyline/ubuntu`).

   1. Untuk **Command**, masukkan perintah ke dalam bidang sebagai setara dengan array string **JSON** mereka.

      Parameter ini sesuai dengan `Cmd` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan parameter `COMMAND` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Untuk informasi selengkapnya tentang Docker `CMD` parameter, lihat [https://docs.docker.com/engine/referensi/builder/ \$1cmd](https://docs.docker.com/engine/reference/builder/#cmd).
**catatan**  
Anda dapat menggunakan nilai dan placeholder default untuk substitusi parameter dalam perintah Anda. Untuk informasi selengkapnya, lihat [Parameter](job_definition_parameters.md#parameters).

   1. (Opsional) Untuk **peran Eksekusi**, tentukan peran IAM yang memberikan izin kepada agen penampung Amazon ECS untuk melakukan panggilan AWS API atas nama Anda. Fitur ini menggunakan peran Amazon ECS IAM untuk tugas. Untuk informasi selengkapnya, lihat [peran IAM eksekusi tugas Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) di Panduan *Pengembang Layanan Kontainer Elastis Amazon*. 

   1. Untuk **konfigurasi Job Role**, pilih peran IAM yang memiliki izin untuk. AWS APIs Fitur ini menggunakan peran Amazon ECS IAM untuk tugas. Untuk informasi lebih lanjut, lihat [Peran IAM untuk Tugas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) dalam *Panduan Developer Amazon Elastic Container Service*.
**catatan**  
Hanya peran yang memiliki hubungan kepercayaan **Amazon Elastic Container Service Task Role** (Peran Tugas Amazon Elastic Container Service) yang ditampilkan di sini. Untuk informasi selengkapnya tentang membuat peran IAM untuk AWS Batch pekerjaan Anda, lihat [Membuat Peran dan Kebijakan IAM untuk Tugas Anda](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#create_task_iam_policy_and_role) di Panduan *Pengembang Layanan Kontainer Elastis Amazon*.

1. **Untuk **Parameter**, pilih **Tambahkan parameter** untuk menambahkan placeholder substitusi parameter sebagai pasangan **Kunci dan Nilai** opsional.**

1. Di bagian **konfigurasi Lingkungan**:

   1. Untuk **v CPUs**, masukkan jumlah v yang CPUs akan dicadangkan untuk wadah. Parameter ini sesuai dengan `CpuShares` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--cpu-shares` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Setiap vCPU setara dengan 1.024 bagian CPU. Anda harus menentukan setidaknya satu vCPU.

   1. Untuk **Memori**, masukkan batas memori yang tersedia untuk wadah. Jika penampung Anda mencoba melebihi jumlah memori yang Anda tentukan di sini, penampung akan dihentikan. Parameter ini sesuai dengan `Memory` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--memory` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Anda harus menentukan sedikitnya 4 MiB memori untuk sebuah tugas.
**catatan**  
Untuk memaksimalkan pemanfaatan sumber daya Anda, prioritaskan memori untuk pekerjaan dari jenis instans tertentu. Untuk informasi selengkapnya, lihat [Menghitung manajemen memori sumber daya](memory-management.md).

   1. Untuk **Jumlah GPUs**, pilih jumlah yang akan GPUs dipesan untuk wadah.

   1. (Opsional) Untuk **variabel Lingkungan**, pilih **Tambahkan variabel lingkungan** untuk menambahkan variabel lingkungan sebagai pasangan nama-nilai. Variabel-variabel ini diteruskan ke wadah.

   1. (Opsional) Untuk **Rahasia**, pilih **Tambahkan rahasia** untuk menambahkan rahasia sebagai pasangan nama-nilai. Rahasia-rahasia ini terungkap dalam wadah. [Untuk informasi lebih lanjut, lihat:SecretOptionsLogConfiguration.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

1. Pilih **Halaman berikutnya**.

1. Di bagian **konfigurasi Linux**:

   1. Untuk **User** (Pengguna), masukkan nama pengguna untuk digunakan di dalam kontainer. Parameter ini sesuai dengan `User` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--user` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).

   1. (Opsional) Untuk memberikan izin penampung pekerjaan yang lebih tinggi pada instance host (mirip dengan `root` pengguna), seret slider **Privileged** ke kanan. Parameter ini memetakan ke `Privileged` di bagian [Membuat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) dari [API Jarak Jauh Docker](https://docs.docker.com/engine/api/v1.38/) dan pilihan `--privileged` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).

   1. (Opsional) **Aktifkan proses init Aktifkan** untuk menjalankan `init` proses di dalam wadah. Proses ini meneruskan sinyal dan menuai proses.

1. (Opsional) Di bagian **konfigurasi Sistem File:**

   1. **Aktifkan Aktifkan sistem file baca saja** untuk menghapus akses tulis ke volume.

   1. Untuk **ukuran memori bersama**, masukkan ukuran (dalam MiB) volume. `/dev/shm`

   1. Untuk **ukuran swap Max**, masukkan jumlah total memori swap (dalam MiB) yang dapat digunakan wadah.

   1. Untuk **Swappiness** masukkan nilai antara 0 dan 100 untuk menunjukkan perilaku swappiness wadah. Jika Anda tidak menentukan nilai dan pertukaran diaktifkan, nilai defaultnya menjadi 60. [Untuk informasi lebih lanjut, lihat:swappinessLinuxParameters.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LinuxParameters.html#Batch-Type-LinuxParameters-swappiness)

   1. (Opsional) Perluas **Additional configuration** (Konfigurasi tambahan).

   1. (Opsional) Untuk **Tmpfs**, pilih **Tambahkan tmpfs** untuk menambahkan mount. `tmpfs`

   1. (Opsional) Untuk **Perangkat**, pilih **Tambah perangkat** untuk menambahkan perangkat:

      1. Untuk **Container path** (Jalur kontainer), tentukan jalur dalam instans kontainer untuk mengungkap perangkat yang dipetakan ke instans host. Jika Anda mengosongkan ini, jalur host digunakan dalam wadah.

      1. Untuk **Host path** (Jalur host), tentukan jalur perangkat dalam instans host.

      1. Untuk **Izin**, pilih satu atau beberapa izin untuk diterapkan ke perangkat. Izin yang tersedia adalah **BACA**, **TULIS**, dan **MKNOD**.

   1. (Opsional) Untuk **konfigurasi Volume**, pilih **Tambahkan volume** untuk membuat daftar volume yang akan diteruskan ke wadah. Masukkan **Nama** dan **jalur Sumber** untuk volume dan kemudian pilih **Tambahkan volume**. Anda juga dapat memilih untuk **mengaktifkan Aktifkan EFS**.

   1. (Opsional) Untuk **titik Mount**, pilih **konfigurasi Tambahkan titik** pemasangan untuk menambahkan titik pemasangan untuk volume data. Anda harus menentukan volume sumber dan jalur kontainer. Titik-titik pemasangan ini diteruskan ke instance Docker daemon on a container. Anda juga dapat memilih untuk membuat volume **Baca saja**.

   1. (Opsional) Untuk **konfigurasi Ulimits**, pilih **Tambahkan ulimit** untuk menambahkan `ulimits` nilai untuk wadah. Masukkan nilai **Name**, **Soft limit**, dan **Hard limit**, lalu pilih **Add ulimit**.

1. Di bagian **Properti tugas**:

   1. Untuk **peran Eksekusi - bersyarat**, pilih peran yang memungkinkan agen Amazon ECS melakukan panggilan AWS API atas nama Anda. Untuk informasi selengkapnya tentang membuat **peran Eksekusi**, lihat[Tutorial: Buat peran eksekusi IAM](create-execution-role.md).

   1. Pilih **Aktifkan perintah eksekusi ECS**, untuk mengaktifkan akses ke shell kontainer Amazon ECS secara langsung dan melewati OS host. Anda harus memilih **peran Tugas**.
**penting**  
Perintah **eksekusi ECS** mengharuskan sistem file dapat ditulis. 

   1. Untuk **peran Task**, pilih peran Amazon ECS Identity and Access Management (IAM) untuk mengizinkan container melakukan panggilan AWS API atas nama Anda. Untuk informasi selengkapnya, lihat [peran IAM tugas Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) dalam Panduan *Pengembang Layanan Kontainer Elastis Amazon*.

1. (Opsional) Di bagian **konfigurasi Logging**:

   1. Untuk **driver Log**, pilih driver log yang akan digunakan. [Untuk informasi lebih lanjut tentang driver log yang tersedia, LogConfiguration lihat:LogDriver.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-logDriver)
**catatan**  
Secara default, driver log `awslogs` akan digunakan.

   1. Untuk **Opsi**, pilih **Tambahkan opsi** untuk menambahkan opsi. Masukkan pasangan nama-nilai, lalu pilih **Tambah** opsi.

   1. Untuk **Rahasia**, pilih **Tambahkan rahasia**. Masukkan pasangan nama-nilai dan kemudian pilih **Tambahkan rahasia** untuk menambahkan rahasia.
**Tip**  
[Untuk informasi lebih lanjut, lihat:SecretOptionsLogConfiguration.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

1. Pilih **Halaman berikutnya**.

1. Untuk **tinjauan definisi Job**, tinjau langkah-langkah konfigurasi. Jika Anda perlu melakukan perubahan, pilih **Edit**. Setelah selesai, pilih **Buat definisi pekerjaan**.

# Buat definisi pekerjaan simpul tunggal pada sumber daya Fargate
<a name="create-job-definition-Fargate"></a>

Selesaikan langkah-langkah berikut untuk membuat definisi pekerjaan simpul tunggal pada AWS Fargate sumber daya.

**Untuk membuat definisi pekerjaan baru pada sumber daya Fargate:**

1. Buka AWS Batch konsol di [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Dari bilah navigasi atas, pilih yang Wilayah AWS akan digunakan.

1. Di panel navigasi kiri, pilih **Definisi Job**.

1. Pilih **Buat**.

1. **Untuk **tipe Orkestrasi, pilih Fargate**.** Untuk informasi selengkapnya, lihat [Lingkungan komputasi Fargate](fargate.md).

1. Untuk **Name** (Name), masukkan nama yang unik untuk ketentuan tugas Anda. Nama dapat memiliki panjang hingga 128 karakter. Nama dapat memuat huruf besar dan huruf kecil, angka, tanda hubung (-), dan garis bawah (\$1).

1. (Opsional) Untuk **batas waktu Eksekusi**, masukkan nilai batas waktu (dalam detik). Batas waktu eksekusi adalah lamanya waktu sebelum pekerjaan yang belum selesai dihentikan. Jika upaya melebihi durasi batas waktu, upaya dihentikan dan dipindahkan ke `FAILED` status. Untuk informasi selengkapnya, lihat [Batas waktu Job](job_timeouts.md). Nilai minimum adalah 60 detik.

1. (Opsional) Aktifkan **Prioritas penjadwalan**. Masukkan nilai prioritas penjadwalan antara 0 dan 100. Nilai yang lebih tinggi diberikan prioritas yang lebih tinggi daripada nilai yang lebih rendah.

1. (Opsional) Perluas **Tag**, lalu pilih **Tambahkan tag** untuk menambahkan tag ke sumber daya. Aktifkan **Menyebarkan tag** untuk menyebarkan tag dari definisi pekerjaan dan pekerjaan.

1. Di bagian **konfigurasi platform Fargate**:

   1. Untuk **platform Runtime**, pilih arsitektur lingkungan komputasi.

   1. Untuk **Keluarga Sistem Operasi**, pilih sistem operasi untuk lingkungan komputasi.

   1. Untuk **Arsitektur CPU**, pilih arsitektur vCPU.

   1. Untuk **versi platform Fargate, masukkan `LATEST` atau versi** lingkungan runtime tertentu.

   1. (Opsional) **Aktifkan Tetapkan IP publik** untuk menetapkan alamat IP publik ke antarmuka jaringan pekerjaan Fargate. Untuk tugas yang berjalan di subnet privat untuk mengirim lalu lintas keluar ke internet, subnet privat memerlukan gateway NAT yang dilampirkan untuk merutekan permintaan ke internet. Anda mungkin perlu melakukan hal ini agar dapat menarik gambar kontainer. Untuk informasi lebih lanjut, lihat [Jaringan tugas Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) dalam *Panduan Developer Amazon Elastic Container Service*.

   1. (Opsional) Untuk **penyimpanan Ephemeral**, masukkan jumlah penyimpanan fana untuk dialokasikan ke tugas. Jumlah penyimpanan fana harus antara 21 GiB dan 200 GiB. Secara default, 20 GiB penyimpanan sementara dialokasikan jika Anda tidak memasukkan nilai.
**catatan**  
Penyimpanan sementara membutuhkan platform Fargate versi 1.4 atau yang lebih baru.

   1. Untuk **peran Eksekusi**, tentukan peran IAM yang memberikan izin kepada container Amazon ECS dan agen Fargate untuk melakukan panggilan AWS API atas nama Anda. Fitur ini menggunakan IAM role Amazon ECS untuk fungsionalitas tugas. Untuk informasi selengkapnya termasuk prasyarat konfigurasi, lihat [peran IAM eksekusi tugas Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) di Panduan Pengembang Layanan Kontainer *Elastis Amazon*. 

   1. Untuk **upaya Job**, masukkan berapa kali AWS Batch upaya untuk memindahkan pekerjaan ke `RUNNABLE` status. Masukkan angka antara 1 dan 10.

   1. Opsional) Untuk **kondisi strategi Coba lagi**, pilih **Tambahkan evaluasi saat keluar**. Masukkan setidaknya satu nilai parameter dan kemudian pilih **Action**. Untuk setiap set kondisi, **Tindakan** harus diatur ke **Coba Ulang** atau **Keluar**. Tindakan ini berarti sebagai berikut:
      + **Coba lagi — AWS Batch coba** lagi sampai jumlah upaya pekerjaan yang Anda tentukan tercapai.
      + **Keluar** — AWS Batch berhenti mencoba kembali pekerjaan.
**penting**  
Jika Anda memilih **Tambahkan evaluasi saat keluar**, Anda harus mengonfigurasi setidaknya satu parameter dan memilih **Tindakan** atau memilih **Hapus evaluasi saat keluar**.

1. Pilih **Halaman berikutnya**.

1. Di bagian **Konfigurasi kontainer**:

   1. Untuk **Image** (Citra), pilih gambar Docker yang akan digunakan untuk tugas Anda. Secara default, gambar di registri Docker Hub akan tersedia. Anda juga dapat menentukan repositori lainnya dengan `repository-url/image:tag`. Namanya bisa mencapai 225 karakter panjangnya. Parameter dapat berisi huruf besar dan huruf kecil, angka, tanda hubung (-), garis bawah (\$1), titik dua (:), titik (.), garis miring (/), dan tanda pagar (\$1). Parameter ini sesuai dengan `Image` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan `IMAGE` parameter [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).
**catatan**  
Arsitektur gambar Docker harus sesuai dengan arsitektur prosesor sumber daya komputasi tempatnya dijadwalkan. Sebagai contoh, gambar Docker berbasis ARM hanya dapat berjalan pada sumber daya komputasi berbasis ARM.
      + Gambar di Amazon ECR Repositori Publik menggunakan konvensi lengkap `registry/repository[:tag]` atau `registry/repository[@digest]` penamaan (misalnya,). `public.ecr.aws/registry_alias/my-web-app:latest`
      + Gambar di repositori Amazon ECR menggunakan konvensi `registry/repository[:tag]` penamaan lengkap (misalnya,). `aws_account_id.dkr.ecr.region.amazonaws.com` `/my-web-app:latest`
      + Gambar di repositori resmi Docker Hub menggunakan satu nama (misalnya, `ubuntu` atau`mongo`).
      + Gambar di repositori lain di Docker Hub memenuhi syarat dengan nama organisasi (misalnya,`amazon/amazon-ecs-agent`).
      + Gambar di repositori online lainnya memenuhi syarat lebih lanjut berdasarkan nama domain (misalnya, `quay.io/assemblyline/ubuntu`).

   1. Untuk **Command**, masukkan perintah ke dalam bidang sebagai setara dengan array string JSON mereka.

      Parameter ini sesuai dengan `Cmd` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan parameter `COMMAND` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Untuk informasi selengkapnya tentang Docker `CMD` parameter, lihat [https://docs.docker.com/engine/referensi/builder/ \$1cmd](https://docs.docker.com/engine/reference/builder/#cmd).
**catatan**  
Anda dapat menggunakan nilai dan placeholder default untuk substitusi parameter dalam perintah Anda. Untuk informasi selengkapnya, lihat [Parameter](job_definition_parameters.md#parameters).

   1. (Opsional) Tambahkan parameter ke definisi pekerjaan sebagai pemetaan nama-nilai untuk mengganti default definisi pekerjaan. Untuk menambahkan parameter:

      1. Untuk **Parameter**, pilih **Tambahkan parameter**, masukkan pasangan nama-nilai, lalu pilih **Tambah** parameter.
**penting**  
Jika Anda memilih **Tambah parameter**, Anda harus mengkonfigurasi setidaknya satu parameter atau memilih **Hapus parameter**

   1. Di bagian **konfigurasi Lingkungan**:

      

      1. Untuk **konfigurasi peran Job**, pilih peran IAM yang memiliki izin untuk. AWS APIs Fitur ini menggunakan IAM role Amazon ECS untuk fungsionalitas tugas. Untuk informasi lebih lanjut, lihat [IAM Role untuk Tugas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) dalam *Panduan Developer Amazon Elastic Container Service*.
**catatan**  
Hanya peran yang memiliki hubungan kepercayaan **Amazon Elastic Container Service Task Role** (Peran Tugas Amazon Elastic Container Service) yang ditampilkan di sini. Untuk informasi selengkapnya tentang cara membuat peran IAM untuk AWS Batch pekerjaan Anda, lihat [Membuat Peran dan Kebijakan IAM untuk Tugas Anda](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#create_task_iam_policy_and_role) di Panduan *Pengembang Layanan Amazon Elastic Container*.

      1. Untuk **v CPUs**, masukkan jumlah v yang CPUs akan dicadangkan untuk wadah. Parameter ini sesuai dengan `CpuShares` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--cpu-shares` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Setiap vCPU setara dengan 1.024 bagian CPU. Anda harus menentukan setidaknya satu vCPU.

      1. Untuk **Memori**, masukkan batas memori yang tersedia untuk wadah. Jika kontainer Anda mencoba untuk melebihi memori yang ditentukan di sini, kontainer akan dihentikan. Parameter ini sesuai dengan `Memory` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--memory` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Anda harus menentukan sedikitnya 4 MiB memori untuk sebuah tugas.

         Jika Anda menggunakan GuardDuty Runtime Monitoring, ada sedikit overhead memori untuk agen GuardDuty keamanan. Oleh karena itu batas memori harus mencakup ukuran agen GuardDuty keamanan. Untuk informasi tentang batas memori agen GuardDuty keamanan, lihat [batas CPU dan memori](https://docs.aws.amazon.com/guardduty/latest/ug/prereq-runtime-monitoring-ecs-support.html#ecs-runtime-agent-cpu-memory-limits) di *Panduan GuardDuty Pengguna*. Untuk informasi tentang praktik terbaik, lihat [Bagaimana cara memperbaiki kesalahan memori pada tugas Fargate setelah mengaktifkan Runtime Monitoring](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-guard-duty-troubleshooting.html#memory-error) di Panduan Pengembang *Amazon* ECS.
**catatan**  
Untuk memaksimalkan pemanfaatan sumber daya Anda, prioritaskan memori untuk pekerjaan dari jenis instans tertentu. Untuk informasi selengkapnya, lihat [Menghitung manajemen memori sumber daya](memory-management.md).

   1. (Opsional) Untuk **variabel Lingkungan**, pilih **Tambahkan variabel lingkungan** untuk menambahkan variabel lingkungan sebagai pasangan nama-nilai. Variabel-variabel ini diteruskan ke wadah.

   1. (Opsional) Untuk **Rahasia**, pilih **Tambahkan rahasia** untuk menambahkan rahasia sebagai pasangan nama-nilai. Rahasia-rahasia ini terungkap dalam wadah. [Untuk informasi lebih lanjut, lihat:SecretOptionsLogConfiguration.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

   1. Pilih **Halaman berikutnya**.

1. (Opsional) Di bagian **konfigurasi Linux**:

   1. Untuk **Pengguna**, masukkan nama pengguna untuk digunakan di dalam wadah.

   1. **Aktifkan proses Aktifkan init** untuk menjalankan proses init di dalam wadah. Proses ini meneruskan sinyal dan menuai proses.

   1. **Aktifkan Aktifkan sistem file baca saja** untuk menghapus akses tulis ke volume.

   1. (Opsional) Perluas **Additional configuration** (Konfigurasi tambahan).

   1. Untuk **konfigurasi titik Mount**, pilih **konfigurasi Tambahkan titik pemasangan** untuk menambahkan titik pemasangan untuk volume data. Anda harus menentukan volume sumber dan jalur kontainer. Titik-titik pemasangan ini diteruskan ke instance Docker daemon on a container.

   1. Untuk **konfigurasi Volume**, pilih **Tambahkan volume** untuk membuat daftar volume yang akan diteruskan ke wadah. Masukkan **jalur **Nama** dan Sumber** untuk volume, lalu pilih **Tambahkan volume**. 

   1. Di bagian **Properti tugas**:

      1. Untuk **peran Eksekusi - bersyarat**, pilih peran yang memungkinkan agen Amazon ECS melakukan panggilan AWS API atas nama Anda. Untuk informasi selengkapnya tentang membuat **peran Eksekusi**, lihat[Tutorial: Buat peran eksekusi IAM](create-execution-role.md).

      1. Pilih **Aktifkan perintah eksekusi ECS**, untuk mengaktifkan akses ke shell kontainer Amazon ECS secara langsung dan melewati OS host. Anda harus memilih **peran Tugas**.
**penting**  
Perintah **eksekusi ECS** mengharuskan sistem file dapat ditulis. 

      1. Untuk **peran Task**, pilih peran Amazon ECS Identity and Access Management (IAM) untuk mengizinkan container melakukan panggilan AWS API atas nama Anda. Untuk informasi selengkapnya, lihat [peran IAM tugas Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) dalam Panduan *Pengembang Layanan Kontainer Elastis Amazon*.

   1. Di bagian **konfigurasi Logging**:

      1. (Opsional) Untuk **driver Log**, pilih driver log yang akan digunakan. [Untuk informasi lebih lanjut tentang driver log yang tersedia, LogConfiguration lihat:LogDriver.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-logDriver)
**catatan**  
Secara default, driver log `awslogs` akan digunakan.

      1. (Opsional) Untuk **Opsi**, pilih **Tambahkan opsi** untuk menambahkan opsi. Masukkan pasangan nama-nilai, lalu pilih **Tambah** opsi.

      1. (Opsional) Untuk **Rahasia**, pilih **Tambahkan rahasia** untuk menambahkan rahasia. Kemudian, masukkan pasangan nama-nilai, dan pilih **Tambahkan** rahasia.
**Tip**  
[Untuk informasi lebih lanjut, lihat:SecretOptionsLogConfiguration.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

1. Pilih **Halaman berikutnya**.

1. Untuk **tinjauan definisi Job**, tinjau langkah-langkah konfigurasi. Jika Anda perlu melakukan perubahan, pilih **Edit**. Setelah selesai, pilih **Buat definisi pekerjaan**.

# Buat definisi pekerjaan simpul tunggal di sumber daya Amazon EKS
<a name="create-job-definition-eks"></a>

Selesaikan langkah-langkah berikut untuk membuat definisi pekerjaan simpul tunggal di Amazon Elastic Kubernetes Service (Amazon EKS).

**Untuk membuat definisi pekerjaan baru di sumber daya Amazon EKS:**

1. Buka AWS Batch konsol di [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Dari bilah navigasi atas, pilih yang Wilayah AWS akan digunakan.

1. Di panel navigasi kiri, pilih **Definisi Job**.

1. Pilih **Buat**.

1. Untuk **tipe Orkestrasi**, pilih **Elastic Kubernetes** Service (EKS).

1. Untuk **Name** (Name), masukkan nama yang unik untuk ketentuan tugas Anda. Nama dapat memiliki panjang hingga 128 karakter. Nama dapat memuat huruf besar dan huruf kecil, angka, tanda hubung (-), dan garis bawah (\$1).

1. (Opsional) Untuk **batas waktu Eksekusi**, masukkan nilai batas waktu (dalam detik). Batas waktu eksekusi adalah lamanya waktu sebelum pekerjaan yang belum selesai dihentikan. Jika upaya melebihi durasi batas waktu, upaya dihentikan dan dipindahkan ke `FAILED` status. Untuk informasi selengkapnya, lihat [Batas waktu Job](job_timeouts.md). Nilai minimum adalah 60 detik.

1. (Opsional) Aktifkan **Prioritas penjadwalan**. Masukkan nilai prioritas penjadwalan antara 0 dan 100. Nilai yang lebih tinggi diberikan prioritas yang lebih tinggi daripada nilai yang lebih rendah.

1. (Opsional) Perluas **Tag**, lalu pilih **Tambahkan tag** untuk menambahkan tag ke sumber daya.

1. Pilih **Halaman berikutnya**.

1. Di bagian **podproperti EKS**:

   1. Untuk **nama akun Layanan**, masukkan akun yang memberikan identitas untuk proses yang berjalan di akunpod.

   1. **Hidupkan jaringan Host** untuk menggunakan model Kubernetes pod jaringan dan buka port mendengarkan untuk koneksi masuk. Matikan pengaturan ini hanya untuk komunikasi keluar.

   1. Untuk **kebijakan DNS**, pilih salah satu dari berikut ini:
      + **Tidak ada nilai (null)** — pod Mengabaikan pengaturan DNS dari lingkungan. Kubernetes
      + **Default** – pod mewarisi konfigurasi penyelesaian nama dari simpul tempatnya berjalan.
**catatan**  
Jika kebijakan DNS tidak ditentukan, **Default** bukan kebijakan DNS default. Sebaliknya, **ClusterFirst**digunakan.
      + **ClusterFirst**— Setiap kueri DNS yang tidak cocok dengan akhiran domain cluster yang dikonfigurasi diteruskan ke server nama hulu yang diwarisi dari node. 
      + **ClusterFirstWithHostNet**— Gunakan jika **jaringan Host** dihidupkan.

   1. (Opsional) Untuk **Volume**, pilih **Tambahkan volume**, lalu:

      1. Tambahkan **Nama** untuk volume Anda.

      1. (Opsional) Tambahkan **jalur Host** untuk direktori di host. 

      1. (Opsional) Tambahkan **batas **Medium** dan Size** untuk mengkonfigurasi [Kubernetes](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir) emptyDir.

      1. (Opsional) Berikan **nama Rahasia** untuk pod dan apakah rahasianya **Opsional**.

      1. **(Opsional) Tentukan **nama Klaim** untuk melampirkan [Klaim Volume Persisten](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) Kubernetes ke pod, dan apakah itu Read only.**

   1. (Opsional) Untuk **label Pod**, pilih **Tambahkan label pod**, lalu masukkan pasangan nama-nilai. 
**penting**  
Awalan untuk label pod tidak dapat berisi`kubernetes.io/`,`k8s.io/`, atau`batch.amazonaws.com/`.

   1. (Opsional) Untuk **anotasi Pod**, pilih **Tambahkan anotasi**, lalu masukkan pasangan nama-nilai. 
**penting**  
Awalan untuk anotasi pod tidak dapat berisi`kubernetes.io/`,`k8s.io/`, atau. `batch.amazonaws.com/`

   1. Pilih **Halaman berikutnya**.

   1. Di bagian **Konfigurasi kontainer**:

      1. Untuk **Nama**, masukkan nama unik untuk wadah. Nama harus dimulai dengan huruf atau angka, dan panjangnya bisa mencapai 63 karakter. Ini dapat berisi huruf besar dan kecil, angka, dan tanda hubung (-).

      1. Untuk **Gambar**, pilih Docker gambar yang akan digunakan untuk pekerjaan Anda. Secara default, gambar di registri Docker Hub akan tersedia. Anda juga dapat menentukan repositori lainnya dengan `repository-url/image:tag`. Nama dapat memuat hingga 255 karakter. Parameter dapat berisi huruf besar dan huruf kecil, angka, tanda hubung (-), garis bawah (\$1), titik dua (:), titik (.), garis miring (/), dan tanda pagar (\$1). Parameter ini dipetakan ke `Image` bagian [Create a container](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) dari [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan `IMAGE` parameter [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/)
**catatan**  
Arsitektur gambar Docker harus sesuai dengan arsitektur prosesor sumber daya komputasi yang terjadwal untuknya. Sebagai contoh, gambar Docker berbasis ARM hanya dapat berjalan pada sumber daya komputasi berbasis ARM.
         + Gambar di Amazon ECR Repositori Publik menggunakan konvensi lengkap `registry/repository[:tag]` atau `registry/repository[@digest]` penamaan (misalnya,). `public.ecr.aws/registry_alias/my-web-app:latest`
         + Gambar di repositori Amazon ECR menggunakan konvensi `registry/repository[:tag]` penamaan lengkap (misalnya,). `aws_account_id.dkr.ecr.region.amazonaws.com` `/my-web-app:latest`
         + Gambar di repositori resmi Docker Hub menggunakan satu nama (misalnya, `ubuntu` atau`mongo`).
         + Gambar di repositori lain di Docker Hub memenuhi syarat dengan nama organisasi (misalnya,`amazon/amazon-ecs-agent`).
         + Gambar di repositori online lainnya memenuhi syarat lebih lanjut berdasarkan nama domain (misalnya, `quay.io/assemblyline/ubuntu`).

      1. (Opsional) Untuk **kebijakan tarik gambar**, pilih kapan gambar ditarik.

      1. (Opsional) Untuk **Command**, masukkan JSON perintah untuk diteruskan ke wadah.

      1. (Opsional) Untuk **Argumen**, masukkan argumen untuk diteruskan ke wadah. Jika argumen tidak disediakan, perintah image container digunakan.

   1. (Opsional) Anda dapat menambahkan parameter ke definisi pekerjaan sebagai pemetaan nama-nilai untuk mengganti default definisi pekerjaan. Untuk menambahkan parameter:

      1. Untuk **Parameter**, masukkan pasangan nama-nilai, lalu pilih **Tambah** parameter.
**penting**  
Jika Anda memilih **Tambah parameter**, Anda harus mengkonfigurasi setidaknya satu parameter atau memilih **Hapus parameter**

   1. Di bagian **konfigurasi Lingkungan**:

      1. Untuk **v CPUs**, masukkan jumlah v yang CPUs akan dicadangkan untuk wadah. Parameter ini sesuai dengan `CpuShares` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--cpu-shares` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Setiap vCPU setara dengan 1.024 bagian CPU. Anda harus menentukan setidaknya satu vCPU.

      1. Untuk **Memori**, masukkan batas memori yang tersedia untuk wadah. Jika kontainer Anda mencoba untuk melebihi memori yang ditentukan di sini, kontainer akan dihentikan. Parameter ini sesuai dengan `Memory` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--memory` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Anda harus menentukan sedikitnya 4 MiB memori untuk sebuah tugas.
**catatan**  
Untuk memaksimalkan pemanfaatan sumber daya Anda, prioritaskan memori untuk pekerjaan dari jenis instans tertentu. Untuk informasi selengkapnya, lihat [Menghitung manajemen memori sumber daya](memory-management.md).

   1. (Opsional) Untuk **variabel Lingkungan**, pilih **Tambahkan variabel lingkungan** untuk menambahkan variabel lingkungan sebagai pasangan nama-nilai. Variabel-variabel ini diteruskan ke wadah.

   1. (Opsional) Untuk **pemasangan Volume**:

      1. Pilih **Tambahkan volume mount**.

      1. Masukkan **Nama**, lalu masukkan **jalur Mount** di wadah tempat volume dipasang. Masukkan a **SubPath**untuk menentukan sub-jalur di dalam volume yang direferensikan, bukan akarnya. 

      1. Pilih **Baca saja** untuk menghapus izin menulis ke volume.

      1. Pilih **Tambahkan volume mount**.

   1. (Opsional) Untuk **Jalankan sebagai pengguna**, masukkan ID pengguna untuk menjalankan proses penampung.
**catatan**  
ID pengguna harus ada dalam gambar agar wadah dapat dijalankan.

   1. (Opsional) Untuk **Jalankan sebagai grup**, masukkan ID grup untuk menjalankan runtime proses kontainer.
**catatan**  
ID grup harus ada dalam gambar agar wadah dapat dijalankan.

   1. (Opsional) Untuk memberikan izin tinggi penampung pekerjaan Anda pada instance host (mirip dengan `root` pengguna), seret slider **Privileged** ke kanan. Parameter ini memetakan ke `Privileged` di bagian [Membuat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) dari [API Jarak Jauh Docker](https://docs.docker.com/engine/api/v1.38/) dan pilihan `--privileged` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).

   1. (Opsional) Aktifkan **sistem file root read-only untuk menghapus akses tulis ke sistem file** root.

   1. (Opsional) Aktifkan **Run sebagai non-root** untuk menjalankan container pod sebagai pengguna non-root.
**catatan**  
Jika **Run as non-root** diaktifkan, gambar kubelet divalidasi saat runtime untuk memverifikasi bahwa gambar tidak berjalan sebagai UID 0. 

   1. Pilih **Halaman berikutnya**.

1. Untuk **tinjauan definisi Job**, tinjau langkah-langkah konfigurasi. Jika Anda perlu melakukan perubahan, pilih **Edit**. Setelah selesai, pilih **Buat definisi pekerjaan**.

# Buat definisi pekerjaan simpul tunggal dengan beberapa kontainer di sumber daya Amazon EC2
<a name="create-job-definition-single-node-multi-container"></a>

Selesaikan langkah-langkah berikut untuk membuat definisi pekerjaan simpul tunggal dengan beberapa kontainer di sumber daya Amazon Elastic Compute Cloud (Amazon EC2).

**Untuk membuat definisi pekerjaan baru di sumber daya Amazon EC2:**

1. Buka AWS Batch konsol di [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Dari bilah navigasi, pilih yang Wilayah AWS akan digunakan.

1. Di panel navigasi kiri, pilih **Definisi Job**.

1. Pilih **Buat**.

1. Untuk **jenis Orkestrasi, pilih** Amazon **Elastic Compute Cloud (Amazon** EC2).

1. Untuk **struktur definisi Job**, matikan **Use legacy containerProperties** structure processing.

1. Untuk **konfigurasi platform EC2**, matikan **Aktifkan pemrosesan paralel multi-node**.

1. Pilih **Berikutnya**.

1. Di bagian **konfigurasi Umum**, masukkan yang berikut ini:

   1. Untuk **Name** (Name), masukkan nama yang unik untuk ketentuan tugas Anda. Nama dapat memiliki panjang hingga 128 karakter. Nama dapat memuat huruf besar dan huruf kecil, angka, tanda hubung (-), dan garis bawah (\$1).

   1. Untuk **batas waktu Eksekusi - *opsional***, masukkan nilai batas waktu (dalam detik). Batas waktu eksekusi adalah lamanya waktu sebelum pekerjaan yang belum selesai dihentikan. Jika upaya melebihi durasi batas waktu, upaya dihentikan dan dipindahkan ke `FAILED` status. Untuk informasi selengkapnya, lihat [Batas waktu Job](job_timeouts.md). Nilai minimum adalah 60 detik.

   1. Aktifkan **Prioritas penjadwalan - *opsional***. Masukkan nilai prioritas penjadwalan antara 0 dan 100. Nilai yang lebih tinggi diberikan prioritas yang lebih tinggi.

   1. Perluas **Tag - *opsional*** dan kemudian pilih **Tambahkan tag** untuk menambahkan tag ke sumber daya. Masukkan kunci dan nilai opsional, lalu pilih **Tambah tag**.

   1. Aktifkan **Menyebarkan tag** untuk menyebarkan tag dari definisi pekerjaan dan pekerjaan ke tugas Amazon ECS.

1. Dalam **Strategi coba lagi - bagian *opsional***, masukkan yang berikut ini:

   1. Untuk **upaya Job**, masukkan berapa kali AWS Batch upaya untuk memindahkan pekerjaan ke `RUNNABLE` status. Masukkan angka antara 1 dan 10.

   1. Untuk **kondisi strategi Coba lagi**, pilih **Tambahkan evaluasi saat keluar**. Masukkan setidaknya satu nilai parameter dan kemudian pilih **Action**. Untuk setiap set kondisi, **Tindakan** harus diatur ke **Coba Ulang** atau **Keluar**. Tindakan ini berarti sebagai berikut:
      + **Coba lagi — AWS Batch coba** lagi sampai jumlah upaya pekerjaan yang Anda tentukan tercapai.
      + **Keluar** — AWS Batch berhenti mencoba kembali pekerjaan.
**penting**  
Jika Anda memilih **Tambahkan evaluasi saat keluar**, Anda harus mengonfigurasi setidaknya satu parameter dan memilih **Tindakan** atau memilih **Hapus evaluasi saat keluar**.

1. Di bagian **Properti tugas**, masukkan yang berikut ini:

   1. Untuk **peran Eksekusi - *bersyarat***, pilih peran yang memungkinkan agen Amazon ECS melakukan panggilan AWS API atas nama Anda. Untuk informasi selengkapnya tentang membuat **peran Eksekusi**, lihat[Tutorial: Buat peran eksekusi IAM](create-execution-role.md).

   1. Pilih **Aktifkan perintah eksekusi ECS**, untuk mengaktifkan akses ke shell kontainer Amazon ECS secara langsung dan melewati OS host. Anda harus memilih **peran Tugas**.
**penting**  
Perintah **eksekusi ECS** mengharuskan sistem file dapat ditulis. 

   1. Untuk **peran Task**, pilih peran Amazon ECS Identity and Access Management (IAM) untuk mengizinkan container melakukan panggilan AWS API atas nama Anda. Untuk informasi selengkapnya, lihat [peran IAM tugas Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) dalam Panduan *Pengembang Layanan Kontainer Elastis Amazon*.

   1. Untuk **mode IPC** pilih`host`,`task`, atau`none`. Jika `host` ditentukan, maka semua kontainer yang berada dalam tugas yang menentukan mode IPC host pada instance kontainer yang sama berbagi sumber daya IPC yang sama dengan instans Amazon EC2 host. Jika tugas ditentukan, semua kontainer yang berada dalam tugas yang ditentukan berbagi sumber daya IPC yang sama. Jika tidak ada yang ditentukan, maka sumber daya IPC dalam wadah tugas bersifat pribadi dan tidak dibagikan dengan wadah lain dalam tugas atau pada instance penampung. Jika tidak ada nilai yang ditentukan, maka berbagi namespace sumber daya IPC tergantung pada pengaturan daemon Docker pada instans kontainer.

   1. Untuk **mode PID** pilih `host` atau`task`. Misalnya, pemantauan sidecar mungkin `pidMode` perlu mengakses informasi tentang kontainer lain yang berjalan dalam tugas yang sama. Jika `host` ditentukan, semua kontainer dalam tugas yang menentukan mode PID host pada instance container yang sama berbagi namespace proses yang sama dengan instans Amazon EC2 host. Jika `task` ditentukan, semua kontainer dalam tugas tertentu berbagi namespace proses yang sama. Jika tidak ada nilai yang ditentukan, defaultnya adalah namespace pribadi untuk setiap kontainer. 

1. Di bagian **Sumber daya habis pakai**, masukkan yang berikut ini:

   1. Masukkan **Nama** unik dan **nilai yang diminta**.

   1. Anda dapat menambahkan lebih banyak sumber daya habis pakai dengan memilih **Tambahkan sumber daya habis pakai**.

1. Di bagian **Penyimpanan**, masukkan yang berikut ini:

   1. Masukkan **jalur **Nama** dan Sumber** untuk volume dan kemudian pilih **Tambahkan volume**. Anda juga dapat memilih untuk mengaktifkan Aktifkan EFS.

   1. Anda dapat menambahkan lebih banyak Volume dengan memilih **Tambah volume**.

1. **Untuk **Parameter**, pilih **Tambahkan parameter** untuk menambahkan placeholder substitusi parameter sebagai pasangan **Kunci dan Nilai** opsional.**

1. Pilih **Halaman berikutnya**.

1. Di bagian **Konfigurasi kontainer**:

   1. Untuk **Nama**, masukkan nama untuk wadah.

   1. Untuk **wadah Essential**, aktifkan jika wadah itu penting.

   1. Untuk **Gambar**, pilih Docker gambar yang akan digunakan untuk pekerjaan Anda. Secara default, gambar dalam Docker Hub registri tersedia. Anda juga dapat menentukan repositori lainnya dengan `repository-url/image:tag`. Namanya bisa mencapai 225 karakter panjangnya. Ini dapat berisi huruf besar dan kecil, angka, tanda hubung (-), garis bawah (\$1), titik dua (:), garis miring maju (/), dan tanda angka (\$1). Parameter ini sesuai dengan `Image` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan `IMAGE` parameter [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).
**catatan**  
Arsitektur gambar Docker harus sesuai dengan arsitektur prosesor sumber daya komputasi tempatnya dijadwalkan. Sebagai contoh, gambar Docker berbasis ARM hanya dapat berjalan pada sumber daya komputasi berbasis ARM.
      + Gambar di Amazon ECR Repositori Publik menggunakan konvensi lengkap `registry/repository[:tag]` atau `registry/repository[@digest]` penamaan (misalnya,). `public.ecr.aws/registry_alias/my-web-app:latest`
      + Gambar di repositori Amazon ECR menggunakan konvensi `registry/repository[:tag]` penamaan lengkap (misalnya,). `aws_account_id.dkr.ecr.region.amazonaws.com` `/my-web-app:latest`
      + Gambar di repositori resmi Docker Hub menggunakan satu nama (misalnya, `ubuntu` atau`mongo`).
      + Gambar di repositori lain di Docker Hub memenuhi syarat dengan nama organisasi (misalnya,`amazon/amazon-ecs-agent`).
      + Gambar di repositori online lainnya memenuhi syarat lebih lanjut berdasarkan nama domain (misalnya, `quay.io/assemblyline/ubuntu`).

   1. Untuk **persyaratan Sumber Daya**, konfigurasikan masing-masing hal berikut:

      1. Untuk **v CPUs**, pilih jumlah CPUs untuk wadah.

      1. Untuk **Memori**, pilih jumlah memori untuk wadah.

      1. Untuk **GPU - *opsional***, pilih jumlah GPUs untuk wadah.

   1. Untuk **User** (Pengguna), masukkan nama pengguna untuk digunakan di dalam kontainer.

   1. **Aktifkan Aktifkan sistem file baca saja** untuk menghapus akses tulis ke volume.

   1. Aktifkan **Privileged** untuk memberikan izin penampung pekerjaan yang lebih tinggi pada instance host, mirip dengan pengguna root. 

   1. Untuk **Command**, masukkan perintah ke dalam bidang sebagai setara dengan array string **JSON** mereka.

      Parameter ini sesuai dengan `Cmd` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan parameter `COMMAND` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Untuk informasi selengkapnya tentang Docker `CMD` parameter, lihat [https://docs.docker.com/engine/referensi/builder/ \$1cmd](https://docs.docker.com/engine/reference/builder/#cmd).
**catatan**  
Anda dapat menggunakan nilai dan placeholder default untuk substitusi parameter dalam perintah Anda. Untuk informasi selengkapnya, lihat [Parameter](job_definition_parameters.md#parameters).

   1. Untuk **kredensi Repositori - opsional *masukkan*** ARN rahasia yang berisi kredensil Anda.

   1. Untuk **variabel Lingkungan - *opsional***, pilih **Tambahkan variabel lingkungan** untuk menambahkan variabel lingkungan untuk diteruskan ke wadah.

   1. Dalam **parameter Linux - bagian *opsional***:

      1. **Aktifkan proses Aktifkan init** untuk menjalankan proses init di dalam wadah. 

      1. Untuk **ukuran memori Bersama**, masukkan ukuran (dalam MiB) volume /dev/shm

      1. Untuk **ukuran swap Max**, masukkan jumlah total memori swap (dalam MiB) yang dapat digunakan wadah.

      1. Untuk **Swappiness** masukkan nilai antara 0 dan 100 untuk menunjukkan perilaku swappiness wadah. Jika Anda tidak menentukan nilai dan pertukaran diaktifkan, nilai defaultnya menjadi 60. 

      1. Untuk **Perangkat**, pilih **Tambah perangkat** untuk menambahkan perangkat:

         1. Untuk **Container path** (Jalur kontainer), tentukan jalur dalam instans kontainer untuk mengungkap perangkat yang dipetakan ke instans host. Jika Anda mengosongkan ini, jalur host digunakan dalam wadah.

         1. Untuk **Host path** (Jalur host), tentukan jalur perangkat dalam instans host.

         1. Untuk **Izin**, pilih satu atau beberapa izin untuk diterapkan ke perangkat. Izin yang tersedia adalah **BACA**, **TULIS**, dan **MKNOD**.

      1. Untuk **Tmpfs**, pilih **Tambahkan tmpfs** untuk menambahkan mount. `tmpfs`

   1. 
**catatan**  
Firelens logging harus dilakukan dalam wadah khusus. Untuk mengonfigurasi logging Firelens:  
Di setiap kontainer, kecuali kontainer firelens khusus Anda, atur driver **Logging ke** `awsfirelens`
Dalam wadah Firelens Anda, atur Konfigurasi **Firelens - opsional dan konfigurasi Logging - *opsional*** **ke tujuan** pencatatan

      Di **Konfigurasi Firelens - bagian opsional**:
**penting**  
AWS Batch memberlakukan mode `host` jaringan pada pekerjaan Amazon ECS non-MNP dan non-Fargate. [Pengguna root diperlukan](https://github.com/aws/aws-for-fluent-bit/blob/mainline/troubleshooting/debugging.md#amazon-ecs-firelens-root-is-required) untuk Amazon ECS Firelens. [Saat menjalankan tugas yang menggunakan mode `host` jaringan, Amazon ECS menyarankan agar tidak menjalankan container menggunakan root user (UID 0) untuk keamanan yang lebih baik.](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#network_mode) Oleh karena itu, semua pekerjaan non-MNP, non-Fargate ECS dengan Firelens logging tidak akan memenuhi praktik terbaik keamanan.

      1. Untuk **Jenis**, pilih salah satu `fluentd` atau`fluentbit`. 

      1. Untuk **Opsi**, masukkan name/value pasangan opsi. Anda dapat menambahkan lebih banyak **Opsi** menggunakan **opsi Ditambahkan**.

   1.  Dalam **konfigurasi Logging - bagian *opsional***:

      1. Untuk **driver Log**, pilih driver log yang akan digunakan. [Untuk informasi lebih lanjut tentang driver log yang tersedia, LogConfiguration lihat:LogDriver.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-logDriver)
**catatan**  
Secara default, driver log `awslogs` akan digunakan.

      1. Untuk **Opsi**, pilih **Tambahkan opsi** untuk menambahkan opsi. Masukkan pasangan nama-nilai, lalu pilih **Tambah** opsi.

      1. Untuk **Rahasia**, pilih **Tambahkan rahasia**. Masukkan pasangan nama-nilai dan kemudian pilih **Tambahkan rahasia** untuk menambahkan rahasia.
**Tip**  
[Untuk informasi lebih lanjut, lihat:SecretOptionsLogConfiguration.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

   1. Untuk **titik Mount - *opsional***, pilih **Tambahkan titik pemasangan** untuk menambahkan titik pemasangan untuk volume data. Anda harus menentukan volume sumber dan jalur kontainer. 

   1. Untuk **Rahasia - *opsional***, pilih **Tambahkan rahasia** untuk menambahkan rahasia. Kemudian, masukkan pasangan nama-nilai, dan pilih **Tambahkan** rahasia.
**Tip**  
[Untuk informasi lebih lanjut, lihat:SecretOptionsLogConfiguration.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

   1. Untuk **Ulimits - *opsional***, pilih **Tambahkan ulimit** untuk menambahkan `ulimits` nilai untuk wadah. Masukkan nilai **Name**, **Soft limit**, dan **Hard limit**, lalu pilih **Add ulimit**.

   1. Untuk **Dependensi - *opsional*, pilih Tambahkan dependensi** **kontainer**. Pilih nama wadah dan statusnya untuk menentukan kapan wadah ini dimulai.

1. Jika Anda hanya memiliki satu wadah yang dikonfigurasi maka Anda harus memilih **Tambah wadah** dan selesaikan konfigurasi wadah baru. Jika tidak, pilih **Berikutnya** untuk meninjau. 

# Buat definisi pekerjaan paralel multi-node
<a name="create-multi-node-job-def"></a>

Sebelum Anda dapat menjalankan pekerjaan AWS Batch, Anda harus membuat definisi pekerjaan. Proses ini sedikit berbeda antara single-node dan multi-node parallel jobs. Topik ini mencakup secara khusus cara membuat definisi pekerjaan untuk pekerjaan paralel AWS Batch multi-node (juga dikenal sebagai *penjadwalan geng*). Untuk informasi selengkapnya, lihat [Tugas paralel multisimpul](multi-node-parallel-jobs.md). 

**catatan**  
AWS Fargate tidak mendukung multi-node parallel jobs.

**Topics**
+ [Tutorial: Membuat definisi pekerjaan paralel multi-node pada sumber daya Amazon EC2](multi-node-job-def-ec2.md)

# Tutorial: Membuat definisi pekerjaan paralel multi-node pada sumber daya Amazon EC2
<a name="multi-node-job-def-ec2"></a>

Untuk membuat definisi pekerjaan paralel multi-node di sumber daya Amazon Elastic Compute Cloud (Amazon EC2).

**catatan**  
Untuk membuat definisi pekerjaan *simpul tunggal*, lihat[Buat definisi pekerjaan simpul tunggal di sumber daya Amazon EC2](create-job-definition-EC2.md).

**Untuk membuat definisi pekerjaan paralel multi-node di sumber daya Amazon EC2:**

1. Buka AWS Batch konsol di [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Dari bilah navigasi, pilih yang Wilayah AWS akan digunakan.

1. Di panel navigasi, pilih **Definisi Job**.

1. Pilih **Buat**.

1. Untuk **jenis Orkestrasi, pilih** Amazon **Elastic Compute Cloud (Amazon** EC2).

1. Untuk **Aktifkan paralel multi-node**, nyalakan paralel multi-node.

1. Untuk **Name** (Name), masukkan nama yang unik untuk ketentuan tugas Anda. Namanya bisa mencapai 128 karakter, dan dapat berisi huruf besar dan kecil, angka, tanda hubung (-), dan garis bawah (\$1).

1. (Opsional) Untuk **batas waktu Eksekusi**, tentukan jumlah maksimum detik yang Anda inginkan untuk menjalankan upaya pekerjaan. Jika upaya melebihi durasi batas waktu, upaya dihentikan dan dipindahkan ke `FAILED` status. Untuk informasi selengkapnya, lihat [Batas waktu Job](job_timeouts.md).

1. (Opsional) Aktifkan **Prioritas penjadwalan**. Masukkan nilai prioritas penjadwalan antara 0 dan 100. Nilai yang lebih tinggi diberikan prioritas yang lebih tinggi daripada nilai yang lebih rendah.

1. (Opsional) Untuk **upaya Job**, masukkan berapa kali AWS Batch upaya untuk memindahkan pekerjaan ke `RUNNABLE` status. Masukkan angka antara 1 dan 10.

1. (Opsional) Untuk **kondisi strategi Coba lagi**, pilih **Tambahkan evaluasi saat keluar**. Masukkan setidaknya satu nilai parameter dan kemudian pilih **Action**. Untuk setiap set kondisi, **Tindakan** harus diatur ke **Coba Ulang** atau **Keluar**. Tindakan ini berarti sebagai berikut: 
   + **Coba lagi — AWS Batch coba** lagi sampai jumlah upaya pekerjaan yang Anda tentukan tercapai.
   + **Keluar** — AWS Batch berhenti mencoba kembali pekerjaan.
**penting**  
Jika Anda memilih **Tambahkan evaluasi saat keluar**, Anda harus mengonfigurasi setidaknya satu parameter dan memilih **Tindakan** atau memilih **Hapus evaluasi saat keluar**.

1. (Opsional) Perluas **Tag** dan kemudian pilih **Tambahkan tag** untuk menambahkan tag ke sumber daya. Masukkan kunci dan nilai opsional, lalu pilih **Tambah tag**. Anda juga dapat mengaktifkan **Menyebarkan tag** untuk menyebarkan tag dari definisi pekerjaan dan pekerjaan ke tugas Amazon ECS.

1. Pilih **Halaman berikutnya**.

1. Untuk **Number of nodes** (Jumlah simpul), masukkan jumlah total simpul yang akan digunakan untuk tugas Anda.

1. Untuk **Main node** (Simpul utama), masukkan indeks simpul yang akan digunakan untuk simpul utama. Indeks simpul utama default adalah `0`.

1. Untuk **tipe Instance**, pilih jenis instance.
**catatan**  
Jenis instance yang Anda pilih berlaku untuk semua node.

1. **Untuk **Parameter**, pilih **Tambahkan parameter** untuk menambahkan placeholder substitusi parameter sebagai pasangan **Kunci dan Nilai** opsional.**

1. Di bagian **rentang Node**:

   1. Pilih **Add node range** (Tambahkan rentang simpul). Ini akan membuat bagian **Node range** (Rentang simpul).

   1. Untuk **Target nodes** (Simpul target), tentukan rentang untuk grup simpul Anda, menggunakan notasi `range_start:range_end`.

      Anda dapat membuat hingga lima rentang node untuk node yang Anda tentukan untuk pekerjaan Anda. Rentang simpul menggunakan nilai indeks untuk simpul, dan indeks simpul dimulai dari 0. Pastikan bahwa nilai indeks akhir rentang grup node akhir Anda adalah satu kurang dari jumlah node yang Anda tentukan. Misalnya, anggaplah Anda menentukan 10 node, dan Anda ingin menggunakan grup node tunggal. Kemudian, rentang akhir Anda adalah 9.

   1. Untuk **Gambar**, pilih Docker gambar yang akan digunakan untuk pekerjaan Anda. Secara default, gambar dalam Docker Hub registri tersedia. Anda juga dapat menentukan repositori lainnya dengan `repository-url/image:tag`. Namanya bisa mencapai 225 karakter. Ini dapat berisi huruf besar dan kecil, angka, tanda hubung (-), garis bawah (\$1), titik dua (:), garis miring maju (/), dan tanda angka (\$1). Parameter ini sesuai dengan `Image` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan `IMAGE` parameter [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).
**catatan**  
Arsitektur gambar Docker harus sesuai dengan arsitektur prosesor sumber daya komputasi tempatnya dijadwalkan. Sebagai contoh, gambar Docker berbasis ARM hanya dapat berjalan pada sumber daya komputasi berbasis ARM.
      + Gambar di Amazon ECR Repositori Publik menggunakan konvensi lengkap `registry/repository[:tag]` atau `registry/repository[@digest]` penamaan (misalnya,). `public.ecr.aws/registry_alias/my-web-app:latest`
      + Gambar di repositori Amazon ECR menggunakan konvensi penamaan `registry/repository[:tag]` lengkap. Misalnya, `aws_account_id.dkr.ecr.region.amazonaws.com``/my-web-app:latest`
      + Gambar di repositori resmi Docker Hub menggunakan satu nama (misalnya, `ubuntu` atau`mongo`).
      + Gambar di repositori lain di Docker Hub memenuhi syarat dengan nama organisasi (misalnya,`amazon/amazon-ecs-agent`).
      + Gambar di repositori online lainnya memenuhi syarat lebih lanjut berdasarkan nama domain (misalnya, `quay.io/assemblyline/ubuntu`).

   1. Untuk **Command**, masukkan perintah ke dalam bidang sebagai setara dengan array string **JSON** mereka.

      Parameter ini sesuai dengan `Cmd` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan parameter `COMMAND` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Untuk informasi selengkapnya tentang Docker `CMD` parameter, lihat [https://docs.docker.com/engine/referensi/builder/ \$1cmd](https://docs.docker.com/engine/reference/builder/#cmd).
**catatan**  
Anda dapat menggunakan nilai dan placeholder default untuk substitusi parameter dalam perintah Anda. Untuk informasi selengkapnya, lihat [Parameter](job_definition_parameters.md#parameters).

   1. Untuk **v CPUs**, tentukan jumlah v yang CPUs akan dicadangkan untuk wadah. Parameter ini sesuai dengan `CpuShares` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--cpu-shares` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Setiap vCPU setara dengan 1.024 bagian CPU. Anda harus menentukan setidaknya satu vCPU.

   1. Untuk **Memory** (Memori), tentukan batas keras (dalam MiB) memori yang akan diberikan ke kontainer tugas. Jika kontainer Anda mencoba untuk melebihi memori yang ditentukan di sini, kontainer akan dihentikan. Parameter ini sesuai dengan `Memory` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--memory` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Anda harus menentukan sedikitnya 4 MiB memori untuk sebuah tugas.
**catatan**  
Untuk memaksimalkan pemanfaatan sumber daya Anda, Anda dapat memberikan pekerjaan Anda sebanyak mungkin memori untuk jenis instance tertentu. Untuk informasi selengkapnya, lihat [Menghitung manajemen memori sumber daya](memory-management.md).

   1. (Opsional) Untuk **Jumlah GPUs**, tentukan jumlah pekerjaan yang GPUs Anda gunakan. Pekerjaan berjalan pada wadah dengan jumlah tertentu GPUs yang disematkan ke wadah itu.

   1. (Opsional) Untuk **peran Job**, Anda dapat menentukan peran IAM yang menyediakan kontainer dalam pekerjaan Anda dengan izin untuk menggunakan. AWS APIs Fitur ini menggunakan IAM role Amazon ECS untuk fungsionalitas tugas. Untuk informasi selengkapnya termasuk prasyarat konfigurasi, lihat [Peran IAM untuk Tugas di](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) Panduan Pengembang Layanan Kontainer *Elastis Amazon*.
**catatan**  
Untuk pekerjaan yang berjalan pada sumber daya Fargate, diperlukan peran pekerjaan.
**catatan**  
Hanya peran yang memiliki hubungan kepercayaan **Amazon Elastic Container Service Task Role** (Peran Tugas Amazon Elastic Container Service) yang ditampilkan di sini. Untuk informasi selengkapnya tentang membuat peran IAM untuk AWS Batch pekerjaan Anda, lihat [Membuat Peran dan Kebijakan IAM untuk Tugas Anda](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#create_task_iam_policy_and_role) di Panduan *Pengembang Layanan Kontainer Elastis Amazon*.

   1. (Opsional) Untuk **peran Eksekusi**, tentukan peran IAM yang memberikan izin kepada agen penampung Amazon ECS untuk melakukan panggilan AWS API atas nama Anda. Fitur ini menggunakan IAM role Amazon ECS untuk fungsionalitas tugas. Untuk informasi selengkapnya, lihat [peran IAM eksekusi tugas Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) di Panduan *Pengembang Layanan Kontainer Elastis Amazon*. 

1. (Opsional) Perluas **konfigurasi tambahan**:

   1. Untuk **variabel Lingkungan**, pilih **Tambahkan variabel lingkungan** untuk menambahkan variabel lingkungan sebagai pasangan nama-nilai. Variabel-variabel ini diteruskan ke wadah.

   1. Untuk **konfigurasi peran Job**, Anda dapat menentukan peran IAM yang menyediakan kontainer dalam pekerjaan Anda dengan izin untuk menggunakan. AWS APIs Fitur ini menggunakan IAM role Amazon ECS untuk fungsionalitas tugas. Untuk informasi selengkapnya termasuk prasyarat konfigurasi, lihat [Peran IAM untuk Tugas di](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) Panduan Pengembang Layanan Kontainer *Elastis Amazon*.
**catatan**  
Untuk pekerjaan yang berjalan pada sumber daya Fargate, diperlukan peran pekerjaan.
**catatan**  
Hanya peran yang memiliki hubungan kepercayaan **Amazon Elastic Container Service Task Role** (Peran Tugas Amazon Elastic Container Service) yang ditampilkan di sini. Untuk informasi selengkapnya tentang cara membuat peran IAM untuk AWS Batch pekerjaan Anda, lihat [Membuat Peran dan Kebijakan IAM untuk Tugas Anda](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#create_task_iam_policy_and_role) di Panduan *Pengembang Layanan Amazon Elastic Container*.

   1. Untuk **peran Eksekusi**, tentukan peran IAM yang memberikan izin kepada agen penampung Amazon ECS untuk melakukan panggilan AWS API atas nama Anda. Fitur ini menggunakan IAM role Amazon ECS untuk fungsionalitas tugas. Untuk informasi selengkapnya, lihat [peran IAM eksekusi tugas Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) di Panduan *Pengembang Layanan Kontainer Elastis Amazon*.

1. Di bagian **Konfigurasi Keamanan**:

   1. (Opsional) Untuk memberikan hak istimewa yang lebih tinggi pada container pekerjaan Anda pada instance host (mirip dengan `root` pengguna), aktifkan **Privileged**. Parameter ini memetakan ke `Privileged` di bagian [Membuat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) dari [API Jarak Jauh Docker](https://docs.docker.com/engine/api/v1.38/) dan pilihan `--privileged` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).

   1. (Opsional) Untuk **Pengguna**, masukkan nama pengguna untuk digunakan di dalam wadah. Parameter ini memetakan ke `User` di bagian [Membuat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) dari [API Jarak Jauh Docker](https://docs.docker.com/engine/api/v1.38/) dan pilihan `--user` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).

   1. (Opsional) Untuk **Rahasia**, pilih **Tambahkan rahasia** untuk menambahkan rahasia sebagai pasangan nama-nilai. Rahasia-rahasia ini terungkap dalam wadah. [Untuk informasi lebih lanjut, lihat:SecretOptionsLogConfiguration.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

1. Di bagian **konfigurasi Linux**:

   1. **Aktifkan Aktifkan sistem file baca saja** untuk menghapus akses tulis ke volume.

   1. (Opsional) **Aktifkan init proses Aktifkan** untuk menjalankan `init` proses di dalam wadah. Proses ini meneruskan sinyal dan menuai proses.

   1. Untuk **ukuran memori bersama**, masukkan ukuran (dalam MiB) volume. `/dev/shm`

   1. Untuk **ukuran swap Max**, masukkan jumlah total memori swap (dalam MiB) yang dapat digunakan wadah.

   1. Untuk **Swappiness** masukkan nilai antara 0 dan 100 untuk menunjukkan perilaku swappiness wadah. Jika Anda tidak menentukan nilai dan pertukaran diaktifkan, nilai default ke 60. [Untuk informasi lebih lanjut, lihat:swappinessLinuxParameters.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LinuxParameters.html#Batch-Type-LinuxParameters-swappiness)

   1. (Opsional) Untuk **Perangkat**, pilih **Tambah perangkat** untuk menambahkan perangkat:

      1. Untuk **Container path** (Jalur kontainer), tentukan jalur dalam instans kontainer untuk mengungkap perangkat yang dipetakan ke instans host. Jika Anda mengosongkan ini, jalur host digunakan dalam wadah.

      1. Untuk **Host path** (Jalur host), tentukan jalur perangkat dalam instans host.

      1. Untuk **Izin**, pilih satu atau beberapa izin untuk diterapkan ke perangkat. Izin yang tersedia adalah **BACA**, **TULIS**, dan **MKNOD**.

1. (Opsional) Untuk **titik Mount**, pilih **konfigurasi Tambahkan titik** pemasangan untuk menambahkan titik pemasangan untuk volume data. Anda harus menentukan volume sumber dan jalur kontainer. Titik pemasangan ini diteruskan ke Docker daemon pada instance kontainer. Anda juga dapat memilih untuk membuat volume **Baca saja**.

1. (Opsional) Untuk **konfigurasi Ulimits**, pilih **Tambahkan ulimit** untuk menambahkan `ulimits` nilai untuk wadah. Masukkan nilai **Name**, **Soft limit**, dan **Hard limit**, lalu pilih **Add ulimit**.

1. (Opsional) Untuk **konfigurasi Volume**, pilih **Tambahkan volume** untuk membuat daftar volume yang akan diteruskan ke wadah. Masukkan **Nama** dan **jalur Sumber** untuk volume dan kemudian pilih **Tambahkan volume**. Anda juga dapat memilih untuk **mengaktifkan Aktifkan EFS**.

1. (Opsional) Untuk **Tmpfs**, pilih **Tambahkan tmpfs** untuk menambahkan mount. `tmpfs`

1. Di bagian **Properti tugas**:

   1. Untuk **peran Eksekusi - bersyarat**, pilih peran yang memungkinkan agen Amazon ECS melakukan panggilan AWS API atas nama Anda. Untuk informasi selengkapnya tentang membuat **peran Eksekusi**, lihat[Tutorial: Buat peran eksekusi IAM](create-execution-role.md).

   1. 
**penting**  
Untuk menggunakan **perintah eksekusi ECS**, lingkungan komputasi Anda harus memenuhi [pertimbangan lingkungan komputasi untuk pekerjaan paralel multi node](mnp-ce.md).

      Pilih **Aktifkan perintah eksekusi ECS**, untuk mengaktifkan akses ke shell kontainer Amazon ECS secara langsung dan melewati OS host. Anda harus memilih **peran Tugas**.
**penting**  
Perintah **eksekusi ECS** mengharuskan sistem file dapat ditulis. 

   1. Untuk **peran Task**, pilih peran Amazon ECS Identity and Access Management (IAM) untuk mengizinkan container melakukan panggilan AWS API atas nama Anda. Untuk informasi selengkapnya, lihat [peran IAM tugas Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) dalam Panduan *Pengembang Layanan Kontainer Elastis Amazon*.

1. (Opsional) Di bagian **konfigurasi Logging**:

   1. Untuk **driver Log**, pilih driver log yang akan digunakan. [Untuk informasi lebih lanjut tentang driver log yang tersedia, LogConfiguration lihat:LogDriver.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-logDriver)
**catatan**  
Secara default, driver log `awslogs` akan digunakan.

   1. Untuk **Opsi**, pilih **Tambahkan opsi** untuk menambahkan opsi. Masukkan pasangan nama-nilai, lalu pilih **Tambah** opsi.

   1. Untuk **Rahasia**, pilih **Tambahkan rahasia**. Masukkan pasangan nama-nilai dan kemudian pilih **Tambahkan rahasia** untuk menambahkan rahasia.
**Tip**  
[Untuk informasi lebih lanjut, lihat:SecretOptionsLogConfiguration.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

1. Pilih **Halaman berikutnya**.

1. Untuk **tinjauan definisi Job**, tinjau langkah-langkah konfigurasi. Jika Anda perlu melakukan perubahan, pilih **Edit**. Setelah selesai, pilih **Buat definisi pekerjaan**.

# Template definisi Job yang menggunakan ContainerProperties
<a name="job-definition-template"></a>

Berikut ini adalah template definisi pekerjaan kosong yang mencakup satu wadah. Anda dapat menggunakan template ini untuk membuat definisi pekerjaan Anda, yang kemudian dapat disimpan ke file dan digunakan dengan AWS CLI `--cli-input-json` opsi. Untuk informasi selengkapnya tentang parameter ini, lihat [JobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_JobDefinition.html).

**catatan**  
Anda dapat membuat template definisi pekerjaan kontainer tunggal dengan AWS CLI perintah berikut:  

```
$ aws batch register-job-definition --generate-cli-skeleton
```

```
{
    "jobDefinitionName": "",
    "type": "container",
    "parameters": {
        "KeyName": ""
    },
    "schedulingPriority": 0,
    "containerProperties": {
        "image": "",
        "vcpus": 0,
        "memory": 0,
        "command": [
            ""
        ],
        "jobRoleArn": "",
        "executionRoleArn": "",
        "volumes": [
            {
                "host": {
                    "sourcePath": ""
                },
                "name": "",
                "efsVolumeConfiguration": {
                    "fileSystemId": "",
                    "rootDirectory": "",
                    "transitEncryption": "ENABLED",
                    "transitEncryptionPort": 0,
                    "authorizationConfig": {
                        "accessPointId": "",
                        "iam": "DISABLED"
                    }
                }
            }
        ],
        "environment": [
            {
                "name": "",
                "value": ""
            }
        ],
        "mountPoints": [
            {
                "containerPath": "",
                "readOnly": true,
                "sourceVolume": ""
            }
        ],
        "readonlyRootFilesystem": true,
        "privileged": true,
        "ulimits": [
            {
                "hardLimit": 0,
                "name": "",
                "softLimit": 0
            }
        ],
        "user": "",
        "instanceType": "",
        "resourceRequirements": [
            {
                "value": "",
                "type": "MEMORY"
            }
        ],
        "linuxParameters": {
            "devices": [
                {
                    "hostPath": "",
                    "containerPath": "",
                    "permissions": [
                        "WRITE"
                    ]
                }
            ],
            "initProcessEnabled": true,
            "sharedMemorySize": 0,
            "tmpfs": [
                {
                    "containerPath": "",
                    "size": 0,
                    "mountOptions": [
                        ""
                    ]
                }
            ],
            "maxSwap": 0,
            "swappiness": 0
        },
        "logConfiguration": {
            "logDriver": "syslog",
            "options": {
                "KeyName": ""
            },
            "secretOptions": [
                {
                    "name": "",
                    "valueFrom": ""
                }
            ]
        },
        "secrets": [
            {
                "name": "",
                "valueFrom": ""
            }
        ],
        "networkConfiguration": {
            "assignPublicIp": "DISABLED"
        },
        "fargatePlatformConfiguration": {
            "platformVersion": ""
        }
    },
    "nodeProperties": {
        "numNodes": 0,
        "mainNode": 0,
        "nodeRangeProperties": [
            {
                "targetNodes": "",
                "container": {
                    "image": "",
                    "vcpus": 0,
                    "memory": 0,
                    "command": [
                        ""
                    ],
                    "jobRoleArn": "",
                    "executionRoleArn": "",
                    "volumes": [
                        {
                            "host": {
                                "sourcePath": ""
                            },
                            "name": "",
                            "efsVolumeConfiguration": {
                                "fileSystemId": "",
                                "rootDirectory": "",
                                "transitEncryption": "DISABLED",
                                "transitEncryptionPort": 0,
                                "authorizationConfig": {
                                    "accessPointId": "",
                                    "iam": "ENABLED"
                                }
                            }
                        }
                    ],
                    "environment": [
                        {
                            "name": "",
                            "value": ""
                        }
                    ],
                    "mountPoints": [
                        {
                            "containerPath": "",
                            "readOnly": true,
                            "sourceVolume": ""
                        }
                    ],
                    "readonlyRootFilesystem": true,
                    "privileged": true,
                    "ulimits": [
                        {
                            "hardLimit": 0,
                            "name": "",
                            "softLimit": 0
                        }
                    ],
                    "user": "",
                    "instanceType": "",
                    "resourceRequirements": [
                        {
                            "value": "",
                            "type": "MEMORY"
                        }
                    ],
                    "linuxParameters": {
                        "devices": [
                            {
                                "hostPath": "",
                                "containerPath": "",
                                "permissions": [
                                    "WRITE"
                                ]
                            }
                        ],
                        "initProcessEnabled": true,
                        "sharedMemorySize": 0,
                        "tmpfs": [
                            {
                                "containerPath": "",
                                "size": 0,
                                "mountOptions": [
                                    ""
                                ]
                            }
                        ],
                        "maxSwap": 0,
                        "swappiness": 0
                    },
                    "logConfiguration": {
                        "logDriver": "awslogs",
                        "options": {
                            "KeyName": ""
                        },
                        "secretOptions": [
                            {
                                "name": "",
                                "valueFrom": ""
                            }
                        ]
                    },
                    "secrets": [
                        {
                            "name": "",
                            "valueFrom": ""
                        }
                    ],
                    "networkConfiguration": {
                        "assignPublicIp": "DISABLED"
                    },
                    "fargatePlatformConfiguration": {
                        "platformVersion": ""
                    }
                }
            }
        ]
    },
    "retryStrategy": {
        "attempts": 0,
        "evaluateOnExit": [
            {
                "onStatusReason": "",
                "onReason": "",
                "onExitCode": "",
                "action": "RETRY"
            }
        ]
    },
    "propagateTags": true,
    "timeout": {
        "attemptDurationSeconds": 0
    },
    "tags": {
        "KeyName": ""
    },
    "platformCapabilities": [
        "EC2"
    ],
    "eksProperties": {
        "podProperties": {
            "serviceAccountName": "",
            "hostNetwork": true,
            "dnsPolicy": "",
            "containers": [
                {
                    "name": "",
                    "image": "",
                    "imagePullPolicy": "",
                    "command": [
                        ""
                    ],
                    "args": [
                        ""
                    ],
                    "env": [
                        {
                            "name": "",
                            "value": ""
                        }
                    ],
                    "resources": {
                        "limits": {
                            "KeyName": ""
                        },
                        "requests": {
                            "KeyName": ""
                        }
                    },
                    "volumeMounts": [
                        {
                            "name": "",
                            "mountPath": "",
                            "readOnly": true
                        }
                    ],
                    "securityContext": {
                        "runAsUser": 0,
                        "runAsGroup": 0,
                        "privileged": true,
                        "readOnlyRootFilesystem": true,
                        "runAsNonRoot": true
                    }
                }
            ],
            "volumes": [
                {
                    "name": "",
                    "hostPath": {
                        "path": ""
                    },
                    "emptyDir": {
                        "medium": "",
                        "sizeLimit": ""
                    },
                    "secret": {
                        "secretName": "",
                        "optional": true
                    }
                }
            ]
        }
    }
}
```

# Parameter definisi Job untuk ContainerProperties
<a name="job_definition_parameters"></a>

Definisi Job yang [https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html)digunakan dibagi menjadi beberapa bagian:
+ Nama definisi pekerjaan
+ Jenis definisi pekerjaan
+ Parameter pengganti pengganti default
+ Properti kontainer untuk pekerjaan itu
+ Properti Amazon EKS untuk definisi pekerjaan yang diperlukan untuk pekerjaan yang dijalankan di sumber daya Amazon EKS
+ Properti node yang diperlukan untuk pekerjaan paralel multi-node
+ Kemampuan platform yang diperlukan untuk pekerjaan yang dijalankan pada sumber daya Fargate
+ Detail propagasi tag default dari definisi pekerjaan
+ Strategi coba lagi default untuk definisi pekerjaan
+ Prioritas penjadwalan default untuk definisi pekerjaan
+ Tag default untuk definisi pekerjaan
+ Batas waktu default untuk definisi pekerjaan

**Contents**
+ [Nama ketentuan tugas](#jobDefinitionName)
+ [Jenis](#type)
+ [Parameter](#parameters)
+ [Properti kontainer](#containerProperties)
+ [Properti Amazon EKS](#job-definition-parameters-eks-properties)
+ [Kemampuan platform](#job-definition-parameters-platform-capabilities)
+ [Propagasi tanda](#job-definition-parameters-propagate-tags)
+ [Properti simpul](#nodeProperties)
+ [Strategi percobaan kembali](#retryStrategy)
+ [Prioritas penjadwalan](#job-definition-parameters-schedulingPriority)
+ [Tag](#job-definition-parameters-tags)
+ [Batas waktu](#timeout)

## Nama ketentuan tugas
<a name="jobDefinitionName"></a>

`jobDefinitionName`  
Ketika mendaftarkan ketentuan tugas, Anda menentukan namanya. Nama dapat memiliki panjang hingga 128 karakter. Nama dapat memuat huruf besar dan huruf kecil, angka, tanda hubung (-), dan garis bawah (\$1). Ketentuan tugas pertama yang terdaftar dengan nama tersebut diberi revisi 1. Ketentuan tugas berikutnya yang terdaftar dengan nama tersebut akan diberi nomor revisi yang makin besar.   
Tipe: String  
Diperlukan: Ya

## Jenis
<a name="type"></a>

`type`  
Ketika mendaftarkan ketentuan tugas, Anda menentukan tipe tugas. Jika tugas berjalan di sumber daya Fargate, `multinode` tidak didukung. Untuk informasi lebih lanjut tentang tugas paralel multisimpul, lihat [Buat definisi pekerjaan paralel multi-node](create-multi-node-job-def.md).  
Tipe: String  
Nilai yang valid: `container` \$1 `multinode`  
Wajib: Ya

## Parameter
<a name="parameters"></a>

`parameters`  
Saat mengirimkan pekerjaan, Anda dapat menentukan parameter yang menggantikan placeholder atau mengganti parameter definisi pekerjaan default. Parameter dalam permintaan pengiriman tugas lebih diutamakan daripada default dalam ketentuan tugas. Ini berarti Anda dapat menggunakan definisi pekerjaan yang sama untuk beberapa pekerjaan yang menggunakan format yang sama. Anda juga dapat mengubah nilai secara terprogram dalam perintah pada waktu pengiriman.  
Tipe: Peta antar string  
Wajib: Tidak  
Ketika mendaftarkan ketentuan tugas, Anda dapat menggunakan placeholder substitusi parameter di bidang `command` properti kontainer tugas. Sintaksnya adalah sebagai berikut.  

```
"command": [
    "ffmpeg",
    "-i",
    "Ref::inputfile",
    "-c",
    "Ref::codec",
    "-o",
    "Ref::outputfile"
]
```
Dalam contoh di atas, terdapat placeholder substitusi parameter `Ref::inputfile`, `Ref::codec`, dan `Ref::outputfile` dalam perintah. Anda dapat menggunakan objek `parameters` dalam ketentuan tugas untuk menetapkan nilai default untuk placeholder ini. Misalnya, untuk mengatur default untuk placeholder `Ref::codec`, Anda menentukan hal berikut dalam ketentuan tugas:  

```
"parameters" : {"codec" : "mp4"}
```
Ketika ketentuan tugas ini dikirim untuk dijalankan, argumen `Ref::codec` dalam perintah untuk kontainer diganti dengan nilai default, `mp4`.

## Properti kontainer
<a name="containerProperties"></a>

Saat Anda mendaftarkan definisi pekerjaan, tentukan daftar properti kontainer yang diteruskan ke daemon Docker pada instance container saat pekerjaan ditempatkan. Properti kontainer berikut diperbolehkan dalam ketentuan tugas. Untuk tugas simpul tunggal, properti kontainer ini ditetapkan pada tingkat ketentuan tugas. Untuk tugas paralel multisimpul, properti kontainer ditetapkan pada tingkat [Properti simpul](#nodeProperties), untuk setiap grup simpul.

`command`  
Perintah yang disampaikan ke kontainer. Parameter ini sesuai dengan `Cmd` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan parameter `COMMAND` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Untuk informasi selengkapnya tentang `CMD` parameter Docker, lihat [https://docs.docker.com/engine/reference/builder/](https://docs.docker.com/engine/reference/builder/#cmd) \$1cmd.  

```
"command": ["string", ...]
```
Tipe: Array string  
Wajib: Tidak

`environment`  
Variabel lingkungan untuk disampaikan ke kontainer. Parameter ini sesuai dengan `Env` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--env` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).  
Kami tidak merekomendasikan Anda menggunakan variabel lingkungan plaintext untuk informasi sensitif, seperti data kredensial.
Variabel lingkungan tidak boleh dimulai dengan `AWS_BATCH`. Konvensi penamaan ini dicadangkan untuk variabel yang ditetapkan oleh AWS Batch layanan.
Jenis: Array pasangan nilai-kunci  
Wajib: Tidak    
`name`  
Nama variabel lingkungan.  
Tipe: String  
Wajib: Ya, ketika `environment` digunakan.  
`value`  
Nilai variabel lingkungan.  
Tipe: String  
Wajib: Ya, ketika `environment` digunakan.

```
"environment" : [
    { "name" : "envName1", "value" : "envValue1" },
    { "name" : "envName2", "value" : "envValue2" }
]
```

`executionRoleArn`  
Ketika mendaftarkan ketentuan tugas, Anda dapat menentukan IAM role. Peran tersebut memberikan izin kepada agen kontainer Amazon ECS untuk memanggil tindakan API yang ditentukan dalam kebijakannya yang terkait atas nama Anda. Pekerjaan yang berjalan pada sumber daya Fargate harus memberikan peran eksekusi. Untuk informasi selengkapnya, lihat [AWS Batch Peran eksekusi IAM](execution-IAM-role.md).  
Tipe: String  
Wajib: Tidak

`fargatePlatformConfiguration`  
Konfigurasi platform untuk pekerjaan yang berjalan pada sumber daya Fargate. Pekerjaan yang berjalan pada EC2 sumber daya tidak boleh menentukan parameter ini.  
Tipe: Objek [FargatePlatformConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_FargatePlatformConfiguration.html)  
Wajib: Tidak    
`platformVersion`  
Versi platform AWS Fargate digunakan untuk pekerjaan, atau `LATEST` untuk menggunakan versi terbaru yang disetujui dari platform Fargate AWS .  
Tipe: String  
Default: `LATEST`  
Wajib: Tidak

`image`  
Citra yang digunakan untuk memulai tugas. String ini disampaikan langsung ke daemon Docker. Gambar di registri Docker Hub tersedia secara default. Anda juga dapat menentukan repositori lainnya dengan `repository-url/image:tag`. Maksimum 255 huruf (huruf besar dan huruf kecil), angka, tanda hubung, garis bawah, titik dua, titik miring ke depan, dan tanda pagar diperbolehkan. Parameter ini sesuai dengan `Image` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan `IMAGE` parameter [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).  
Arsitektur gambar Docker harus sesuai dengan arsitektur prosesor sumber daya komputasi tempatnya dijadwalkan. Sebagai contoh, gambar Docker berbasis ARM hanya dapat berjalan pada sumber daya komputasi berbasis ARM.
+ Gambar di Amazon ECR Repositori Publik menggunakan konvensi lengkap `registry/repository[:tag]` atau `registry/repository[@digest]` penamaan (misalnya,). `public.ecr.aws/registry_alias/my-web-app:latest`
+ Gambar di repositori Amazon ECR menggunakan konvensi penamaan `registry/repository:[tag]` lengkap. Misalnya, `aws_account_id.dkr.ecr.region.amazonaws.com``/my-web-app:latest`.
+ Gambar di repositori resmi di Docker Hub menggunakan satu nama (misalnya, `ubuntu` atau `mongo`).
+ Gambar di repositori lain di Docker Hub memenuhi syarat dengan nama organisasi (misalnya, `amazon/amazon-ecs-agent`).
+ Gambar di repositori online lainnya memenuhi syarat lebih lanjut dengan nama domain (misalnya, `quay.io/assemblyline/ubuntu`).
Tipe: String  
Diperlukan: Ya

`instanceType`  
Tipe instans yang digunakan untuk tugas paralel multisimpul. Semua kelompok simpul dalam pekerjaan paralel multi-simpul harus menggunakan tipe instans yang sama. Parameter ini tidak valid untuk pekerjaan kontainer simpul tunggal atau untuk pekerjaan yang berjalan pada sumber daya Fargate.  
Tipe: String  
Wajib: Tidak

`jobRoleArn`  
Ketika mendaftarkan ketentuan tugas, Anda dapat menentukan IAM role. Peran tersebut memberikan izin kepada kontainer tugas untuk memanggil tindakan API yang ditentukan dalam kebijakannya yang terkait atas nama Anda. Untuk informasi lebih lanjut, lihat [IAM Role untuk Tugas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) dalam *Panduan Developer Amazon Elastic Container Service*.  
Tipe: String  
Wajib: Tidak

`linuxParameters`  
Modifikasi khusus Linux yang diterapkan ke kontainer, seperti detail untuk pemetaan perangkat.  

```
"linuxParameters": {
    "devices": [
        {
            "hostPath": "string",
            "containerPath": "string",
            "permissions": [
                "READ", "WRITE", "MKNOD"
            ]
        }
    ],
    "initProcessEnabled": true|false,
    "sharedMemorySize": 0,
    "tmpfs": [
        {
            "containerPath": "string",
            "size": integer,
            "mountOptions": [
                "string"
            ]
        }
    ],
    "maxSwap": integer,
    "swappiness": integer
}
```
Tipe: Objek [LinuxParameters](https://docs.aws.amazon.com/batch/latest/APIReference/API_LinuxParameters.html)  
Wajib: Tidak    
`devices`  
Daftar perangkat yang dipetakan ke kontainer. Parameter ini sesuai dengan `Devices` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--device` untuk [docker run](https://docs.docker.com/engine/reference/run/).  
Parameter ini tidak berlaku untuk pekerjaan yang berjalan pada sumber daya Fargate.
Tipe: Array objek [Perangkat](https://docs.aws.amazon.com/batch/latest/APIReference/API_Device.html)  
Wajib: Tidak    
`hostPath`  
Jalur tempat perangkat tersedia dalam instans kontainer host.  
Tipe: String  
Diperlukan: Ya  
`containerPath`  
Jalur tempat perangkat diungkap dalam kontainer. Jika ini tidak ditentukan, perangkat akan diungkap di jalur yang sama dengan jalur host.  
Tipe: String  
Wajib: Tidak  
`permissions`  
Izin untuk perangkat dalam kontainer. Jika hal ini tidak ditentukan, izin ditetapkan ke `READ`, `WRITE`, dan `MKNOD`.  
Tipe: Array string  
Wajib: Tidak  
Nilai yang valid: `READ` \$1 `WRITE` \$1 `MKNOD`  
`initProcessEnabled`  
Jika betul, jalankan proses `init` di dalam kontainer yang meneruskan sinyal dan melakukan reaping pada proses. Parameter ini sesuai dengan opsi `--init` untuk [docker run](https://docs.docker.com/engine/reference/run/). Parameter ini memerlukan Docker Remote API versi 1.25 atau lebih besar di instans kontainer Anda. Untuk memeriksa versi Docker Remote API di instans kontainer Anda, masuk ke instans kontainer Anda dan jalankan perintah berikut: `sudo docker version | grep "Server API version"`  
Tipe: Boolean  
Wajib: Tidak  
`maxSwap`  
Jumlah total memori swap (dalam MiB) yang dapat digunakan oleh tugas. Parameter ini diterjemahkan ke opsi `--memory-swap` untuk [docker run](https://docs.docker.com/engine/reference/run/) di mana nilai adalah jumlah memori kontainer ditambah nilai `maxSwap`. Untuk informasi lebih lanjut, lihat [detail `--memory-swap`](https://docs.docker.com/config/containers/resource_constraints/#--memory-swap-details) dalam dokumentasi Docker.  
Jika nilai `maxSwap` sebesar `0` ditentukan, kontainer tidak menggunakan swap. Nilai yang diterima adalah `0` atau bilangan bulat positif. Jika `maxSwap` parameter dihilangkan, kontainer menggunakan konfigurasi swap untuk instance container yang dijalankannya. Nilai `maxSwap` harus ditetapkan untuk parameter `swappiness` yang akan digunakan.  
Parameter ini tidak berlaku untuk pekerjaan yang berjalan pada sumber daya Fargate.
Tipe: Integer  
Wajib: Tidak  
`sharedMemorySize`  
Nilai untuk ukuran (dalam MiB) volume `/dev/shm`. Parameter ini sesuai dengan opsi `--shm-size` untuk [docker run](https://docs.docker.com/engine/reference/run/).  
Parameter ini tidak berlaku untuk pekerjaan yang berjalan pada sumber daya Fargate.
Tipe: Integer  
Wajib: Tidak  
`swappiness`  
Anda dapat menggunakan ini untuk menyetel perilaku swappiness memori kontainer. Nilai `swappiness` sebesar `0` menyebabkan swapping tidak terjadi kecuali benar-benar diperlukan. `swappiness`Nilai `100` penyebab halaman ditukar secara agresif. Nilai yang diterima adalah bilangan bulat antara `0` dan `100`. Jika parameter `swappiness` tidak ditentukan, nilai default sebesar `60` akan digunakan. Jika nilai tidak ditentukan untuk `maxSwap`, parameter ini akan diabaikan. Jika `maxSwap` diatur ke 0, kontainer tidak menggunakan swap. Parameter ini sesuai dengan opsi `--memory-swappiness` untuk [docker run](https://docs.docker.com/engine/reference/run/).  
Pertimbangkan hal berikut ketika Anda menggunakan konfigurasi swap per kontainer.  
+ Ruang tukar harus diaktifkan dan dialokasikan di instans kontainer untuk kontainer yang akan digunakan.
**catatan**  
Amazon ECS yang dioptimalkan AMIs tidak mengaktifkan swap secara default. Anda harus mengaktifkan swap di instans untuk menggunakan fitur ini. Untuk informasi selengkapnya, lihat [Volume Swap Toko Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-store-swap-volumes.html) di *Panduan EC2 Pengguna Amazon* atau [Bagaimana cara mengalokasikan memori agar berfungsi sebagai ruang swap di EC2 instans Amazon menggunakan file swap?](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-memory-swap-file/) .
+ Parameter ruang swap hanya didukung untuk definisi pekerjaan menggunakan EC2 sumber daya.
+ Jika `swappiness` parameter `maxSwap` dan dihilangkan dari definisi pekerjaan, setiap kontainer memiliki `swappiness` nilai default 60. Total penggunaan swap dibatasi hingga dua kali reservasi memori kontainer.
Parameter ini tidak berlaku untuk pekerjaan yang berjalan pada sumber daya Fargate.
Tipe: Integer  
Wajib: Tidak  
`tmpfs`  
Jalur kontainer, opsi pemasangan, dan ukuran pemasangan tmpfs.  
Tipe: Array objek [Tmpfs](https://docs.aws.amazon.com/batch/latest/APIReference/API_Tmpfs.html)  
Parameter ini tidak berlaku untuk pekerjaan yang berjalan pada sumber daya Fargate.
Wajib: Tidak    
`containerPath`  
Jalur file absolut dalam kontainer tempat volume tmpfs terpasang.  
Tipe: String  
Diperlukan: Ya  
`mountOptions`  
Daftar opsi pemasangan volume tmpfs.  
Nilai yang valid: "`defaults`" \$1 "`ro`" \$1 "`rw`" \$1 "`suid`" \$1 "`nosuid`" \$1 "`dev`" \$1 "`nodev`" \$1 "`exec`" \$1 "`noexec`" \$1 "`sync`" \$1 "`async`" \$1 "`dirsync`" \$1 "`remount`" \$1 "`mand`" \$1 "`nomand`" \$1 "`atime`" \$1 "`noatime`" \$1 "`diratime`" \$1 "`nodiratime`" \$1 "`bind`" \$1 "`rbind`" \$1 "`unbindable`" \$1 "`runbindable`" \$1 "`private`" \$1 "`rprivate`" \$1 "`shared`" \$1 "`rshared`" \$1 "`slave`" \$1 "`rslave`" \$1 "`relatime`" \$1 "`norelatime`" \$1 "`strictatime`" \$1 "`nostrictatime`" \$1 "`mode`" \$1 "`uid`" \$1 "`gid`" \$1 "`nr_inodes`" \$1 "`nr_blocks`" \$1 "`mpol`"  
Tipe: Array string  
Wajib: Tidak  
`size`  
Ukuran (dalam MiB) volume tmpfs.  
Jenis: Integer  
Wajib: Ya

`logConfiguration`  
Spesifikasi konfigurasi log untuk tugas.  
Parameter ini sesuai dengan `LogConfig` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--log-driver` untuk [docker run](https://docs.docker.com/engine/reference/run/). Secara default, kontainer menggunakan driver pencatatan yang sama dengan yang digunakan daemon Docker. Namun, penampung dapat menggunakan driver logging yang berbeda dari daemon Docker dengan menentukan driver log dengan parameter ini dalam definisi container. Untuk menggunakan driver pencatatan yang berbeda untuk suatu kontainer, sistem log harus dikonfigurasi di instans kontainer atau di server log lain untuk menyediakan opsi pencatatan jarak jauh. Untuk informasi lebih lanjut tentang opsi untuk berbagai driver log yang didukung, lihat [Mengonfigurasi driver pencatatan](https://docs.docker.com/engine/admin/logging/overview/) dalam dokumentasi Docker.  
AWS Batch saat ini mendukung subset dari driver logging yang tersedia untuk daemon Docker (ditampilkan dalam tipe data). [LogConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html)
Parameter ini memerlukan Docker Remote API versi 1.18 atau lebih besar pada instans kontainer Anda. Untuk memeriksa versi Docker Remote API pada instans kontainer Anda, masuk ke instans kontainer Anda dan jalankan perintah berikut: `sudo docker version | grep "Server API version"`   

```
"logConfiguration": {
    "devices": [
        {
            "logDriver": "string",
            "options": {
                "optionName1" : "optionValue1",
                "optionName2" : "optionValue2"
            }
            "secretOptions": [
              {
                  "name" : "secretOptionName1",
                  "valueFrom" : "secretOptionArn1"
              },
              {
                  "name" : "secretOptionName2",
                  "valueFrom" : "secretOptionArn2"
              }
            ]
        }
    ]
}
```
Tipe: Objek [LogConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html)  
Wajib: Tidak    
`logDriver`  
Driver log yang akan digunakan untuk tugas. Secara default, AWS Batch mengaktifkan driver `awslogs` log. Nilai valid yang tercantum untuk parameter ini adalah driver log yang dapat berkomunikasi dengan agen penampung Amazon ECS secara default.  
Parameter ini sesuai dengan `LogConfig` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--log-driver` untuk [docker run](https://docs.docker.com/engine/reference/run/). Secara default, tugas menggunakan driver pencatatan yang sama dengan yang digunakan daemon Docker. Namun, tugas dapat menggunakan driver pencatatan yang berbeda dari daemon Docker dengan menentukan driver log dengan parameter ini dalam ketentuan tugas. Jika Anda ingin menentukan driver logging lain untuk suatu pekerjaan, sistem log harus dikonfigurasi pada instance container di lingkungan komputasi. Atau, sebagai alternatif, konfigurasikan di server log lain untuk menyediakan opsi logging jarak jauh. Untuk informasi lebih lanjut tentang opsi untuk berbagai driver log yang didukung, lihat [Mengonfigurasi driver pencatatan](https://docs.docker.com/engine/admin/logging/overview/) dalam dokumentasi Docker.  
AWS Batch saat ini mendukung subset dari driver logging yang tersedia untuk daemon Docker. Driver log tambahan mungkin tersedia di rilis mendatang agen kontainer Amazon ECS.
Driver log yang didukung adalah `awslogs`, `fluentd`, `gelf`, `json-file`, `journald`, `logentries`, `syslog`, dan `splunk`.  
Pekerjaan yang berjalan pada sumber daya Fargate dibatasi untuk driver `splunk` log `awslogs` dan log.
Parameter ini memerlukan Docker Remote API versi 1.18 atau lebih besar pada instans kontainer Anda. Untuk memeriksa versi Docker Remote API pada instans kontainer Anda, masuk ke instans kontainer Anda dan jalankan perintah berikut: `sudo docker version | grep "Server API version"`  
Agen penampung Amazon ECS yang berjalan pada instance container harus mendaftarkan driver logging yang tersedia pada instance tersebut dengan variabel `ECS_AVAILABLE_LOGGING_DRIVERS` lingkungan. Jika tidak, kontainer yang ditempatkan di instans tersebut tidak dapat menggunakan opsi konfigurasi log ini. Untuk informasi lebih lanjut, lihat, [Konfigurasi Agen Kontainer Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) dalam *Panduan Developer Amazon Elastic Container Service*.  
`awslogs`  
Menentukan driver logging Amazon CloudWatch Logs. Untuk informasi selengkapnya, lihat [Gunakan driver log awslogs](using_awslogs.md) dan [driver logging Amazon CloudWatch Logs](https://docs.docker.com/config/containers/logging/awslogs/) di dokumentasi Docker.  
`fluentd`  
Menentukan driver pencatatan Fluentd. Untuk informasi selengkapnya termasuk penggunaan dan opsi, lihat [Driver logging fluentd](https://docs.docker.com/config/containers/logging/fluentd/) di dokumentasi Docker.  
`gelf`  
Menentukan driver pencatatan Graylog Extended Format (GELF). Untuk informasi selengkapnya termasuk penggunaan dan opsi, lihat [driver logging Graylog Extended Format](https://docs.docker.com/config/containers/logging/gelf/) di dokumentasi Docker.  
`journald`  
Menentukan driver pencatatan journald. Untuk informasi selengkapnya termasuk penggunaan dan opsi, lihat [driver logging Journald](https://docs.docker.com/config/containers/logging/journald/) di dokumentasi Docker.  
`json-file`  
Menentukan driver pencatatan file JSON. Untuk informasi selengkapnya termasuk penggunaan dan opsi, lihat [Driver logging File JSON](https://docs.docker.com/config/containers/logging/json-file/) di dokumentasi Docker.  
`splunk`  
Menentukan driver pencatatan Splunk. Untuk informasi selengkapnya termasuk penggunaan dan opsi, lihat [Splunk logging driver](https://docs.docker.com/config/containers/logging/splunk/) di dokumentasi Docker.  
`syslog`  
Menentukan driver pencatatan syslog. Untuk informasi selengkapnya termasuk penggunaan dan opsi, lihat [Driver logging Syslog](https://docs.docker.com/config/containers/logging/syslog/) di dokumentasi Docker.
Tipe: String  
Diperlukan: Ya  
Nilai yang valid: `awslogs` \$1 `fluentd` \$1 `gelf` \$1 `journald` \$1 `json-file` \$1 `splunk` \$1 `syslog`  
Jika Anda memiliki driver khusus yang tidak terdaftar sebelumnya yang ingin Anda gunakan dengan agen kontainer Amazon ECS, Anda dapat melakukan fork proyek agen kontainer Amazon ECS yang [tersedia GitHub](https://github.com/aws/amazon-ecs-agent) dan menyesuaikannya agar berfungsi dengan driver tersebut. Kami mendorong Anda untuk mengirim permintaan tarik untuk perubahan yang ingin Anda sertakan. Namun, Amazon Web Services saat ini tidak mendukung permintaan yang menjalankan salinan modifikasi dari perangkat lunak ini.  
`options`  
Opsi konfigurasi log untuk dikirim ke driver log untuk tugas.  
Parameter ini memerlukan Docker Remote API versi 1.19 atau lebih besar di instans kontainer Anda.  
Tipe: Peta antar string  
Wajib: Tidak  
`secretOptions`  
Objek yang mewakili rahasia untuk diteruskan ke konfigurasi log. Untuk informasi selengkapnya, lihat [Tentukan data sensitif](specifying-sensitive-data.md).  
Tipe: array objek  
Wajib: Tidak    
`name`  
Nama opsi driver log yang akan ditetapkan dalam tugas.  
Tipe: String  
Diperlukan: Ya  
`valueFrom`  
Nama Sumber Daya Amazon (ARN) dari rahasia untuk mengekspos ke konfigurasi log wadah. Nilai yang didukung adalah ARN lengkap dari rahasia Secrets Manager atau ARN lengkap dari parameter di SSM Parameter Store.  
Jika parameter Penyimpanan Parameter SSM Wilayah AWS sama dengan tugas yang Anda luncurkan, maka Anda dapat menggunakan ARN lengkap atau nama parameter. Jika parameter ada di Wilayah yang berbeda, ARN lengkap harus disebutkan.
Tipe: String  
Diperlukan: Ya

`memory`  
*Parameter ini sudah usang, gunakan sebagai gantinya. `resourceRequirements`*  
Jumlah memori MiB yang disediakan untuk pekerjaan itu.  
Sebagai contoh untuk cara menggunakan`resourceRequirements`, jika definisi pekerjaan Anda berisi sintaks yang mirip dengan berikut ini.  

```
"containerProperties": {
  "memory": 512
}
```
Sintaks yang setara menggunakan `resourceRequirements` adalah sebagai berikut.  

```
"containerProperties": {
  "resourceRequirements": [
    {
      "type": "MEMORY",
      "value": "512"
    }
  ]
}
```
Jenis: Integer  
Wajib: Ya

`mountPoints`  
Titik pemasangan untuk volume data dalam kontainer Anda. Parameter ini sesuai dengan `Volumes` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--volume` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).  

```
"mountPoints": [
                {
                  "sourceVolume": "string",
                  "containerPath": "string",
                  "readOnly": true|false
                }
              ]
```
Tipe: Array objek  
Wajib: Tidak    
`sourceVolume`  
Nama volume yang akan dipasang.  
Tipe: String  
Wajib: Ya, ketika `mountPoints` digunakan.  
`containerPath`  
Path di kontainer tempat memasang volume host.  
Tipe: String  
Wajib: Ya, ketika `mountPoints` digunakan.  
`readOnly`  
Jika nilai ini adalah `true`, kontainer memiliki akses hanya-baca ke volume. Jika nilai ini adalah `false`, kontainer bisa menulis ke volume.  
Tipe: Boolean  
Wajib: Tidak  
Default: Salah

`networkConfiguration`  
Konfigurasi jaringan untuk pekerjaan yang berjalan pada sumber daya Fargate. Pekerjaan yang berjalan pada EC2 sumber daya tidak boleh menentukan parameter ini.  

```
"networkConfiguration": { 
   "assignPublicIp": "string"
}
```
Tipe: Array objek  
Wajib: Tidak    
`assignPublicIp`  
Menunjukkan apakah pekerjaan memiliki alamat IP publik. Hal ini diperlukan jika tugas membutuhkan akses jaringan keluar.  
Tipe: String  
Nilai yang valid: `ENABLED` \$1 `DISABLED`  
Wajib: Tidak  
Default: `DISABLED`

`privileged`  
Jika parameter ini betul, kontainer akan diberikan izin tingkat tinggi di instans kontainer host (mirip dengan pengguna `root`). Parameter ini sesuai dengan `Privileged` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--privileged` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Parameter ini tidak berlaku untuk pekerjaan yang berjalan pada sumber daya Fargate. Jangan berikan atau tentukan sebagai false.  

```
"privileged": true|false
```
Tipe: Boolean  
Wajib: Tidak

`readonlyRootFilesystem`  
Jika parameter ini betul, kontainer diberikan akses hanya-baca ke sistem file asalnya. Parameter ini sesuai dengan `ReadonlyRootfs` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--read-only` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).  

```
"readonlyRootFilesystem": true|false
```
Tipe: Boolean  
Wajib: Tidak

`resourceRequirements`  
Jenis dan jumlah sumber daya yang akan ditetapkan ke kontainer. Sumber daya yang didukung mencakup `GPU`, `MEMORY`, dan `VCPU`.  

```
"resourceRequirements" : [
  {
    "type": "GPU",
    "value": "number"
  }
]
```
Tipe: Array objek  
Wajib: Tidak    
`type`  
Jenis sumber daya yang akan ditetapkan ke kontainer. Sumber daya yang didukung mencakup `GPU`, `MEMORY`, dan `VCPU`.  
Tipe: String  
Wajib: Ya, ketika `resourceRequirements` digunakan.  
`value`  
Kuantitas sumber daya yang ditentukan untuk disimpan bagi kontainer. Nilainya bervariasi berdasarkan `type` yang ditentukan.    
type="GPU"  
Jumlah fisik yang GPUs akan dicadangkan untuk wadah. Jumlah GPUs cadangan untuk semua kontainer dalam suatu pekerjaan tidak dapat melebihi jumlah yang tersedia GPUs pada sumber daya komputasi tempat pekerjaan diluncurkan.  
tipe="MEMORY"  
Batas keras (dalam MiB) memori yang diberikan ke kontainer. Jika kontainer Anda mencoba untuk melebihi memori yang ditentukan di sini, kontainer akan dimatikan. Parameter ini sesuai dengan `Memory` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--memory` untuk [docker run](https://docs.docker.com/engine/reference/run/). Anda harus menentukan sedikitnya 4 MiB memori untuk sebuah tugas. Hal ini wajib, tetapi dapat ditentukan di beberapa tempat untuk tugas paralel multisimpul (MNP). Ini harus ditentukan untuk setiap simpul setidaknya satu kali. Parameter ini sesuai dengan `Memory` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--memory` untuk [docker run](https://docs.docker.com/engine/reference/run/).  
Jika Anda mencoba memaksimalkan pemanfaatan sumber daya dengan menyediakan memori sebanyak mungkin bagi tugas untuk tipe instans tertentu, lihat [Menghitung manajemen memori sumber daya](memory-management.md).
Untuk pekerjaan yang berjalan pada sumber daya Fargate, maka `value` harus cocok dengan salah satu nilai yang didukung. Selain itu, `VCPU` nilai harus menjadi salah satu nilai yang didukung untuk nilai memori tersebut.      
<a name="Fargate-memory-vcpu"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/batch/latest/userguide/job_definition_parameters.html)  
type="VCPU"  
Jumlah v yang CPUs dicadangkan untuk pekerjaan itu. Parameter ini sesuai dengan `CpuShares` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--cpu-shares` untuk [docker run](https://docs.docker.com/engine/reference/run/). Setiap vCPU setara dengan 1.024 bagian CPU. Untuk pekerjaan yang berjalan pada EC2 sumber daya, Anda harus menentukan setidaknya satu vCPU. Hal ini wajib, tetapi dapat ditentukan di beberapa tempat. Itu harus ditentukan setidaknya sekali untuk setiap node.  
Untuk pekerjaan yang berjalan di sumber daya Fargate, `value` harus cocok dengan salah satu nilai yang didukung dan `MEMORY` nilai harus menjadi salah satu nilai yang didukung untuk nilai VCPU tersebut. Nilai yang didukung adalah 0,25, 0,5, 1, 2, 4, 8, dan 16.  
Default untuk kuota jumlah sumber daya vCPU Fargate On-Demand adalah 6 v. CPUs Untuk informasi lebih lanjut tentang kuota Fargate, lihat kuota [AWS Fargate](https://docs.aws.amazon.com/general/latest/gr/ecs-service.html#service-quotas-fargate) di. *Referensi Umum Amazon Web*
Tipe: String  
Wajib: Ya, ketika `resourceRequirements` digunakan.

`secrets`  
Rahasia untuk tugas yang diungkap sebagai variabel lingkungan. Untuk informasi selengkapnya, lihat [Tentukan data sensitif](specifying-sensitive-data.md).  

```
"secrets": [
    {
      "name": "secretName1",
      "valueFrom": "secretArn1"
    },
    {
      "name": "secretName2",
      "valueFrom": "secretArn2"
    }
    ...
]
```
Tipe: Array objek  
Wajib: Tidak    
`name`  
Nama variabel lingkungan yang berisi rahasia.  
Tipe: String  
Wajib: Ya, ketika `secrets` digunakan.  
  
`valueFrom`  
Rahasia yang akan diungkap ke kontainer. Nilai yang didukung adalah Nama Sumber Daya Amazon (ARN) lengkap dari rahasia Secrets Manager atau ARN lengkap parameter di SSM Parameter Store.  
Jika parameter Penyimpanan Parameter SSM Wilayah AWS sama dengan pekerjaan yang Anda luncurkan, maka Anda dapat menggunakan ARN lengkap atau nama parameter. Jika parameter ada di Wilayah yang berbeda, ARN lengkap harus disebutkan.
Tipe: String  
Wajib: Ya, ketika `secrets` digunakan.

`ulimits`  
Daftar nilai `ulimits` yang akan ditetapkan dalam kontainer. Parameter ini sesuai dengan `Ulimits` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--ulimit` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).   

```
"ulimits": [
  {
    "name": string,
    "softLimit": integer,
    "hardLimit": integer
  }
  ...
]
```
Tipe: Array objek  
Wajib: Tidak    
`name`  
Parameter `type` dari `ulimit`.  
Tipe: String  
Wajib: Ya, ketika `ulimits` digunakan.  
  
`hardLimit`  
Batas keras untuk tipe `ulimit`.  
Jenis: Integer  
Wajib: Ya, ketika `ulimits` digunakan.  
  
`softLimit`  
Batas lunak untuk tipe `ulimit`.  
Jenis: Integer  
Wajib: Ya, ketika `ulimits` digunakan.  


`user`  
Nama pengguna untuk digunakan di dalam kontainer. Parameter ini sesuai dengan `User` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan opsi `--user` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).  

```
"user": "string"
```
Tipe: String  
Wajib: Tidak

`vcpus`  
*Parameter ini sudah usang, gunakan sebagai gantinya. `resourceRequirements`*  
Jumlah v yang CPUs dicadangkan untuk wadah.  
Sebagai contoh cara menggunakan`resourceRequirements`, jika definisi pekerjaan Anda berisi baris yang mirip dengan ini:  

```
"containerProperties": {
  "vcpus": 2
}
```
Garis setara yang digunakan `resourceRequirements` adalah sebagai berikut.  

```
"containerProperties": {
  "resourceRequirements": [
    {
      "type": "VCPU",
      "value": "2"
    }
  ]
}
```
Jenis: Integer  
Wajib: Ya

`volumes`  
Ketika mendaftarkan ketentuan tugas, Anda dapat menentukan daftar volume yang disampaikan ke daemon Docker di instans kontainer. Parameter berikut diperbolehkan dalam properti kontainer:  

```
"volumes": [
  {
    "name": "string",
    "host": {
      "sourcePath": "string"
    },
    "efsVolumeConfiguration": {
      "authorizationConfig": {
        "accessPointId": "string",
        "iam": "string"
      },
      "fileSystemId": "string",
      "rootDirectory": "string",
      "transitEncryption": "string",
      "transitEncryptionPort": number
    }
  }
]
```  
`name`  
Nama volume. Maksimum 255 huruf (huruf besar dan huruf kecil), angka, tanda hubung, dan garis bawah diperbolehkan. Nama ini direferensikan dalam parameter `sourceVolume` dari ketentuan kontainer `mountPoints`.  
Tipe: String  
Wajib: Tidak  
`host`  
Isi dari parameter `host` menentukan apakah volume data Anda tetap di instans kontainer host atau tidak dan di mana itu disimpan. Jika parameter `host` kosong, daemon Docker menetapkan jalur host untuk volume data Anda. Namun, data tidak dijamin bertahan setelah kontainer yang terkait dengannya berhenti berjalan.  
Parameter ini tidak berlaku untuk pekerjaan yang berjalan pada sumber daya Fargate.
Tipe: Objek  
Wajib: Tidak    
`sourcePath`  
Jalur di instans kontainer host yang disajikan untuk kontainer. Jika parameter ini kosong, daemon Docker akan menetapkan jalur host untuk Anda.  
Jika parameter `host` berisi lokasi file `sourcePath`, volume data akan tetap di lokasi yang ditentukan di instans kontainer host sampai Anda menghapusnya secara manual. Jika nilai `sourcePath` tidak ada di instans kontainer host, daemon Docker akan membuatnya. Jika lokasi ada, konten folder jalur sumber akan diekspor.  
Tipe: String  
Wajib: Tidak  
`efsVolumeConfiguration`  
Parameter ini ditentukan ketika Anda menggunakan sistem file Amazon Elastic File System untuk penyimpanan tugas. Untuk informasi selengkapnya, lihat [Volume Amazon EFS](efs-volumes.md).  
Tipe: Objek  
Wajib: Tidak    
`authorizationConfig`  
Detail konfigurasi otorisasi untuk sistem file Amazon EFS.  
Tipe: String  
Wajib: Tidak    
`accessPointId`  
ID titik akses Amazon EFS yang akan digunakan. Jika jalur akses ditentukan, nilai direktori asal yang ditentukan di `EFSVolumeConfiguration` harus diabaikan atau diatur ke `/`. Ini akan memberlakukan jalur yang ditetapkan pada titik akses EFS. Jika titik akses digunakan, enkripsi transit harus diaktifkan di `EFSVolumeConfiguration`. Untuk informasi lebih lanjut, lihat [Bekerja dengan Titik Akses Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) dalam *Panduan Pengguna Amazon Elastic File System*.  
Tipe: String  
Wajib: Tidak  
`iam`  
Menentukan apakah akan menggunakan peran IAM AWS Batch job yang ditentukan dalam definisi pekerjaan saat memasang sistem file Amazon EFS. Jika diaktifkan, enkripsi transit harus diaktifkan di `EFSVolumeConfiguration`. Jika parameter ini diabaikan, nilai default `DISABLED` akan digunakan. Untuk informasi selengkapnya, lihat [Gunakan titik akses Amazon EFS](efs-volumes.md#efs-volume-accesspoints).  
Tipe: String  
Nilai yang valid: `ENABLED` \$1 `DISABLED`  
Wajib: Tidak  
`fileSystemId`  
ID sistem file Amazon EFS yang akan digunakan.  
Tipe: String  
Wajib: Tidak  
`rootDirectory`  
Direktori dalam sistem file Amazon EFS untuk pemasangan sebagai direktori asal di dalam host. Jika parameter ini diabaikan, asal volume Amazon EFS akan digunakan. Jika Anda menentukan `/`, efeknya akan sama seperti menghilangkan parameter ini. Panjang maksimum adalah 4.096 karakter.  
Jika titik akses EFS ditentukan dalam `authorizationConfig`, parameter direktori asal harus diabaikan atau diatur ke `/`. Ini memberlakukan jalur yang ditetapkan di titik akses Amazon EFS.
Tipe: String  
Wajib: Tidak  
`transitEncryption`  
Menentukan apakah akan mengaktifkan enkripsi untuk data Amazon EFS saat transit antara host Amazon ECS dan server Amazon EFS. Enkripsi transit harus diaktifkan jika otorisasi IAM Amazon EFS digunakan. Jika parameter ini diabaikan, nilai default `DISABLED` akan digunakan. Untuk informasi lebih lanjut, lihat [Mengenkripsi data saat transit](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) dalam *Panduan Pengguna Amazon Elastic File System*.  
Tipe: String  
Nilai yang valid: `ENABLED` \$1 `DISABLED`  
Wajib: Tidak  
`transitEncryptionPort`  
Port yang akan digunakan saat mengirim data terenkripsi antara host Amazon ECS dan server Amazon EFS. Jika Anda tidak menentukan port enkripsi transit, strategi pemilihan port yang digunakan oleh pembantu pemasangan Amazon EFS akan digunakan. Nilai harus antara 0 dan 65.535. Untuk informasi lebih lanjut, lihat [Pembantu Pemasangan EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) dalam *Panduan Pengguna Amazon Elastic File System*.  
Tipe: Integer  
Wajib: Tidak

## Properti Amazon EKS
<a name="job-definition-parameters-eks-properties"></a>

Objek dengan berbagai properti yang khusus untuk pekerjaan berbasis Amazon EKS. Ini tidak boleh ditentukan untuk definisi pekerjaan berbasis Amazon ECS.

`podProperties`  
Properti untuk sumber daya Kubernetes pod suatu pekerjaan.  
Tipe: Objek [EksPodProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPodProperties.html)  
Wajib: Tidak    
`containers`  
Properti wadah yang digunakan pada pod Amazon EKS.  
Tipe: Objek [EksContainer](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksContainer.html)  
Wajib: Tidak    
`args`  
Sebuah array argumen ke entrypoint. Jika ini tidak ditentukan, gambar `CMD` kontainer digunakan. Ini sesuai dengan `args` anggota di bagian [Entrypoint](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint) dari [Pod](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/) di. Kubernetes Referensi variabel lingkungan diperluas menggunakan lingkungan kontainer.  
Jika variabel lingkungan yang direferensikan tidak ada, referensi dalam perintah tidak diubah. Misalnya, jika referensinya adalah `$(NAME1)` "" dan variabel `NAME1` lingkungan tidak ada, string perintah akan tetap "`$(NAME1)`.” `$$`diganti dengan`$`, dan string yang dihasilkan tidak diperluas. Misalnya, `$$(VAR_NAME)` diteruskan sebagai `$(VAR_NAME)` apakah variabel `VAR_NAME` lingkungan ada atau tidak. *Untuk informasi selengkapnya, lihat [CMD](https://docs.docker.com/engine/reference/builder/#cmd) di *referensi Dockerfile* dan [Mendefinisikan perintah dan argumen untuk pod](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/) dalam dokumentasi. Kubernetes*  
Tipe: Array string  
Wajib: Tidak  
`command`  
Titik masuk untuk wadah. Ini tidak dijalankan di dalam shell. Jika ini tidak ditentukan, gambar `ENTRYPOINT` kontainer digunakan. Referensi variabel lingkungan diperluas menggunakan lingkungan kontainer.  
Jika variabel lingkungan yang direferensikan tidak ada, referensi dalam perintah tidak diubah. Misalnya, jika referensinya adalah `$(NAME1)` "" dan variabel `NAME1` lingkungan tidak ada, string perintah akan tetap "`$(NAME1)`.” `$$`diganti dengan `$` dan string yang dihasilkan tidak diperluas. Misalnya, `$$(VAR_NAME)` akan diteruskan sebagai `$(VAR_NAME)` apakah variabel `VAR_NAME` lingkungan ada atau tidak. Titik masuk tidak dapat diperbarui. *Untuk informasi selengkapnya, lihat [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) dalam *referensi Dockerfile* dan [Mendefinisikan perintah dan argumen untuk wadah](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/) dan [Entrypoint](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint) dalam dokumentasi. Kubernetes*  
Tipe: Array string  
Wajib: Tidak  
`env`  
Variabel lingkungan untuk disampaikan ke kontainer.  
Variabel lingkungan tidak dapat dimulai dengan "`AWS_BATCH`”. Konvensi penamaan ini dicadangkan untuk variabel yang AWS Batch menetapkan.
Tipe: Array objek [EksContainerEnvironmentVariable](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksContainerEnvironmentVariable.html)  
Wajib: Tidak    
`name`  
Nama variabel lingkungan.  
Tipe: String  
Diperlukan: Ya  
`value`  
Nilai dari variabel lingkungan.  
Tipe: String  
Wajib: Tidak  
`image`  
Gambar Docker digunakan untuk memulai wadah.  
Tipe: String  
Diperlukan: Ya  
`imagePullPolicy`  
Kebijakan tarik gambar untuk wadah. Nilai yang didukung adalah `Always`, `IfNotPresent`, dan `Never`. Parameter ini menjadi default ke `IfNotPresent`. Namun, jika `:latest` tag ditentukan, defaultnya. `Always` Untuk informasi selengkapnya, lihat [Memperbarui gambar](https://kubernetes.io/docs/concepts/containers/images/#updating-images) dalam *Kubernetesdokumentasi*.  
Tipe: String  
Wajib: Tidak  
`name`  
Nama kontainer. Jika nama tidak ditentukan, nama default "`Default`" digunakan. Setiap kontainer dalam pod harus memiliki nama yang unik.  
Tipe: String  
Wajib: Tidak  
`resources`  
Jenis dan jumlah sumber daya untuk ditugaskan ke kontainer. Sumber daya yang didukung mencakup `memory`, `cpu`, dan `nvidia.com/gpu`. Untuk informasi selengkapnya, lihat [Manajemen sumber daya untuk pod dan kontainer](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) dalam *Kubernetesdokumentasi*.  
Tipe: Objek [EksContainerResourceRequirements](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksContainerResourceRequirements.html)  
Wajib: Tidak    
`limits`  
Jenis dan jumlah sumber daya yang akan dicadangkan untuk wadah. Nilai bervariasi berdasarkan `name` yang ditentukan. Sumber daya dapat diminta menggunakan objek `limits` atau `requests` objek.    
memori  
Batas keras memori (dalam MiB) untuk wadah, menggunakan seluruh bilangan bulat, dengan akhiran “Mi”. Jika kontainer Anda mencoba untuk melampaui memori yang ditentukan, kontainer akan dimatikan. Anda harus menentukan setidaknya 4 MiB memori untuk suatu pekerjaan. `memory`dapat ditentukan dalam`limits`,`requests`, atau keduanya. Jika `memory` ditentukan di kedua tempat, maka nilai yang ditentukan `limits` harus sama dengan nilai yang ditentukan dalam`requests`.  
Untuk memaksimalkan pemanfaatan sumber daya Anda, berikan pekerjaan Anda memori sebanyak mungkin untuk jenis instance tertentu yang Anda gunakan. Untuk mempelajari caranya, lihat [Menghitung manajemen memori sumber daya](memory-management.md).  
cpu  
Jumlah CPUs yang disediakan untuk wadah. Nilai harus kelipatan genap dari`0.25`. `cpu`dapat ditentukan dalam`limits`,`requests`, atau keduanya. Jika `cpu` ditentukan di kedua tempat, maka nilai yang ditentukan `limits` harus setidaknya sebesar nilai yang ditentukan dalam`requests`.  
nvidia.com/gpu  
Jumlah GPUs yang disediakan untuk wadah. Nilai harus berupa bilangan bulat utuh. `memory`dapat ditentukan dalam`limits`,`requests`, atau keduanya. Jika `memory` ditentukan di kedua tempat, maka nilai yang ditentukan `limits` harus sama dengan nilai yang ditentukan dalam`requests`.
Tipe: Peta string ke string  
Batasan Panjang Nilai: Panjang minimum 1. Panjang maksimum 256.  
Wajib: Tidak  
`requests`  
Jenis dan jumlah sumber daya untuk meminta wadah. Nilai bervariasi berdasarkan `name` yang ditentukan. Sumber daya dapat diminta dengan menggunakan salah satu `limits` atau `requests` objek.    
memori  
Batas keras memori (dalam MiB) untuk wadah, menggunakan seluruh bilangan bulat, dengan akhiran “Mi”. Jika kontainer Anda mencoba untuk melampaui memori yang ditentukan, kontainer akan dimatikan. Anda harus menentukan setidaknya 4 MiB memori untuk suatu pekerjaan. `memory`dapat ditentukan dalam`limits`,`requests`, atau keduanya. Jika `memory` ditentukan di keduanya, maka nilai yang ditentukan `limits` harus sama dengan nilai yang ditentukan dalam`requests`.  
Jika Anda mencoba memaksimalkan pemanfaatan sumber daya dengan menyediakan memori sebanyak mungkin bagi tugas untuk tipe instans tertentu, lihat [Menghitung manajemen memori sumber daya](memory-management.md).  
cpu  
Jumlah CPUs yang dicadangkan untuk wadah. Nilai harus kelipatan genap dari`0.25`. `cpu`dapat ditentukan dalam`limits`,`requests`, atau keduanya. Jika `cpu` ditentukan dalam keduanya, maka nilai yang ditentukan dalam `limits` harus setidaknya sebesar nilai yang ditentukan dalam`requests`.  
nvidia.com/gpu  
Jumlah GPUs yang dicadangkan untuk wadah. Nilai harus berupa bilangan bulat utuh. `nvidia.com/gpu`dapat ditentukan dalam`limits`,`requests`, atau keduanya. Jika `nvidia.com/gpu` ditentukan di keduanya, maka nilai yang ditentukan `limits` harus sama dengan nilai yang ditentukan dalam`requests`.
Tipe: Peta string ke string  
Batasan Panjang Nilai: Panjang minimum 1. Panjang maksimum 256.  
Wajib: Tidak  
`securityContext`  
Konteks keamanan untuk suatu pekerjaan. Untuk informasi selengkapnya, lihat [Mengonfigurasi konteks keamanan untuk pod atau wadah](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) dalam *Kubernetesdokumentasi*.  
Tipe: Objek [EksContainerSecurityContext](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksContainerSecurityContext.html)  
Wajib: Tidak    
`privileged`  
Ketika parameter ini`true`, penampung diberikan izin tinggi pada instance wadah host. Tingkat izin mirip dengan izin `root` pengguna. Nilai default-nya adalah `false`. Parameter ini memetakan ke `privileged` kebijakan dalam [kebijakan keamanan pod Privileged](https://kubernetes.io/docs/concepts/security/pod-security-policy/#privileged) dalam *Kubernetesdokumentasi*.  
Tipe: Boolean  
Wajib: Tidak  
`readOnlyRootFilesystem`  
Ketika parameter ini`true`, wadah diberikan akses read-only ke sistem file root nya. Nilai default-nya adalah `false`. Parameter ini memetakan ke `ReadOnlyRootFilesystem` kebijakan dalam [kebijakan keamanan Volume dan sistem file pod](https://kubernetes.io/docs/concepts/security/pod-security-policy/#volumes-and-file-systems) dalam *Kubernetesdokumentasi*.  
Tipe: Boolean  
Wajib: Tidak  
`runAsGroup`  
Ketika parameter ini ditentukan, wadah dijalankan sebagai ID grup yang ditentukan (`gid`). Jika parameter ini tidak ditentukan, default adalah grup yang ditentukan dalam metadata gambar. Parameter ini memetakan ke `RunAsGroup` dan `MustRunAs` kebijakan dalam [kebijakan keamanan pod Pengguna dan grup](https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) dalam *Kubernetesdokumentasi*.  
Tipe: Panjang  
Wajib: Tidak  
`runAsNonRoot`  
Ketika parameter ini ditentukan, wadah dijalankan sebagai pengguna dengan `uid` selain 0. Jika parameter ini tidak ditentukan, maka aturan tersebut diberlakukan. Parameter ini memetakan ke `RunAsUser` dan `MustRunAsNonRoot` kebijakan dalam [kebijakan keamanan pod Pengguna dan grup](https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) dalam *Kubernetesdokumentasi*.  
Tipe: Panjang  
Wajib: Tidak  
`runAsUser`  
Ketika parameter ini ditentukan, wadah dijalankan sebagai ID pengguna yang ditentukan (`uid`). Jika parameter ini tidak ditentukan, default adalah pengguna yang ditentukan dalam metadata gambar. Parameter ini memetakan ke `RunAsUser` dan `MustRanAs` kebijakan dalam [kebijakan keamanan pod Pengguna dan grup](https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) dalam *Kubernetesdokumentasi*.  
Tipe: Panjang  
Wajib: Tidak  
`volumeMounts`  
Volume dipasang untuk wadah untuk pekerjaan Amazon EKS. Untuk informasi selengkapnya tentang volume dan volume mountKubernetes, lihat [Volume](https://kubernetes.io/docs/concepts/storage/volumes/) dalam *Kubernetesdokumentasi*.  
Tipe: Array objek [EksContainerVolumeMount](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksContainerVolumeMount.html)  
Wajib: Tidak    
`mountPath`  
Jalur pada wadah tempat volume dipasang.  
Tipe: String  
Wajib: Tidak  
`name`  
Nama volume mount. Ini harus cocok dengan nama salah satu volume di pod.  
Tipe: String  
Wajib: Tidak  
`readOnly`  
Jika nilai ini adalah `true`, kontainer memiliki akses hanya-baca ke volume. Jika tidak, kontainer bisa menulis ke volume. Nilai default-nya adalah `false`.  
Tipe: Boolean  
Wajib: Tidak  
`dnsPolicy`  
Kebijakan DNS untuk pod. Nilai default-nya adalah `ClusterFirst`. Jika `hostNetwork` parameter tidak ditentukan, defaultnya adalah`ClusterFirstWithHostNet`. `ClusterFirst`menunjukkan bahwa kueri DNS apa pun yang tidak cocok dengan akhiran domain cluster yang dikonfigurasi diteruskan ke server nama hulu yang diwarisi dari node. Jika tidak ada nilai yang ditentukan `dnsPolicy` dalam operasi [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html)API, maka tidak ada nilai yang dikembalikan `dnsPolicy` oleh salah satu dari [DescribeJobDefinitions](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobDefinitions.html)atau operasi [DescribeJobs](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html)API. Pengaturan spesifikasi pod akan berisi salah satu `ClusterFirst` atau`ClusterFirstWithHostNet`, tergantung pada nilai `hostNetwork` parameternya. Untuk informasi selengkapnya, lihat [kebijakan DNS Pod](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy) di *Kubernetesdokumentasi*.  
Nilai yang valid: `Default` \$1 `ClusterFirst` \$1 `ClusterFirstWithHostNet`  
Tipe: String  
Wajib: Tidak  
`hostNetwork`  
Menunjukkan apakah pod menggunakan alamat IP jaringan host. Nilai default-nya adalah `true`. Menyetel ini untuk `false` mengaktifkan model jaringan Kubernetes pod. Sebagian besar AWS Batch beban kerja hanya untuk egress-only dan tidak memerlukan overhead alokasi IP untuk setiap pod untuk koneksi yang masuk. *Untuk informasi selengkapnya, lihat [Host namespace](https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces) dan [jaringan Pod](https://kubernetes.io/docs/concepts/workloads/pods/#pod-networking) dalam dokumentasi. Kubernetes*  
Tipe: Boolean  
Wajib: Tidak  
`serviceAccountName`  
Nama akun layanan yang digunakan untuk menjalankan pod. Untuk informasi selengkapnya, lihat [akun Kubernetes layanan](https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html) dan [Mengonfigurasi akun Kubernetes layanan untuk mengambil peran IAM](https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html) dalam *Panduan Pengguna Amazon EKS* dan [Mengonfigurasi akun layanan untuk pod](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) dalam *Kubernetesdokumentasi*.  
Tipe: String  
Wajib: Tidak  
`volumes`  
Menentukan volume untuk definisi pekerjaan yang menggunakan sumber daya Amazon EKS.  
Tipe: Array objek [EksVolume](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksVolume.html)  
Wajib: Tidak    
kosongDir  
Menentukan konfigurasi Kubernetes `emptyDir` volume. `emptyDir`Volume pertama kali dibuat ketika sebuah pod ditugaskan ke sebuah node. Itu ada selama pod itu berjalan pada node itu. `emptyDir`Volume awalnya kosong. Semua kontainer dalam pod dapat membaca dan menulis file dalam `emptyDir` volume. Namun, `emptyDir` volume dapat dipasang pada jalur yang sama atau berbeda di setiap wadah. Ketika sebuah pod dihapus dari node karena alasan apa pun, data di dalamnya akan dihapus `emptyDir` secara permanen. *Untuk informasi selengkapnya, lihat [emptyDir](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir) dalam dokumentasi. Kubernetes*  
Tipe: Objek [EksEmptyDir](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksEmptyDir.html)  
Wajib: Tidak    
medium  
Media untuk menyimpan volume. Nilai default adalah string kosong, yang menggunakan penyimpanan node.    
""  
**(Default)** Gunakan penyimpanan disk node.  
“Memori”  
Gunakan `tmpfs` volume yang didukung oleh RAM node. Isi volume hilang saat node reboot, dan penyimpanan apa pun pada volume dihitung terhadap batas memori kontainer.
Tipe: String  
Wajib: Tidak  
SizeLimit  
Ukuran maksimum volume. Secara default, tidak ada ukuran maksimum yang ditentukan.  
Tipe: String  
Batasan Panjang: Panjang minimum 1. Panjang maksimum 256.  
Wajib: Tidak  
HostPath  
Menentukan konfigurasi Kubernetes `hostPath` volume. `hostPath`Volume memasang file atau direktori yang ada dari sistem file node host ke dalam pod Anda. Untuk informasi selengkapnya, lihat [HostPath](https://kubernetes.io/docs/concepts/storage/volumes/#hostpath) dalam *Kubernetesdokumentasi*.  
Tipe: Objek [EksHostPath](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksHostPath.html)  
Wajib: Tidak    
path  
Jalur file atau direktori pada host untuk dipasang ke kontainer pada pod.  
Tipe: String  
Wajib: Tidak  
name  
Nama volume. Nama harus diizinkan sebagai nama subdomain DNS. *Untuk informasi selengkapnya, lihat [nama subdomain DNS](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names) dalam dokumentasi. Kubernetes*  
Tipe: String  
Diperlukan: Ya  
Rahasia  
Menentukan konfigurasi Kubernetes `secret` volume. Untuk informasi lebih lanjut, lihat [rahasia](https://kubernetes.io/docs/concepts/storage/volumes/#secret) dalam *Kubernetesdokumentasi*.  
Tipe: Objek [EksSecret](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksSecret.html)  
Wajib: Tidak    
opsional  
Menentukan apakah rahasia atau kunci rahasia harus didefinisikan.  
Tipe: Boolean  
Wajib: Tidak  
SecretName  
Nama rahasia. Nama harus diizinkan sebagai nama subdomain DNS. *Untuk informasi selengkapnya, lihat [nama subdomain DNS](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names) dalam dokumentasi. Kubernetes*  
Tipe: String  
Diperlukan: Ya

## Kemampuan platform
<a name="job-definition-parameters-platform-capabilities"></a>

`platformCapabilities`  
Kemampuan platform yang diperlukan oleh ketentuan tugas. Jika tidak ada nilai yang ditentukan, default-nya adalah `EC2`. Untuk tugas yang berjalan di sumber daya Fargate, nilainya adalah `FARGATE`.  
Jika pekerjaan berjalan pada sumber daya Amazon EKS, maka Anda tidak boleh menentukan`platformCapabilities`.
Tipe: String  
Nilai yang valid: `EC2` \$1 `FARGATE`  
Wajib: Tidak

## Propagasi tanda
<a name="job-definition-parameters-propagate-tags"></a>

`propagateTags`  
Menentukan apakah akan mempropagasi tanda dari tugas atau ketentuan tugas ke tugas Amazon ECS yang sesuai. Jika tidak ada nilai yang ditentukan, tanda tidak dipropagasi. Tanda hanya dapat dipropagasi ke tugas ketika tugas dibuat. Untuk tanda dengan nama yang sama, tanda tugas diprioritaskan daripada tanda ketentuan tugas. Jika jumlah total tanda gabungan dari tugas dan ketentuan tugas lebih dari 50, tugas dipindahkan ke status `FAILED`.  
Jika pekerjaan berjalan pada sumber daya Amazon EKS, maka Anda tidak boleh menentukan`propagateTags`.
Tipe: Boolean  
Wajib: Tidak

## Properti simpul
<a name="nodeProperties"></a>

`nodeProperties`  
Ketika mendaftarkan ketentuan tugas paralel multisimpul, Anda harus menentukan daftar properti simpul. Properti node ini menentukan jumlah node yang akan digunakan dalam pekerjaan Anda, indeks node utama, dan rentang node yang berbeda untuk digunakan. Jika tugas berjalan di sumber daya Fargate, Anda tidak dapat menentukan `nodeProperties`. Sebaliknya, gunakan `containerProperties`. Properti simpul berikut diperbolehkan dalam ketentuan tugas. Untuk informasi selengkapnya, lihat [Tugas paralel multisimpul](multi-node-parallel-jobs.md).  
Jika pekerjaan berjalan pada sumber daya Amazon EKS, maka Anda tidak boleh menentukan`nodeProperties`.
Tipe: Objek [NodeProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_NodeProperties.html)  
Wajib: Tidak    
`mainNode`  
Menentukan indeks simpul untuk simpul utama dari tugas paralel multisimpul. Nilai indeks simpul ini harus lebih kecil dari jumlah simpul.  
Jenis: Integer  
Wajib: Ya  
`numNodes`  
Jumlah simpul yang terkait dengan tugas paralel multisimpul.  
Jenis: Integer  
Wajib: Ya  
`nodeRangeProperties`  
Daftar rentang simpul dan propertinya yang terkait dengan tugas paralel multisimpul.  
Sebuah grup simpul adalah grup identik simpul pekerjaan yang memiliki properti kontainer yang sama. Anda dapat menggunakan AWS Batch untuk menentukan hingga lima grup node yang berbeda untuk setiap pekerjaan.
Tipe: Array objek [NodeRangeProperty](https://docs.aws.amazon.com/batch/latest/APIReference/API_NodeRangeProperty.html)  
Wajib: Ya    
`targetNodes`  
Rentang simpul, menggunakan nilai indeks simpul. Rentang `0:3` menunjukkan simpul dengan nilai indeks dari `0` sampai `3`. Jika nilai rentang awal dihilangkan (`:n`), maka 0 digunakan untuk memulai rentang. Jika nilai akhir rentang diabaikan (`n:`), indeks simpul tertinggi akan digunakan untuk mengakhiri rentang. Rentang simpul akumulatif Anda harus memperhitungkan semua simpul (`0:n`). Anda dapat membuat nest rentang simpul, misalnya `0:10` dan `4:5`. Untuk kasus ini, properti rentang `4:5` akan menggantikan properti `0:10`.   
Tipe: String  
Wajib: Tidak  
`container`  
Detail kontainer untuk rentang simpul. Untuk informasi selengkapnya, lihat [Properti kontainer](#containerProperties).  
Tipe: Objek [ContainerProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html)   
Wajib: Tidak

## Strategi percobaan kembali
<a name="retryStrategy"></a>

`retryStrategy`  
Ketika mendaftarkan ketentuan tugas, secara opsional Anda dapat menentukan strategi percobaan kembali yang akan digunakan untuk tugas gagal yang dikirimkan dengan ketentuan tugas ini. Setiap strategi coba lagi yang ditentukan selama [SubmitJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html)operasi mengesampingkan strategi coba lagi yang ditentukan di sini. Secara default, setiap tugas dicoba satu kali. Jika Anda menentukan lebih dari satu upaya, tugas akan dicoba lagi jika gagal. Contoh upaya yang gagal antara lain tugas yang mengembalikan kode keluar bukan nol atau instans kontainer yang diakhiri. Untuk informasi selengkapnya, lihat [Percobaan kembali tugas secara otomatis](job_retries.md).  
Tipe: Objek [RetryStrategy](https://docs.aws.amazon.com/batch/latest/APIReference/API_RetryStrategy.html)  
Wajib: Tidak    
`attempts`  
Jumlah upaya untuk memindahkan tugas ke status `RUNNABLE`. Anda dapat menentukan antara 1 sampai 10 upaya. Jika `attempts` lebih besar dari satu, tugas akan dicoba lagi sebanyak jumlah tersebut jika gagal, sampai tugas berpindah ke `RUNNABLE`.  

```
"attempts": integer
```
Tipe: Integer  
Wajib: Tidak  
`evaluateOnExit`  
Array hingga 5 objek yang menentukan kondisi di mana pekerjaan dicoba ulang atau gagal. Jika parameter ini ditentukan, maka `attempts` parameter juga harus ditentukan. Jika `evaluateOnExit` ditentukan tetapi tidak ada entri yang cocok, maka pekerjaan tersebut dicoba lagi.  

```
"evaluateOnExit": [
   {
      "action": "string",
      "onExitCode": "string",
      "onReason": "string",
      "onStatusReason": "string"
   }
]
```
Tipe: Array objek [EvaluateOnExit](https://docs.aws.amazon.com/batch/latest/APIReference/API_EvaluateOnExit.html)  
Wajib: Tidak    
`action`  
Menentukan tindakan yang akan diambil jika semua syarat yang ditentukan (`onStatusReason`, `onReason`, dan `onExitCode`) terpenuhi. Nilai ini tidak peka huruf besar dan kecil.  
Tipe: String  
Diperlukan: Ya  
Nilai yang valid: `RETRY` \$1 `EXIT`  
`onExitCode`  
Berisi pola glob untuk dicocokkan dengan representasi desimal dari `ExitCode` yang dikembalikan untuk tugas. Pola dapat memiliki panjang hingga 512 karakter. Ini hanya bisa berisi angka. Ini tidak dapat berisi huruf atau karakter khusus. Ini secara opsional dapat diakhiri dengan tanda bintang (\$1) sehingga hanya awal string yang harus sama persis.  
Tipe: String  
Wajib: Tidak  
`onReason`  
Berisi pola glob untuk dicocokkan dengan `Reason` yang dikembalikan untuk tugas. Pola dapat memiliki panjang hingga 512 karakter. Ini dapat berisi huruf, angka, titik (.), titik dua (:), dan spasi kosong (spasi, tab). Ini secara opsional dapat diakhiri dengan tanda bintang (\$1) sehingga hanya awal string yang harus sama persis.  
Tipe: String  
Wajib: Tidak  
`onStatusReason`  
Berisi pola glob untuk dicocokkan dengan `StatusReason` yang dikembalikan untuk tugas. Pola dapat memiliki panjang hingga 512 karakter. Ini dapat berisi huruf, angka, titik (.), titik dua (:), dan spasi kosong (spasi, tab). Ini secara opsional dapat diakhiri dengan tanda bintang (\$1) sehingga hanya awal string yang harus sama persis.  
Tipe: String  
Wajib: Tidak

## Prioritas penjadwalan
<a name="job-definition-parameters-schedulingPriority"></a>

`schedulingPriority`  
Prioritas penjadwalan untuk pekerjaan yang diserahkan dengan definisi pekerjaan ini. Ini hanya memengaruhi pekerjaan dalam antrian pekerjaan dengan kebijakan pembagian yang adil. Pekerjaan dengan prioritas penjadwalan yang lebih tinggi dijadwalkan sebelum pekerjaan dengan prioritas penjadwalan yang lebih rendah.  
Nilai minimum yang didukung adalah 0 dan nilai maksimum yang didukung adalah 9999.  
Tipe: Integer  
Wajib: Tidak

## Tag
<a name="job-definition-parameters-tags"></a>

`tags`  
Tanda pasangan kunci-nilai untuk dikaitkan dengan ketentuan tugas. Untuk informasi selengkapnya, lihat [Tandai AWS Batch sumber daya Anda](using-tags.md).  
Tipe: Peta antar string  
Wajib: Tidak

## Batas waktu
<a name="timeout"></a>

`timeout`  
Anda dapat mengonfigurasi durasi batas waktu untuk pekerjaan Anda sehingga jika pekerjaan berjalan lebih lama dari itu, AWS Batch mengakhiri pekerjaan. Untuk informasi selengkapnya, lihat [Batas waktu Job](job_timeouts.md). Jika pekerjaan dihentikan karena batas waktu, itu tidak dicoba lagi. Konfigurasi batas waktu apa pun yang ditentukan selama [SubmitJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html)operasi akan mengganti konfigurasi batas waktu yang ditentukan di sini. Untuk informasi selengkapnya, lihat [Batas waktu Job](job_timeouts.md).  
Tipe: Objek [JobTimeout](https://docs.aws.amazon.com/batch/latest/APIReference/API_JobTimeout.html)  
Wajib: Tidak    
`attemptDurationSeconds`  
Durasi waktu dalam detik (diukur dari stempel waktu `startedAt` upaya tugas) setelah AWS Batch mengakhiri tugas yang belum selesai. Nilai minimum untuk timeout adalah 60 detik.  
Untuk pekerjaan array, batas waktu berlaku untuk pekerjaan anak, bukan untuk pekerjaan array induk.  
Untuk pekerjaan multi-node parallel (MNP), batas waktu berlaku untuk seluruh pekerjaan, bukan untuk masing-masing node.  
Tipe: Integer  
Wajib: Tidak

# Buat definisi pekerjaan menggunakan EcsProperties
<a name="multi-container-jobs"></a>

Dengan menggunakan definisi AWS Batch pekerjaan [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html), Anda dapat memodelkan perangkat keras, sensor, lingkungan 3D, dan simulasi lainnya dalam wadah terpisah. Anda dapat menggunakan fitur ini untuk secara logis mengatur komponen beban kerja Anda, dan memisahkannya dari aplikasi utama. Fitur ini dapat digunakan AWS Batch di Amazon Elastic Container Service (Amazon ECS), Amazon Elastic Kubernetes Service (Amazon EKS), dan. AWS Fargate

## `ContainerProperties`versus definisi `EcsProperties` pekerjaan
<a name="containerpropertions-vs-ecsproperties"></a>

Anda dapat memilih untuk menggunakan [https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html)atau definisi [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html)pekerjaan sesuai dengan kasus penggunaan Anda. Pada tingkat tinggi, menjalankan AWS Batch pekerjaan dengan `EcsProperties` mirip dengan menjalankan pekerjaan dengan a`ContainerProperties`.

Struktur definisi pekerjaan lama, menggunakan`ContainerProperties`, tetap didukung. Jika saat ini Anda memiliki alur kerja menggunakan struktur ini, Anda dapat terus menjalankannya.

Perbedaan utama adalah bahwa ada objek baru yang ditambahkan ke definisi pekerjaan untuk mengakomodasi definisi `EcsProperties` berbasis.

Misalnya, definisi pekerjaan yang digunakan `ContainerProperties` di Amazon ECS dan Fargate memiliki struktur berikut:

```
{
   "containerProperties": {
     ...
     "image": "my_ecr_image1",
     ...
  },
...
}
```

Definisi pekerjaan yang digunakan `EcsProperties` di Amazon ECS dan Fargate memiliki struktur berikut:

```
{
  "ecsProperties": {
    "taskProperties": [{
      "containers": [
        { 
          ...
          "image": "my_ecr_image1",
          ...
        },
        { 
          ...
          "image": "my_ecr_image2",
          ...
        },
```

## Perubahan umum pada AWS Batch APIs
<a name="multi-container-general"></a>

Berikut ini lebih lanjut menguraikan beberapa perbedaan utama saat menggunakan `ContainerProperties` dan tipe data `EcsProperties` API:
+ Banyak parameter yang digunakan di dalamnya `ContainerProperties` muncul di dalam`TaskContainerProperties`. Beberapa contoh termasuk,`command`,`image`,`privileged`,`secrets`, dan`users`. Mereka semua dapat ditemukan di dalam [TaskContainerProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html).
+ Beberapa `TaskContainerProperties` parameter tidak memiliki ekuivalen fungsional dalam struktur lama. Beberapa contoh termasuk,`dependsOn`,`essential`,`name`,`ipcMode`, dan`pidMode`. Untuk informasi selengkapnya, lihat [EcsTaskDetails](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskDetails.html) dan [TaskContainerProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html).

  Selain itu, beberapa `ContainerProperties` parameter tidak memiliki ekuivalen, atau aplikasi, dalam struktur. `EcsProperties` In [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html#Batch-Type-EcsProperties-taskProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html#Batch-Type-EcsProperties-taskProperties), `container` telah diganti dengan `containers` sehingga objek baru dapat menerima hingga sepuluh elemen. [https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#Batch-RegisterJobDefinition-request-containerProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#Batch-RegisterJobDefinition-request-containerProperties)
+ `taskRoleArn`secara fungsional setara dengan. `jobRoleArn` Untuk informasi lebih lanjut lihat [EcsTaskProperties: taskRoleArn](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html) dan [ContainerProperties: jobRoleArn](https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html).
+ Anda dapat memasukkan dari satu (1) hingga sepuluh (10) wadah dalam `EcsProperties` struktur. [Untuk informasi lebih lanjut lihat:containerEcsTaskProperties.](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html)
+ Objek `taskProperties` dan InstanceTypes adalah array, tetapi saat ini hanya menerima satu elemen. [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html)

## Definisi pekerjaan multi-kontainer untuk Amazon ECS
<a name="multi-container-ecs-updates"></a>

Untuk mengakomodasi struktur multi-kontainer untuk Amazon ECS, beberapa tipe data API berbeda. Misalnya, 
+ [https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#Batch-RegisterJobDefinition-request-ecsProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#Batch-RegisterJobDefinition-request-ecsProperties)adalah level yang sama seperti `containerProperties` dalam definisi kontainer tunggal. Untuk informasi selengkapnya, lihat [EcsProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html)di *Panduan Referensi AWS Batch API*.
+ [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html#Batch-Type-EcsProperties-taskProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html#Batch-Type-EcsProperties-taskProperties)berisi properti yang ditentukan untuk tugas Amazon ECS. Untuk informasi selengkapnya, lihat [EcsProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsProperties.html)di *Panduan Referensi AWS Batch API*.
+ [https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html#Batch-Type-EcsTaskProperties-containers](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html#Batch-Type-EcsTaskProperties-containers)mencakup informasi serupa dengan definisi kontainer tunggal. `containerProperties` Perbedaan utamanya adalah `containers` memungkinkan Anda menentukan hingga sepuluh kontainer. Untuk informasi selengkapnya, lihat [ECSTaskProperti: Kontainer](https://docs.aws.amazon.com/batch/latest/APIReference/API_EcsTaskProperties.html) di Panduan *Referensi AWS Batch API*.
+ [https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html#Batch-Type-TaskContainerProperties-essential](https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html#Batch-Type-TaskContainerProperties-essential)parameter menunjukkan bagaimana wadah mempengaruhi pekerjaan. Semua kontainer penting harus berhasil diselesaikan (keluar sebagai 0) agar pekerjaan dapat berkembang. Jika wadah yang ditandai sebagai esensial gagal (keluar sebagai non-0), maka pekerjaan gagal.

  Nilai defaultnya adalah `true` dan setidaknya satu kontainer harus ditandai sebagai`essential`. Untuk informasi selengkapnya, lihat [https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html#Batch-Type-TaskContainerProperties-essential](https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html#Batch-Type-TaskContainerProperties-essential)di *Panduan Referensi AWS Batch API*.
+ Dengan [https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html#Batch-Type-TaskContainerProperties-dependsOn](https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html#Batch-Type-TaskContainerProperties-dependsOn)parameter, Anda dapat menentukan daftar dependensi kontainer. Untuk informasi selengkapnya, lihat [https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html#Batch-Type-TaskContainerProperties-dependsOn](https://docs.aws.amazon.com/batch/latest/APIReference/API_TaskContainerProperties.html#Batch-Type-TaskContainerProperties-dependsOn)di *Panduan Referensi AWS Batch API*.
**catatan**  
Kompleksitas `dependsOn` daftar dan runtime kontainer terkait dapat memengaruhi waktu mulai untuk pekerjaan Anda. Jika dependensi membutuhkan waktu lama untuk dijalankan, pekerjaan akan tetap dalam `STARTING` keadaan sampai selesai.

Untuk informasi selengkapnya tentang struktur `ecsProperties` dan, lihat sintaks [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#API_RegisterJobDefinition_RequestBody)permintaan untuk [ecsProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#Batch-RegisterJobDefinition-request-ecsProperties).

## Definisi pekerjaan multi-kontainer untuk Amazon EKS
<a name="multi-container-eks-updates"></a>

Untuk mengakomodasi struktur multi-container untuk Amazon EKS, beberapa tipe data API berbeda. Misalnya, 
+ [https://docs.aws.amazon.com/batch/latest/APIReference/API_EksContainer.html#Batch-Type-EksContainer-name](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksContainer.html#Batch-Type-EksContainer-name)adalah pengidentifikasi unik untuk wadah. Objek ini tidak diperlukan untuk satu kontainer, tetapi diperlukan saat mendefinisikan beberapa kontainer dalam sebuah pod. Ketika `name` tidak ditentukan untuk kontainer tunggal, nama default`default`,, diterapkan.
+ [https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPodProperties.html#Batch-Type-EksPodProperties-initContainers](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPodProperties.html#Batch-Type-EksPodProperties-initContainers)didefinisikan dalam tipe [eksPodProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPodProperties.html)data. Mereka berjalan sebelum wadah aplikasi, selalu berjalan hingga selesai, dan harus berhasil diselesaikan sebelum penampung berikutnya dimulai.

  Kontainer ini terdaftar di agen Amazon EKS Connector dan menyimpan informasi pendaftaran di toko data backend Amazon Elastic Kubernetes Service. `initContainers`Objek dapat menerima hingga sepuluh (10) elemen. Untuk informasi selengkapnya, lihat [Init Containers](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) dalam *Kubernetesdokumentasi*.
**catatan**  
`initContainers`Objek dapat mempengaruhi waktu mulai untuk pekerjaan Anda. Jika `initContainers` butuh waktu lama untuk menjalankan, pekerjaan akan tetap dalam `STARTING` keadaan sampai mereka selesai.
+ [https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPodProperties.html#Batch-Type-EksPodProperties-shareProcessNamespace](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksPodProperties.html#Batch-Type-EksPodProperties-shareProcessNamespace)menunjukkan apakah kontainer di pod dapat berbagi namespace proses yang sama. Nilai defaultnya adalah`false`. Menyetel ini `true` untuk mengaktifkan kontainer melihat dan memberi sinyal proses di wadah lain yang terletak di pod yang sama.
+ Setiap wadah memiliki kepentingan. Semua kontainer harus berhasil diselesaikan (keluar sebagai 0) agar pekerjaan berhasil. Jika satu kontainer gagal (keluar sebagai selain 0), maka pekerjaan gagal.

Untuk informasi selengkapnya tentang struktur `eksProperties` dan, lihat sintaks [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#API_RegisterJobDefinition_RequestBody)permintaan untuk [eksProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html#Batch-RegisterJobDefinition-request-eksProperties).

# Referensi: skenario AWS Batch pekerjaan menggunakan EcsProperties
<a name="multi-container-jobs-scenarios"></a>

Untuk mengilustrasikan bagaimana definisi AWS Batch pekerjaan yang digunakan `EcsProperties` dapat disusun berdasarkan kebutuhan Anda, topik ini menyajikan [https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html)muatan berikut. Anda dapat menyalin contoh-contoh ini ke dalam file, menyesuaikannya dengan kebutuhan Anda, dan kemudian menggunakan AWS Command Line Interface (AWS CLI) untuk memanggil`RegisterJobDefinition`.

## AWS Batch pekerjaan untuk Amazon ECS di Amazon EC2
<a name="multi-container-scenario-on-ec2"></a>

Berikut ini adalah contoh AWS Batch pekerjaan untuk Amazon Elastic Container Service di Amazon Elastic Compute Cloud:

```
{
    "jobDefinitionName": "multicontainer-ecs-ec2",
    "type": "container",
    "ecsProperties": {
        "taskProperties": [
          {
            "containers": [
              {
                "name": "c1",
                "essential": false,
                "command": [
                  "echo",
                  "hello world"
                ],
                "image": "public.ecr.aws/amazonlinux/amazonlinux:latest",
                "resourceRequirements": [
                  {
                    "type": "VCPU",
                    "value": "2"
                  },
                  {
                    "type": "MEMORY",
                    "value": "4096"
                  }
                ]
              },
              {
                "name": "c2",
                "essential": false,
                "command": [
                  "echo",
                  "hello world"
                ],
                "image": "public.ecr.aws/amazonlinux/amazonlinux:latest",
                "resourceRequirements": [
                  {
                    "type": "VCPU",
                    "value": "2"
                  },
                  {
                    "type": "MEMORY",
                    "value": "4096"
                  }
                ]
              },
              {
                "name": "c3",
                "essential": true,
                "command": [
                  "echo",
                  "hello world"
                ],
                "image": "public.ecr.aws/amazonlinux/amazonlinux:latest",
                "firelensConfiguration": {
                  "type": "fluentbit",
                  "options": {
                    "enable-ecs-log-metadata": "true"
                  }
                 },
                "resourceRequirements": [
                  {
                    "type": "VCPU",
                    "value": "6"
                  },
                  {
                    "type": "MEMORY",
                    "value": "12288"
                  }
                ]
              }
            ]
          }
        ]
  }
}
```

## AWS Batch pekerjaan untuk Amazon ECS di Fargate
<a name="multi-containers-ecs-on-fargate"></a>

Berikut ini adalah contoh AWS Batch pekerjaan untuk Amazon Elastic Container Service di AWS Fargate:

```
{
    "jobDefinitionName": "multicontainer-ecs-fargate",
    "type": "container",
    "platformCapabilities": [
        "FARGATE"
    ],
    "ecsProperties": {
        "taskProperties": [
          {
            "containers": [
              {
                "name": "c1",
                "command": [
                  "echo",
                  "hello world"
                ],
                "image": "public.ecr.aws/amazonlinux/amazonlinux:latest",
                "resourceRequirements": [
                  {
                    "type": "VCPU",
                    "value": "2"
                  },
                  {
                    "type": "MEMORY",
                    "value": "4096"
                  }
                ]
              },
              {
                "name": "c2",
                "essential": true,
                "command": [
                  "echo",
                  "hello world"
                ],
                "image": "public.ecr.aws/amazonlinux/amazonlinux:latest",
                "resourceRequirements": [
                  {
                    "type": "VCPU",
                    "value": "6"
                  },
                  {
                    "type": "MEMORY",
                    "value": "12288"
                  }
                ]
              }
            ],
            "executionRoleArn": "arn:aws:iam::1112223333:role/ecsTaskExecutionRole"
          }
        ]
  }
}
```

## AWS Batch pekerjaan untuk Amazon EKS
<a name="multi-containers-eks-example"></a>

Berikut ini adalah contoh AWS Batch pekerjaan untuk Amazon Elastic Kubernetes Service:

```
{
  "jobDefinitionName": "multicontainer-eks",
  "type": "container",
  "eksProperties": {
    "podProperties": {
      "shareProcessNamespace": true,
      "initContainers": [
        {
          "name": "init-container",
          "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
          "command": [
            "echo"
          ],
          "args": [
            "hello world"
          ],
          "resources": {
            "requests": {
              "cpu": "1",
              "memory": "512Mi"
            }
          }
        },
        {
          "name": "init-container-2",
          "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
          "command": [
            "echo",
            "my second init container"
          ],
          "resources": {
            "requests": {
              "cpu": "1",
              "memory": "512Mi"
            }
          }
        }
      ],
      "containers": [
        {
          "name": "c1",
          "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
          "command": [
            "echo world"
         ],
          "resources": {
            "requests": {
              "cpu": "1",
              "memory": "512Mi"
            }
          }
        },
        {
          "name": "sleep-container",
          "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
          "command": [
            "sleep",
            "20"
          ],
          "resources": {
            "requests": {
              "cpu": "1",
              "memory": "512Mi"
            }
          }
        }
      ]
    }
  }
}
```

## AWS Batch Pekerjaan MNP dengan beberapa kontainer per node
<a name="multi-container-ecs-mnp"></a>

Berikut ini adalah contoh AWS Batch pekerjaan multi-node parallel (MNP) dengan beberapa kontainer per node:

```
{
  "jobDefinitionName": "multicontainer-mnp",
  "type": "multinode",
  "nodeProperties": {
    "numNodes": 6,
    "mainNode": 0,
    "nodeRangeProperties": [
      {
        "targetNodes": "0:5",
        "ecsProperties": {
          "taskProperties": [
            {
              "containers": [
                {
                  "name": "range05-c1",
                  "command": [
                    "echo",
                    "hello world"
                  ],
                  "image": "public.ecr.aws/amazonlinux/amazonlinux:latest",
                  "resourceRequirements": [
                    {
                      "type": "VCPU",
                      "value": "2"
                    },
                    {
                      "type": "MEMORY",
                      "value": "4096"
                    }
                  ]
                },
                {
                  "name": "range05-c2",
                  "command": [
                    "echo",
                    "hello world"
                  ],
                  "image": "public.ecr.aws/amazonlinux/amazonlinux:latest",
                  "resourceRequirements": [
                    {
                      "type": "VCPU",
                      "value": "2"
                    },
                    {
                      "type": "MEMORY",
                      "value": "4096"
                    }
                  ]
                }
              ]
            }
          ]
        }
      }
    ]
  }
}
```

# Gunakan driver log awslogs
<a name="using_awslogs"></a>

Secara default, AWS Batch memungkinkan driver `awslogs` log untuk mengirim informasi log ke CloudWatch Log. Anda dapat menggunakan fitur ini untuk melihat berbagai log dari kontainer Anda di satu lokasi yang nyaman dan mencegah log kontainer Anda mengambil ruang disk di instans kontainer Anda. Topik ini membantu Anda mengonfigurasi driver log `awslogs` dalam ketentuan tugas Anda.

**catatan**  
Di AWS Batch konsol, Anda dapat mengonfigurasi driver `awslogs` log di bagian **konfigurasi Logging** saat Anda membuat definisi pekerjaan.

**catatan**  
Jenis informasi yang dicatat oleh kontainer dalam tugas Anda sebagian besar tergantung pada perintah `ENTRYPOINT`. Secara default, log yang diambil menunjukkan output perintah yang biasanya Anda lihat di terminal interaktif jika Anda menjalankan kontainer secara lokal, yang merupakan `STDOUT` dan `STDERR` I/O aliran. Driver `awslogs` log hanya meneruskan log ini dari Docker ke CloudWatch Logs. Untuk informasi selengkapnya tentang cara log Docker diproses, termasuk cara alternatif untuk menangkap berbagai pengaliran atau data file, lihat [Melihat log untuk kontainer atau layanan](https://docs.docker.com/config/containers/logging/) dalam dokumentasi Docker.

Untuk mengirim log sistem dari instance kontainer Anda ke CloudWatch Log, lihat[Menggunakan CloudWatch Log dengan AWS Batch](using_cloudwatch_logs.md). Untuk informasi selengkapnya tentang CloudWatch Log, lihat [Memantau Kuota File CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html) [Log dan Log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html) di *Panduan Pengguna CloudWatch Log Amazon*.

## opsi driver log awslogs dalam tipe data AWS Batch JobDefiniton
<a name="create_awslogs_logdriver_options"></a>

Driver `awslogs` log mendukung opsi berikut dalam definisi AWS Batch pekerjaan. Untuk informasi selengkapnya, lihat [Driver logging CloudWatch log](https://docs.docker.com/config/containers/logging/awslogs/) di dokumentasi Docker.

`awslogs-region`  
Wajib: Tidak  
Tentukan Wilayah tempat driver log `awslogs` harus mengirim log Docker Anda. Secara default, Wilayah yang digunakan adalah Wilayah yang sama dengan Wilayah untuk tugas. Anda dapat memilih untuk mengirim semua log Anda dari pekerjaan di Wilayah yang berbeda ke satu Wilayah di CloudWatch Log. Hal ini akan memungkinkan semuanya terlihat di satu lokasi. Sebagai alternatif, Anda dapat memisahkannya menurut Wilayah untuk pendekatan yang lebih terperinci. Namun, jika Anda memilih opsi ini, pastikan bahwa grup log yang ditentukan ada di Wilayah yang Anda tentukan.

`awslogs-group`  
Wajib: Opsional  
Dengan opsi `awslogs-group`, Anda dapat menentukan grup log yang menjadi tujuan pengiriman pengaliran log oleh driver log `awslogs`. Jika ini tidak ditentukan, `aws/batch/job` akan digunakan.

`awslogs-stream-prefix`  
Wajib: Opsional  
Dengan `awslogs-stream-prefix` opsi ini, Anda dapat mengaitkan aliran log dengan awalan yang ditentukan, dan ID tugas Amazon ECS dari AWS Batch pekerjaan yang dimiliki penampung tersebut. Jika anda menentukan prefiks dengan pilihan ini, pengaliran log akan mengambil format berikut:  

```
prefix-name/default/ecs-task-id
```

`awslogs-datetime-format`  
Wajib: Tidak  
Opsi ini menentukan pola permulaan multibaris dalam format `strftime` Phyton. Pesan log terdiri dari baris yang sesuai dengan pola dan baris berikutnya yang tidak cocok dengan pola. Dengan demikian, baris yang cocok adalah pembatas antarpesan log.  
Salah satu contoh kasus penggunaan format ini adalah untuk penguraian output seperti buangan tumpukan, yang mungkin bisa tercatat dalam beberapa entri. Pola yang benar akan memungkinkannya ditangkap dalam satu entri.  
Untuk informasi selengkapnya, lihat [awslogs-datetime-format](https://docs.docker.com/config/containers/logging/awslogs/#awslogs-datetime-format).  
Opsi ini selalu diutamakan jika `awslogs-datetime-format` dan `awslogs-multiline-pattern` sama-sama dikonfigurasi.  
Pencatatan multibaris melakukan penguraian dan pencocokan ekspresi reguler dari semua pesan log. Ini dapat berdampak negatif pada performa pencatatan.

`awslogs-multiline-pattern`  
Wajib: Tidak  
Opsi ini menentukan pola permulaan multibaris dengan menggunakan ekspresi reguler. Pesan log terdiri dari baris yang sesuai dengan pola dan baris berikutnya yang tidak cocok dengan pola. Dengan demikian, baris yang cocok adalah pembatas antarpesan log.  
Untuk informasi selengkapnya, lihat [awslogs-multiline-pattern](https://docs.docker.com/config/containers/logging/awslogs/#awslogs-multiline-pattern)di dokumentasi Docker.  
Opsi ini diabaikan jika `awslogs-datetime-format` juga dikonfigurasi.  
Pencatatan multibaris melakukan penguraian dan pencocokan ekspresi reguler dari semua pesan log. Ini mungkin berdampak negatif pada performa pencatatan.

`awslogs-create-group`  
Wajib: Tidak  
Menentukan apakah Anda ingin grup log dibuat secara otomatis. Jika opsi ini tidak ditentukan, default-nya adalah `false`.  
Opsi ini tidak disarankan. Kami menyarankan Anda membuat grup log terlebih dahulu menggunakan tindakan CloudWatch Logs [CreateLogGroup](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html)API karena setiap pekerjaan mencoba membuat grup log, meningkatkan kemungkinan pekerjaan gagal.
Kebijakan IAM untuk peran eksekusi Anda harus menyertakan izin `logs:CreateLogGroup` sebelum Anda mencoba untuk menggunakan `awslogs-create-group`.

## Tentukan konfigurasi log dalam definisi pekerjaan Anda
<a name="specify-log-config"></a>

Secara default, AWS Batch mengaktifkan driver `awslogs` log. Bagian ini menjelaskan cara menyesuaikan konfigurasi log `awslogs` untuk suatu tugas. Untuk informasi selengkapnya, lihat [Buat definisi pekerjaan simpul tunggal](create-job-definition.md).

Cuplikan JSON konfigurasi log berikut memiliki objek `logConfiguration` yang ditentukan untuk setiap tugas. Salah satunya adalah untuk WordPress pekerjaan yang mengirim log ke grup log yang dipanggil`awslogs-wordpress`, dan yang lainnya adalah untuk wadah MySQL yang mengirim log ke grup log yang dipanggil. `awslogs-mysql` Kedua kontainer menggunakan prefiks pengaliran log `awslogs-example`.

```
"logConfiguration": {
    "logDriver": "awslogs",
    "options": {
        "awslogs-group": "awslogs-wordpress",
        "awslogs-stream-prefix": "awslogs-example"
    }
}
```

```
"logConfiguration": {
    "logDriver": "awslogs",
    "options": {
        "awslogs-group": "awslogs-mysql",
        "awslogs-stream-prefix": "awslogs-example"
    }
}
```

Di AWS Batch konsol, konfigurasi log untuk definisi `wordpress` pekerjaan ditentukan seperti yang ditunjukkan pada gambar berikut. 

![\[Log configuration interface showing awslogs driver with group and stream prefix options.\]](http://docs.aws.amazon.com/id_id/batch/latest/userguide/images/awslogs-console-config.png)


Setelah Anda mendaftarkan definisi tugas dengan driver `awslogs` log dalam konfigurasi log definisi pekerjaan, Anda dapat mengirimkan pekerjaan dengan definisi pekerjaan tersebut untuk mulai mengirim CloudWatch log ke Log. Lihat informasi yang lebih lengkap di [Tutorial: kirimkan pekerjaan](submit_job.md).

# Tentukan data sensitif
<a name="specifying-sensitive-data"></a>

Dengan AWS Batch, Anda dapat menyuntikkan data sensitif ke dalam pekerjaan Anda dengan menyimpan data sensitif Anda baik dalam AWS Secrets Manager rahasia atau AWS Systems Manager parameter Parameter Store, dan kemudian mereferensikannya dalam definisi pekerjaan Anda.

Rahasia dapat diungkap ke tugas dengan cara berikut:
+ Untuk menyuntikkan data sensitif ke dalam kontainer Anda sebagai variabel lingkungan, gunakan parameter ketentuan tugas `secrets`.
+ Untuk mereferensikan informasi sensitif dalam konfigurasi log tugas, gunakan parameter ketentuan tugas `secretOptions`.

**Topics**
+ [Tentukan data sensitif dengan Secrets Manager](specifying-sensitive-data-secrets.md)
+ [Tentukan data sensitif dengan Systems Manager Parameter Store](specifying-sensitive-data-parameters.md)

# Tentukan data sensitif dengan Secrets Manager
<a name="specifying-sensitive-data-secrets"></a>

Dengan AWS Batch, Anda dapat menyuntikkan data sensitif ke dalam pekerjaan Anda dengan menyimpan data sensitif Anda dalam AWS Secrets Manager rahasia dan kemudian mereferensikannya dalam definisi pekerjaan Anda. Data sensitif yang disimpan dalam rahasia Secrets Manager dapat diungkap ke tugas sebagai variabel lingkungan atau sebagai bagian dari konfigurasi log.

Ketika Anda menyuntikkan rahasia sebagai variabel lingkungan, Anda dapat menentukan kunci JSON atau versi rahasia yang akan disuntikkan. Proses ini membantu Anda mengontrol data sensitif yang diungkap ke tugas Anda. Untuk informasi selengkapnya tentang versioning rahasia, lihat [Konsep dan Istilah Penting untuk AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/terms-concepts.html#term_secret) dalam *Panduan Pengguna AWS Secrets Manager *.

## Pertimbangan saat Anda menentukan data sensitif menggunakan Secrets Manager
<a name="secrets-considerations"></a>

Hal-hal berikut ini harus dipertimbangkan ketika menggunakan Secrets Manager untuk menentukan data sensitif untuk tugas.
+ Untuk menyuntikkan rahasia menggunakan kunci JSON atau versi rahasia tertentu, instans kontainer di lingkungan komputasi Anda harus memiliki agen kontainer Amazon ECS. versi 1.37.0 atau yang lebih baru. Namun, sebaiknya gunakan versi agen kontainer terbaru. Untuk informasi tentang memeriksa versi agen Anda dan memperbarui ke versi terbaru, lihat [Memperbarui agen kontainer Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) dalam *Panduan Developer Amazon Elastic Container Service*.

  Untuk menyuntikkan konten lengkap rahasia sebagai variabel lingkungan atau untuk menyuntikkan rahasia dalam konfigurasi log, instance container Anda harus memiliki versi 1.23.0 atau yang lebih baru dari agen kontainer.
+ Hanya rahasia yang menyimpan data teks, yang merupakan rahasia yang dibuat dengan `SecretString` parameter [CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html)API, yang didukung. Rahasia yang menyimpan data biner, yang merupakan rahasia yang dibuat dengan `SecretBinary` parameter [CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html)API tidak didukung.
+ Saat menggunakan ketentuan tugas yang mereferensikan rahasia Secrets Manager untuk mengambil data sensitif untuk tugas Anda, jika Anda juga menggunakan VPC endpoint antarmuka, Anda harus membuat VPC endpoint antarmuka untuk Secrets Manager. Untuk informasi selengkapnya, lihat [Menggunakan Secrets Manager dengan VPC Endpoint](https://docs.aws.amazon.com/secretsmanager/latest/userguide/vpc-endpoint-overview.html) dalam *Panduan Pengguna AWS Secrets Manager *.
+ Data sensitif disuntikkan ke tugas Anda saat tugas pertama kali dimulai. Jika rahasia kemudian diperbarui atau dirotasi, tugas tidak menerima nilai yang diperbarui secara otomatis. Anda harus meluncurkan tugas baru untuk memaksa layanan meluncurkan tugas baru dengan nilai rahasia yang diperbarui.

## Izin IAM yang diperlukan untuk rahasia AWS Batch
<a name="secrets-iam"></a>

Untuk menggunakan fitur ini, Anda harus memiliki peran eksekusi dan mereferensikannya dalam ketentuan tugas Anda. Hal ini memungkinkan agen kontainer untuk menarik sumber daya Secrets Manager yang diperlukan. Untuk informasi selengkapnya, lihat [AWS Batch Peran eksekusi IAM](execution-IAM-role.md).

Untuk menyediakan akses ke rahasia Secrets Manager yang Anda buat, tambahkan izin berikut secara manual ke peran eksekusi sebagai kebijakan inline. Untuk informasi lebih lanjut, lihat [Menambahkan dan Menghapus Kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) dalam *Panduan Pengguna IAM*.
+ `secretsmanager:GetSecretValue`–Wajib jika Anda mereferensikan rahasia Secrets Manager.
+ `kms:Decrypt`–Wajib hanya jika rahasia Anda menggunakan kunci KMS khusus dan bukan kunci default. ARN untuk kunci khusus Anda harus ditambahkan sebagai sumber daya.

Contoh kebijakan inline berikut menambahkan izin yang diperlukan.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-2:777777777777:secret:<secret_name>",
                "arn:aws:kms:us-east-2:777777777777:key/<key_id>"
            ]
        }
    ]
}
```

------

## Menyuntikkan data sensitif sebagai variabel lingkungan
<a name="secrets-envvar"></a>

Anda dapat menentukan yang berikut Dalam definisi pekerjaan Anda:
+ Objek `secrets` yang berisi nama variabel lingkungan untuk diatur dalam tugas
+ Amazon Resource Name (ARN) rahasia Secrets Manager
+ Parameter tambahan yang berisi data sensitif untuk diberikan ke tugas

Contoh berikut menunjukkan sintaks lengkap yang harus ditentukan untuk rahasia Secrets Manager.

```
arn:aws:secretsmanager:region:aws_account_id:secret:secret-name:json-key:version-stage:version-id
```

Bagian berikut menjelaskan parameter tambahan. Parameter ini bersifat opsional. Namun, jika Anda tidak menggunakannya, Anda harus menyertakan titik dua `:` untuk menggunakan nilai default. Contoh disediakan di bawah ini sebagai konteks.

`json-key`  
Menentukan nama kunci dalam pasangan kunci-nilai dengan nilai yang ingin Anda tetapkan sebagai nilai variabel lingkungan. Hanya nilai dalam format JSON yang didukung. Jika Anda tidak menentukan kunci JSON, konten lengkap dari rahasia akan digunakan.

`version-stage`  
Menentukan label tahapan dari versi rahasia yang ingin Anda gunakan. Jika label tahapan versi ditentukan, Anda tidak dapat menentukan ID versi. Jika tidak ada tahap versi yang ditentukan, perilaku default-nya adalah mengambil rahasia dengan label tahapan `AWSCURRENT`.  
Label tahapan digunakan untuk melacak berbagai versi rahasia saat diperbarui atau dirotasi. Setiap versi rahasia memiliki satu atau beberapa label tahapan dan satu ID. Untuk informasi selengkapnya, lihat [Persyaratan dan Konsep Utama untuk AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/terms-concepts.html#term_secret) di *Panduan AWS Secrets Manager Pengguna*.

`version-id`  
Menentukan pengidentifikasi unik dari versi rahasia yang ingin Anda gunakan. Jika ID versi ditentukan, Anda tidak dapat menentukan label tahapan versi. Jika tidak ada ID versi yang ditentukan, perilaku default-nya adalah mengambil rahasia dengan label tahapan `AWSCURRENT`.  
Versi IDs digunakan untuk melacak versi rahasia yang berbeda ketika mereka diperbarui atau diputar. Setiap versi rahasia memiliki satu ID. Untuk informasi selengkapnya, lihat [Persyaratan dan Konsep Utama untuk AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/terms-concepts.html#term_secret) di *Panduan AWS Secrets Manager Pengguna*.

### Contoh ketentuan kontainer
<a name="secrets-examples"></a>

Contoh berikut menunjukkan cara yang dapat Anda gunakan untuk mereferensikan rahasia Secrets Manager dalam ketentuan kontainer Anda.

**Example mereferensikan rahasia penuh**  
Berikut ini adalah cuplikan ketentuan tugas yang menunjukkan format ketika mereferensikan teks lengkap dari rahasia Secrets Manager.  

```
{
  "containerProperties": [{
    "secrets": [{
      "name": "environment_variable_name",
      "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name-AbCdEf"
    }]
  }]
}
```

**Example mereferensikan kunci tertentu dalam sebuah rahasia**  
Berikut ini menunjukkan contoh output dari [get-secret-valueperintah>](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/get-secret-value.html) yang menampilkan isi rahasia bersama dengan label pementasan versi dan ID versi yang terkait dengannya.  

```
{
    "ARN": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf",
    "Name": "appauthexample",
    "VersionId": "871d9eca-18aa-46a9-8785-981dd39ab30c",
    "SecretString": "{\"username1\":\"password1\",\"username2\":\"password2\",\"username3\":\"password3\"}",
    "VersionStages": [
        "AWSCURRENT"
    ],
    "CreatedDate": 1581968848.921
}
```
Referensikan kunci tertentu dari output sebelumnya dalam ketentuan kontainer dengan menentukan nama kunci di akhir ARN.  

```
{
  "containerProperties": [{
    "secrets": [{
      "name": "environment_variable_name",
      "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf:username1::"
    }]
  }]
}
```

**Example mereferensikan versi rahasia tertentu**  
Berikut ini menunjukkan contoh output dari perintah [>describe-secret](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/describe-secret.html) yang menampilkan konten rahasia yang tidak terenkripsi bersama dengan metadata untuk semua versi rahasia.  

```
{
    "ARN": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf",
    "Name": "appauthexample",
    "Description": "Example of a secret containing application authorization data.",
    "RotationEnabled": false,
    "LastChangedDate": 1581968848.926,
    "LastAccessedDate": 1581897600.0,
    "Tags": [],
    "VersionIdsToStages": {
        "871d9eca-18aa-46a9-8785-981dd39ab30c": [
            "AWSCURRENT"
        ],
        "9d4cb84b-ad69-40c0-a0ab-cead36b967e8": [
            "AWSPREVIOUS"
        ]
    }
}
```
Referensikan label tahapan versi tertentu dari output sebelumnya dalam ketentuan kontainer dengan menentukan nama kunci di akhir ARN.  

```
{
  "containerProperties": [{
    "secrets": [{
      "name": "environment_variable_name",
      "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf::AWSPREVIOUS:"
    }]
  }]
}
```
Referensikan ID versi tertentu dari output sebelumnya dalam ketentuan kontainer dengan menentukan nama kunci di akhir ARN.  

```
{
  "containerProperties": [{
    "secrets": [{
      "name": "environment_variable_name",
      "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf::9d4cb84b-ad69-40c0-a0ab-cead36b967e8"
    }]
  }]
}
```

**Example mereferensikan kunci dan label tahapan versi tertentu dari suatu rahasia**  
Bagian berikut menunjukkan cara mereferensikan kunci tertentu dalam rahasia dan label tahapan versi tertentu.  

```
{
  "containerProperties": [{
    "secrets": [{
      "name": "environment_variable_name",
      "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf:username1:AWSPREVIOUS:"
    }]
  }]
}
```
Untuk menentukan kunci dan versi ID tertentu, gunakan sintaks berikut.  

```
{
  "containerProperties": [{
    "secrets": [{
      "name": "environment_variable_name",
      "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf:username1::9d4cb84b-ad69-40c0-a0ab-cead36b967e8"
    }]
  }]
}
```

## Menyuntikkan data sensitif dalam konfigurasi log
<a name="secrets-logconfig"></a>

Saat Anda menentukan definisi `logConfiguration` dalam pekerjaan Anda, Anda dapat menentukan `secretOptions` dengan nama opsi driver log untuk disetel dalam wadah dan ARN lengkap dari rahasia Secrets Manager yang berisi data sensitif untuk disajikan ke wadah.

Berikut ini adalah cuplikan ketentuan tugas yang menunjukkan format ketika mereferensikan rahasia Secrets Manager.

```
{
  "containerProperties": [{
    "logConfiguration": [{
      "logDriver": "splunk",
      "options": {
        "splunk-url": "https://cloud.splunk.com:8080"
      },
      "secretOptions": [{
        "name": "splunk-token",
        "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name-AbCdEf"
      }]
    }]
  }]
}
```

## Buat AWS Secrets Manager rahasia
<a name="secrets-create-secret"></a>

Anda dapat menggunakan konsol Secrets Manager untuk membuat rahasia untuk data sensitif Anda. Untuk informasi lebih lanjut, lihat [Membuat Rahasia Dasar](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) dalam *Panduan Pengguna AWS Secrets Manager *.

**Untuk membuat rahasia dasar**

Gunakan Secrets Manager untuk membuat rahasia untuk data sensitif Anda.

1. Buka konsol Secrets Manager di [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Pilih **Store a new secret** (Simpan rahasia baru).

1. Untuk **Select secret type** (Pilih tipe rahasia), pilih **Other type of secrets** (Tipe rahasia lainnya).

1. Tentukan detail rahasia khusus Anda sebagai pasangan **Key** (Kunci) dan **Value** (Nilai). Misalnya, Anda dapat menentukan kunci `UserName`, lalu memberikan nama pengguna yang sesuai sebagai nilainya. Tambahkan kunci kedua dengan nama `Password` dan teks kata sandi sebagai nilainya. Anda juga dapat menambahkan entri untuk nama basis data, alamat server, atau port TCP. Anda dapat menambahkan pasangan sebanyak yang Anda butuhkan untuk menyimpan informasi yang Anda butuhkan.

   Sebagai alternatif, Anda dapat memilih tab **Plaintext** dan masukkan nilai rahasia dengan cara apa pun yang Anda suka.

1. Pilih kunci AWS KMS enkripsi yang ingin Anda gunakan untuk mengenkripsi teks yang dilindungi secara rahasia. Jika Anda tidak memilihnya, Secrets Manager akan memeriksa apakah ada kunci default untuk akun tersebut, dan menggunakannya jika ada. Jika kunci default tidak ada, Secrets Manager akan membuatnya untuk Anda secara otomatis. Anda juga dapat memilih **Tambahkan kunci baru** untuk membuat kunci KMS khusus untuk rahasia ini. Untuk membuat kunci KMS Anda sendiri, Anda harus memiliki izin untuk membuat kunci KMS di akun Anda.

1. Pilih **Berikutnya**.

1. Untuk **Secret name** (Nama rahasia), ketik nama dan jalur opsional, misalnya **production/MyAwesomeAppSecret** atau **development/TestSecret**, lalu pilih **Next** (Berikutnya). Anda dapat menambahkan deskripsi secara opsional untuk membantu Anda mengingat tujuan dari rahasia ini nanti.

   Nama rahasia harus merupakan huruf, digit, atau salah satu karakter ASCII berikut: /\$1\$1 =.@-

1. (Opsional) Di sini, Anda dapat mengonfigurasi rotasi untuk rahasia Anda. Untuk prosedur ini, biarkan tetap **Disable automatic rotation** (Nonaktifkan rotasi otomatis) dan pilih **Next** (Berikutnya).

   Untuk informasi tentang cara mengonfigurasi rotasi pada rahasia baru atau yang sudah ada, lihat [Memutar AWS Secrets Manager Rahasia Anda](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html).

1. Tinjau pengaturan Anda, lalu pilih **Store secret** (Simpan rahasia) untuk menyimpan semua yang Anda masukkan sebagai rahasia baru di Secrets Manager.

# Tentukan data sensitif dengan Systems Manager Parameter Store
<a name="specifying-sensitive-data-parameters"></a>

Dengan AWS Batch, Anda dapat menyuntikkan data sensitif ke dalam wadah Anda dengan menyimpan data sensitif Anda dalam AWS Systems Manager parameter Parameter Store dan kemudian mereferensikannya dalam definisi kontainer Anda.

**Topics**
+ [Pertimbangan saat Anda menentukan data sensitif menggunakan Systems Manager Parameter Store](#secrets--parameterstore-considerations)
+ [Izin IAM yang diperlukan untuk rahasia AWS Batch](#secrets-iam-parameters)
+ [Menyuntikkan data sensitif sebagai variabel lingkungan](#secrets-envvar-parameters)
+ [Menyuntikkan data sensitif dalam konfigurasi log](#secrets-logconfig-parameters)
+ [Buat AWS Systems Manager parameter Parameter Store](#secrets-create-parameter)

## Pertimbangan saat Anda menentukan data sensitif menggunakan Systems Manager Parameter Store
<a name="secrets--parameterstore-considerations"></a>

Hal-hal berikut harus dipertimbangkan ketika menentukan data sensitif untuk kontainer menggunakan parameter Systems Manager Parameter Store.
+ Fitur ini mengharuskan instance container Anda memiliki versi 1.23.0 atau yang lebih baru dari agen kontainer. Akan tetapi, kami merekomendasikan untuk menggunakan versi agen kontainer terbaru. Untuk informasi tentang memeriksa versi agen Anda dan memperbarui ke versi terbaru, lihat [Memperbarui agen kontainer Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) dalam *Panduan Developer Amazon Elastic Container Service*.
+ Data sensitif disuntikkan ke dalam kontainer untuk tugas Anda ketika kontainer pertama kali dimulai. Jika rahasia atau parameter Parameter Store kemudian diperbarui atau dirotasi, kontainer tidak menerima nilai yang diperbarui secara otomatis. Anda harus meluncurkan tugas baru untuk memaksa peluncuran tugas baru dengan rahasia yang diperbarui.

## Izin IAM yang diperlukan untuk rahasia AWS Batch
<a name="secrets-iam-parameters"></a>

Untuk menggunakan fitur ini, Anda harus memiliki peran eksekusi dan mereferensikannya dalam ketentuan tugas Anda. Ini memungkinkan agen kontainer Amazon ECS untuk menarik AWS Systems Manager sumber daya yang diperlukan. Untuk informasi selengkapnya, lihat [AWS Batch Peran eksekusi IAM](execution-IAM-role.md).

Untuk memberikan akses ke AWS Systems Manager parameter Parameter Store yang Anda buat, tambahkan izin berikut secara manual sebagai kebijakan inline ke peran eksekusi. Untuk informasi lebih lanjut, lihat [Menambahkan dan Menghapus Kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) dalam *Panduan Pengguna IAM*.
+ `ssm:GetParameters`—Wajib jika Anda mereferensikan parameter Systems Manager Parameter Store dalam ketentuan tugas.
+ `secretsmanager:GetSecretValue`—Wajib jika Anda mereferensikan rahasia Secrets Manager secara langsung atau jika parameter Systems Manager Parameter Store Anda mereferensikan rahasia Secrets Manager dalam ketentuan tugas.
+ `kms:Decrypt`—Wajib hanya jika rahasia Anda menggunakan kunci KMS khusus dan bukan kunci default. ARN untuk kunci khusus Anda harus ditambahkan sebagai sumber daya.

Contoh kebijakan inline berikut menambahkan izin yang diperlukan:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameters",
                "secretsmanager:GetSecretValue",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-2:999999999999:parameter/<parameter_name>",
                "arn:aws:secretsmanager:us-east-2:999999999999:secret:<secret_name>",
                "arn:aws:kms:us-east-2:999999999999:key/<key_id>"
            ]
        }
    ]
}
```

------

## Menyuntikkan data sensitif sebagai variabel lingkungan
<a name="secrets-envvar-parameters"></a>

Dalam ketentuan kontainer Anda, tentukan `secrets` dengan nama variabel lingkungan yang akan ditetapkan dalam kontainer dan ARN lengkap parameter Systems Manager Parameter Store yang berisi data sensitif untuk diberikan ke kontainer.

Berikut ini adalah cuplikan ketentuan tugas yang menunjukkan format ketika mereferensikan parameter Systems Manager Parameter Store. Jika parameter Systems Manager Parameter Store ada di wilayah yang sama dengan tugas yang Anda luncurkan, Anda dapat menggunakan ARN lengkap atau nama parameter. Jika parameter ada di Wilayah yang berbeda, ARN lengkap harus disebutkan.

```
{
  "containerProperties": [{
    "secrets": [{
      "name": "environment_variable_name",
      "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter/parameter_name"
    }]
  }]
}
```

## Menyuntikkan data sensitif dalam konfigurasi log
<a name="secrets-logconfig-parameters"></a>

Dalam ketentuan kontainer Anda, ketika menentukan `logConfiguration`, Anda dapat menentukan `secretOptions` dengan nama opsi driver log yang kan ditetapkan dalam kontainer dan ARN lengkap parameter Systems Manager Parameter Store yang berisi data sensitif untuk diberikan ke kontainer.

**penting**  
Jika parameter Systems Manager Parameter Store berada di wilayah yang sama dengan tugas yang Anda luncurkan, Anda dapat menggunakan ARN lengkap atau nama parameter. Jika parameter ada di Wilayah yang berbeda, ARN lengkap harus disebutkan.

Berikut ini adalah cuplikan ketentuan tugas yang menunjukkan format ketika mereferensikan parameter Systems Manager Parameter Store.

```
{
  "containerProperties": [{
    "logConfiguration": [{
      "logDriver": "fluentd",
      "options": {
        "tag": "fluentd demo"
      },
      "secretOptions": [{
        "name": "fluentd-address",
        "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter/parameter_name"
      }]
    }]
  }]
}
```

## Buat AWS Systems Manager parameter Parameter Store
<a name="secrets-create-parameter"></a>

Anda dapat menggunakan AWS Systems Manager konsol untuk membuat parameter Systems Manager Parameter Store untuk data sensitif Anda. Untuk informasi lebih lanjut, lihat [Panduan: Membuat dan menggunakan Parameter dalam Perintah (konsol)](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-console.html) dalam *Panduan Pengguna AWS Systems Manager *.

**Untuk membuat parameter Parameter Store**

1. Buka AWS Systems Manager konsol di [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Di panel navigasi, pilih **Parameter Store**, **Create parameter** (Buat parameter).

1. Untuk **Name** (Nama), ketik hierarki dan nama parameter. Sebagai contoh, ketik `test/database_password`.

1. Untuk **Description** (Deskripsi), ketik deskripsi opsional.

1. Untuk **Type**, pilih **String**, **StringList**, atau **SecureString**.
**catatan**  
Jika Anda memilih **SecureString**, bidang **ID Kunci KMS** akan muncul. Jika Anda tidak memberikan ID kunci KMS, ARN kunci KMS, nama alias, atau alias ARN, maka sistem menggunakan. `alias/aws/ssm` Ini adalah kunci KMS default untuk Systems Manager. Untuk menghindari penggunaan kunci ini, pilih tombol kustom. Untuk informasi lebih lanjut, lihat [Menggunakan Parameter String Aman](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-about.html) dalam *Panduan Pengguna AWS Systems Manager *.
Saat Anda membuat parameter string aman di konsol dengan menggunakan `key-id` parameter dengan nama alias kunci KMS kustom atau alias ARN, Anda harus menentukan awalan sebelum alias. `alias/` Berikut ini adalah contoh ARN:  

     ```
     arn:aws:kms:us-east-2:123456789012:alias/MyAliasName
     ```
Berikut ini adalah contoh nama alias:  

     ```
     alias/MyAliasName
     ```

1. Untuk **Value** (Nilai), ketik nilai. Misalnya, `MyFirstParameter`. Jika Anda memilih **SecureString**, nilainya ditutupi persis seperti yang Anda masukkan.

1. Pilih **Create parameter** (Buat parameter).

# Otentikasi registri pribadi untuk pekerjaan
<a name="private-registry"></a>

Otentikasi registri pribadi untuk pekerjaan yang menggunakan AWS Secrets Manager memungkinkan Anda untuk menyimpan kredensi Anda dengan aman dan kemudian mereferensikannya dalam definisi pekerjaan Anda. Ini menyediakan cara untuk mereferensikan gambar kontainer yang ada di pendaftar pribadi di luar AWS yang memerlukan otentikasi dalam definisi pekerjaan Anda. Fitur ini didukung oleh pekerjaan yang dihosting di instans Amazon EC2 dan Fargate.

**penting**  
Jika definisi pekerjaan Anda mereferensikan gambar yang disimpan di Amazon ECR, topik ini tidak berlaku. Untuk informasi selengkapnya, lihat [Menggunakan Gambar Amazon ECR dengan Amazon ECS](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_ECS.html) di *Panduan Pengguna Amazon Elastic Container Registry*.

Untuk pekerjaan yang dihosting di instans Amazon EC2, fitur ini memerlukan versi `1.19.0` atau yang lebih baru dari agen penampung. Akan tetapi, kami merekomendasikan untuk menggunakan versi agen kontainer terbaru. Untuk informasi tentang cara memeriksa versi agen Anda dan memperbarui ke versi terbaru, lihat [Memperbarui agen penampung Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) di *Panduan Pengembang Layanan Kontainer Elastis Amazon*.

Untuk pekerjaan yang dihosting di Fargate, fitur ini memerlukan versi platform `1.2.0` atau yang lebih baru. Untuk selengkapnya, lihat [versi platform AWS Fargate Linux](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform-linux-fargate.html) di Panduan *Pengembang Layanan Amazon Elastic Container*.

Dalam definisi kontainer Anda, tentukan `repositoryCredentials` objek dengan detail rahasia yang Anda buat. Rahasia yang Anda referensikan bisa dari akun yang berbeda Wilayah AWS atau berbeda dari pekerjaan yang menggunakannya.

**catatan**  
Saat menggunakan AWS Batch API, AWS CLI, atau AWS SDK, jika rahasia ada Wilayah AWS sama dengan pekerjaan yang Anda luncurkan maka Anda dapat menggunakan ARN lengkap atau nama rahasia. Jika rahasia ada di akun yang berbeda, ARN penuh rahasia harus ditentukan. Saat menggunakan Konsol Manajemen AWS, ARN penuh rahasia harus ditentukan selalu.

Berikut ini adalah cuplikan definisi pekerjaan yang menunjukkan parameter yang diperlukan:

```
"containerProperties": [
  {
    "image": "private-repo/private-image",
    "repositoryCredentials": {
      "credentialsParameter": "arn:aws:secretsmanager:region:123456789012:secret:secret_name"
    }
  }
]
```

# Izin IAM yang diperlukan untuk otentikasi registri pribadi
<a name="private-auth-iam"></a>

Peran eksekusi diperlukan untuk menggunakan fitur ini. Hal ini mengizinkan agen kontainer untuk menarik citra kontainer. Untuk informasi selengkapnya, lihat [AWS Batch Peran eksekusi IAM](execution-IAM-role.md).

Untuk memberikan akses ke rahasia yang Anda buat, tambahkan izin berikut sebagai kebijakan inline ke peran eksekusi. Untuk informasi selengkapnya, lihat [Menambahkan dan Menghapus Kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).
+ `secretsmanager:GetSecretValue`
+ `kms:Decrypt`—Diperlukan hanya jika kunci Anda menggunakan kunci KMS khusus dan bukan kunci default. Nama Sumber Daya Amazon (ARN) untuk kunci kustom Anda harus ditambahkan sebagai sumber daya.

Berikut ini adalah contoh kebijakan inline yang menambahkan izin.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "secretsmanager:GetSecretValue"
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:123456789012:secret:secret_name",
                "arn:aws:kms:us-east-1:123456789012:key/key_id"
            ]
        }
    ]
}
```

------

# Tutorial: Buat rahasia untuk otentikasi registri pribadi
<a name="private-auth-enable"></a>

Selesaikan langkah-langkah berikut untuk membuat rahasia untuk kredenial registri pribadi Anda. AWS Secrets Manager

**Buat rahasia dasar**

1. Buka AWS Secrets Manager konsol di [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Pilih **Store a new secret** (Simpan rahasia baru).

1. Untuk **Pilih tipe rahasia**, pilih **Jenis rahasia lainnya**.

1. Pilih **Plaintext** dan masukkan kredensial registri privat Anda menggunakan format berikut:

   ```
   {
     "username" : "privateRegistryUsername",
     "password" : "privateRegistryPassword"
   }
   ```

1. Pilih **Berikutnya**.

1. Untuk **nama Rahasia**, masukkan jalur dan nama opsional, seperti **production/MyAwesomeAppSecret** atau**development/TestSecret**, dan pilih **Berikutnya**. Anda dapat menambahkan deskripsi secara opsional untuk membantu Anda mengingat tujuan dari rahasia ini nanti.

   Nama rahasia harus huruf ASCII, digit, atau salah satu karakter berikut:. `/_+=.@-`

1. (Opsional) Di sini, Anda dapat mengonfigurasi rotasi untuk rahasia Anda. Untuk prosedur ini, biarkan tetap **Disable automatic rotation** (Nonaktifkan rotasi otomatis) dan pilih **Next** (Berikutnya).

   Untuk petunjuk tentang cara mengonfigurasi rotasi pada rahasia baru atau yang sudah ada, lihat [Memutar AWS Secrets Manager Rahasia Anda](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html).

1. Tinjau pengaturan Anda, lalu pilih **Simpan rahasia** untuk menyimpan semua yang Anda masukkan sebagai rahasia baru di Secrets Manager.

Daftarkan definisi pekerjaan dan di bawah **Registri pribadi**, aktifkan **Otentikasi registri pribadi**. Kemudian, di **Secrets Manager ARN atau nama**, masukkan Amazon Resource Name (ARN) rahasia. Lihat informasi yang lebih lengkap di [Izin IAM yang diperlukan untuk otentikasi registri pribadi](private-auth-iam.md).

# Volume Amazon EFS
<a name="efs-volumes"></a>

Amazon Elastic File System (Amazon EFS) menyediakan penyimpanan file yang sederhana dan dapat diskalakan untuk digunakan dengan AWS Batch pekerjaan Anda. Kapasitas penyimpanan Amazon EFS bersifat elastis. Penyimpanan akan menskalakan secara otomatis saat Anda menambahkan dan menghapus file. Aplikasi Anda dapat memiliki penyimpanan yang dibutuhkan, kapan pun dibutuhkan.

Anda dapat menggunakan sistem file Amazon EFS AWS Batch untuk mengekspor data sistem file di seluruh armada instans kontainer Anda. Dengan begitu, tugas Anda memiliki akses ke penyimpanan tetap yang sama. Namun, Anda harus mengonfigurasi AMI instans kontainer untuk memasang sistem file Amazon EFS sebelum daemon Docker dimulai. Selain itu, ketentuan tugas Anda harus mereferensikan pemasangan volume di instans kontainer agar dapat menggunakan sistem file. Bagian berikut akan membantu Anda mulai menggunakan Amazon EFS dengan AWS Batch.

## Pertimbangan volume Amazon EFS
<a name="efs-volume-considerations"></a>

Hal-hal berikut harus dipertimbangkan ketika menggunakan volume Amazon EFS:
+ Untuk pekerjaan yang menggunakan EC2 sumber daya, dukungan sistem file Amazon EFS ditambahkan sebagai pratinjau publik dengan versi AMI Amazon ECS yang dioptimalkan `20191212` dengan agen penampung versi 1.35.0. Namun, dukungan sistem file Amazon EFS memasuki ketersediaan umum dengan AMI yang dioptimalkan untuk Amazon ECS versi `20200319` dengan agen kontainer versi 1.38.0, yang berisi titik akses Amazon EFS dan fitur otorisasi IAM. Kami menyarankan agar Anda menggunakan AMI yang dioptimalkan untuk Amazon ECS versi `20200319` atau yang lebih baru untuk memanfaatkan fitur ini. Untuk informasi lebih lanjut, lihat [Versi AMI yang dioptimalkan untuk Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-ami-versions.html) dalam *Panduan Developer Amazon Elastic Container Service*.
**catatan**  
Jika Anda membuat AMI sendiri, Anda harus menggunakan agen kontainer 1.38.0 atau yang lebih baru, `ecs-init` versi 1.38.0-1 atau yang lebih baru, dan menjalankan perintah berikut di instans Amazon Anda. EC2 Ini semua untuk mengaktifkan plugin volume Amazon ECS. Perintah akan tergantung pada apakah Anda menggunakan Amazon Linux 2 atau Amazon Linux sebagai citra dasar Anda.  

Amazon Linux 2  

  ```
  $ yum install amazon-efs-utils
  systemctl enable --now amazon-ecs-volume-plugin
  ```

Amazon Linux  

  ```
  $ yum install amazon-efs-utils
  sudo shutdown -r now
  ```
+ Untuk tugas yang menggunakan sumber daya Fargate, dukungan sistem file Amazon EFS ditambahkan saat menggunakan platform versi 1.4.0 atau yang lebih baru. Untuk informasi lebih lanjut, lihat [Versi platform AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) dalam *Panduan Developer Amazon Elastic Container Service*.
+ Ketika menentukan volume Amazon EFS dalam tugas yang menggunakan sumber daya Fargate, Fargate membuat kontainer pengawas yang bertanggung jawab untuk mengelola volume Amazon EFS. Kontainer pengawas menggunakan sejumlah kecil memori tugas. Kontainer pengawas akan terlihat saat dilakukan kueri titik akhir metadata tugas versi 4. Untuk informasi selengkapnya, lihat [Titik akhir metadata tugas versi 4](https://docs.aws.amazon.com/AmazonECS/latest/userguide/task-metadata-endpoint-v4-fargate.html) di *Panduan Pengguna Amazon Elastic Container Service* untuk. AWS Fargate

## Gunakan titik akses Amazon EFS
<a name="efs-volume-accesspoints"></a>

Titik akses Amazon EFS adalah titik masuk khusus aplikasi ke dalam sistem file EFS yang membantu Anda mengelola akses aplikasi ke set data bersama. Untuk informasi lebih lanjut tentang titik akses Amazon EFS dan cara mengontrol akses ke sana, lihat [Bekerja dengan Titik Akses Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) dalam *Panduan Pengguna Amazon Elastic File System*.

Titik akses dapat menerapkan identitas pengguna, termasuk grup POSIX pengguna, pada semua permintaan sistem file yang dibuat melalui titik akses. Titik akses juga dapat menerapkan direktori asal yang berbeda untuk sistem file sehingga klien hanya dapat mengakses data dalam direktori tertentu atau subdirektorinya.

**catatan**  
Saat membuat titik akses EFS, Anda menentukan jalur di sistem file yang akan berfungsi sebagai direktori asal. Saat Anda mereferensikan sistem file EFS dengan ID titik akses dalam definisi AWS Batch pekerjaan Anda, direktori root harus dihilangkan atau disetel ke `/` This memberlakukan jalur yang ditetapkan pada titik akses EFS.

Anda dapat menggunakan peran IAM AWS Batch pekerjaan untuk menegakkan bahwa aplikasi tertentu menggunakan titik akses tertentu. Dengan menggabungkan kebijakan IAM dengan titik akses, Anda dapat dengan mudah memberikan akses yang aman ke set data tertentu untuk aplikasi Anda. Fitur ini menggunakan IAM role Amazon ECS untuk fungsionalitas tugas. Untuk informasi lebih lanjut, lihat [IAM Role untuk Tugas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) dalam *Panduan Developer Amazon Elastic Container Service*.

## Tentukan sistem file Amazon EFS dalam definisi pekerjaan Anda
<a name="specify-efs-config"></a>

Untuk menggunakan volume sistem file Amazon EFS untuk kontainer Anda, Anda harus menentukan konfigurasi volume dan titik pemasangan dalam ketentuan tugas Anda. Cuplikan JSON ketentuan tugas berikut menunjukkan sintaks untuk objek `volumes` dan `mountPoints` untuk sebuah kontainer:

```
{
    "containerProperties": [
        {
            "image": "amazonlinux:2",
            "command": [
                "ls",
                "-la",
                "/mount/efs"
            ],
            "mountPoints": [
                {
                    "sourceVolume": "myEfsVolume",
                    "containerPath": "/mount/efs",
                    "readOnly": true
                }
            ],
            "volumes": [
                {
                    "name": "myEfsVolume",
                    "efsVolumeConfiguration": {
                        "fileSystemId": "fs-12345678",
                        "rootDirectory": "/path/to/my/data",
                        "transitEncryption": "ENABLED",
                        "transitEncryptionPort": integer,
                        "authorizationConfig": {
                            "accessPointId": "fsap-1234567890abcdef1",
                            "iam": "ENABLED"
                        }
                    }
                }
            ]
        }
    ]
}
```

`efsVolumeConfiguration`  
Tipe: Objek  
Wajib: Tidak  
Parameter ini ditentukan saat menggunakan volume Amazon EFS.    
`fileSystemId`  
Tipe: String  
Diperlukan: Ya  
ID sistem file Amazon EFS yang akan digunakan.  
`rootDirectory`  
Tipe: String  
Wajib: Tidak  
Direktori dalam sistem file Amazon EFS untuk pemasangan sebagai direktori asal di dalam host. Jika parameter ini diabaikan, asal volume Amazon EFS akan digunakan. Menentukan `/` memiliki efek yang sama seperti mengabaikan parameter ini. Ini dapat memiliki panjang hingga 4.096 karakter.  
Jika titik akses EFS ditentukan dalam `authorizationConfig`, parameter direktori asal harus diabaikan atau diatur ke `/`. Ini akan memberlakukan jalur yang ditetapkan pada titik akses EFS.  
`transitEncryption`  
Tipe: String  
Nilai yang valid: `ENABLED` \$1 `DISABLED`  
Wajib: Tidak  
Menentukan apakah akan mengaktifkan enkripsi untuk data Amazon EFS yang sedang transit antara AWS Batch host dan server Amazon EFS. Enkripsi transit harus diaktifkan jika otorisasi IAM Amazon EFS digunakan. Jika parameter ini diabaikan, nilai default `DISABLED` akan digunakan. Untuk informasi lebih lanjut, lihat [Mengenkripsi data saat transit](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) dalam *Panduan Pengguna Amazon Elastic File System*.  
`transitEncryptionPort`  
Tipe: Integer  
Wajib: Tidak  
Port yang digunakan saat mengirim data terenkripsi antara AWS Batch host dan server Amazon EFS. Jika Anda tidak menentukan port enkripsi transit, strategi pemilihan port yang digunakan oleh pembantu pemasangan Amazon EFS akan digunakan. Nilai harus antara 0 dan 65.535. Untuk informasi lebih lanjut, lihat [Pembantu Pemasangan EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) dalam *Panduan Pengguna Amazon Elastic File System*.  
`authorizationConfig`  
Tipe: Objek  
Wajib: Tidak  
Detail konfigurasi otorisasi untuk sistem file Amazon EFS.    
`accessPointId`  
Tipe: String  
Wajib: Tidak  
ID titik akses yang akan digunakan. Jika jalur akses ditentukan, nilai direktori asal di `efsVolumeConfiguration` harus diabaikan atau diatur ke `/`. Ini akan memberlakukan jalur yang ditetapkan pada titik akses EFS. Jika titik akses digunakan, enkripsi transit harus diaktifkan di `EFSVolumeConfiguration`. Untuk informasi lebih lanjut, lihat [Bekerja dengan Titik Akses Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) dalam *Panduan Pengguna Amazon Elastic File System*.  
`iam`  
Tipe: String  
Nilai yang valid: `ENABLED` \$1 `DISABLED`  
Wajib: Tidak  
Menentukan apakah akan menggunakan peran IAM AWS Batch job yang ditentukan dalam definisi pekerjaan saat memasang sistem file Amazon EFS. Jika diaktifkan, enkripsi transit harus diaktifkan di `EFSVolumeConfiguration`. Jika parameter ini diabaikan, nilai default `DISABLED` akan digunakan. Untuk informasi selengkapnya tentang peran eksekusi IAM, lihat[AWS Batch Peran eksekusi IAM](execution-IAM-role.md).

# Contoh definisi Job
<a name="example-job-definitions"></a>

Contoh definisi pekerjaan dalam topik berikut menggambarkan cara menggunakan pola umum seperti variabel lingkungan, substitusi parameter, dan pemasangan volume.

**Topics**
+ [Variabel lingkungan](example-use-envvars.md)
+ [Substitusi parameter](example-use-parameters.md)
+ [Menguji fungsionalitas GPU](example-test-gpu.md)
+ [Tugas paralel multisimpul](example-mnp-job-definition.md)

# Variabel lingkungan
<a name="example-use-envvars"></a>

Contoh ketentuan tugas berikut menggunakan variabel lingkungan untuk menentukan jenis file dan URL Amazon S3. Contoh khusus ini berasal dari posting blog komputasi [AWS Batch Job Creating a Simple “Fetch & Run”](https://aws.amazon.com/blogs/compute/creating-a-simple-fetch-and-run-aws-batch-job/). Skrip [https://github.com/awslabs/aws-batch-helpers/blob/master/fetch-and-run/fetch_and_run.sh](https://github.com/awslabs/aws-batch-helpers/blob/master/fetch-and-run/fetch_and_run.sh) yang dijelaskan di postingan blog tersebut menggunakan variabel lingkungan ini untuk mengunduh skrip `myjob.sh` dari S3 dan menyatakan jenis file-nya.

Meskipun perintah dan lingkungan variabel bersifat hardcoded dalam ketentuan tugas di contoh ini, Anda dapat menentukan penimpaan perintah dan variabel lingkungan untuk membuat ketentuan tugas menjadi lebih fleksibel.

```
{
    "jobDefinitionName": "fetch_and_run",
    "type": "container",
    "containerProperties": {
        "image": "123456789012.dkr.ecr.us-east-1.amazonaws.com/fetch_and_run",
        "resourceRequirements": [
            {
                "type": "MEMORY",
                "value": "2000"
            },
            {
                "type": "VCPU",
                "value": "2"
            }
        ],
        "command": [
            "myjob.sh",
            "60"
        ],
        "jobRoleArn": "arn:aws:iam::123456789012:role/AWSBatchS3ReadOnly",
        "environment": [
            {
                "name": "BATCH_FILE_S3_URL",
                "value": "s3://amzn-s3-demo-source-bucket/myjob.sh"
            },
            {
                "name": "BATCH_FILE_TYPE",
                "value": "script"
            }
        ],
        "user": "nobody"
    }
}
```

# Substitusi parameter
<a name="example-use-parameters"></a>

Contoh ketentuan tugas berikut menggambarkan cara untuk memungkinkan substitusi parameter dan mengatur nilai default.

Deklarasi `Ref::` di bagian `command` digunakan untuk mengatur placeholder untuk substitusi parameter. Ketika Anda mengirim tugas dengan ketentuan tugas ini, Anda menentukan penimpaan parameter untuk mengisi nilai-nilai tersebut, seperti `inputfile` dan `outputfile`. Bagian `parameters` yang mengikutinya akan menetapkan default untuk `codec`, tetapi Anda dapat mengganti parameter tersebut sesuai kebutuhan.

Untuk informasi selengkapnya, lihat [Parameter](job_definition_parameters.md#parameters).

```
{
    "jobDefinitionName": "ffmpeg_parameters",
    "type": "container",
    "parameters": {"codec": "mp4"},
    "containerProperties": {
        "image": "my_repo/ffmpeg",
        "resourceRequirements": [
            {
                "type": "MEMORY",
                "value": "2000"
            },
            {
                "type": "VCPU",
                "value": "2"
            }
        ],
        "command": [
            "ffmpeg",
            "-i",
            "Ref::inputfile",
            "-c",
            "Ref::codec",
            "-o",
            "Ref::outputfile"
        ],
        "jobRoleArn": "arn:aws:iam::123456789012:role/ECSTask-S3FullAccess",
        "user": "nobody"
    }
}
```

# Menguji fungsionalitas GPU
<a name="example-test-gpu"></a>

Contoh ketentuan tugas berikut menguji apakah beban kerja GPU AMI yang dideskripsikan dalam [Gunakan beban kerja GPU AMI](batch-gpu-ami.md) sudah dikonfigurasi dengan benar. [Contoh definisi pekerjaan ini menjalankan contoh pengklasifikasi MNIST TensorFlow mendalam dari.](https://github.com/tensorflow/tensorflow/blob/r1.8/tensorflow/examples/tutorials/mnist/mnist_deep.py) GitHub

```
{
    "containerProperties": {
        "image": "tensorflow/tensorflow:1.8.0-devel-gpu",
        "resourceRequirements": [
            {
                "type": "MEMORY",
                "value": "32000"
            },
            {
                "type": "VCPU",
                "value": "8"
            }
        ],
        "command": [
            "sh",
            "-c",
            "cd /tensorflow/tensorflow/examples/tutorials/mnist; python mnist_deep.py"
        ]
    },
    "type": "container",
    "jobDefinitionName": "tensorflow_mnist_deep"
}
```

Anda dapat membuat file dengan teks JSON sebelumnya yang disebut `tensorflow_mnist_deep.json` dan kemudian mendaftarkan definisi AWS Batch pekerjaan dengan perintah berikut:

```
aws batch register-job-definition --cli-input-json file://tensorflow_mnist_deep.json
```

# Tugas paralel multisimpul
<a name="example-mnp-job-definition"></a>

Contoh ketentuan tugas berikut menggambarkan tugas paralel multisimpul. Untuk informasi lebih lanjut, lihat [Membangun alur kerja dinamika molekuler yang digabungkan erat dengan tugas paralel multisimpul di AWS Batch](https://aws.amazon.com/blogs/compute/building-a-tightly-coupled-molecular-dynamics-workflow-with-multi-node-parallel-jobs-in-aws-batch/) dalam blog *AWS Compute*.

```
{
  "jobDefinitionName": "gromacs-jobdef",
  "jobDefinitionArn": "arn:aws:batch:us-east-2:123456789012:job-definition/gromacs-jobdef:1",
  "revision": 6,
  "status": "ACTIVE",
  "type": "multinode",
  "parameters": {},
  "nodeProperties": {
    "numNodes": 2,
    "mainNode": 0,
    "nodeRangeProperties": [
      {
        "targetNodes": "0:1",
        "container": {
          "image": "123456789012.dkr.ecr.us-east-2.amazonaws.com/gromacs_mpi:latest",
          "resourceRequirements": [
              {
                  "type": "MEMORY",
                  "value": "24000"
              },
              {
                  "type": "VCPU",
                  "value": "8"
              }
          ],
          "command": [],
          "jobRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole",
          "ulimits": [],
          "instanceType": "p3.2xlarge"
        }
      }
    ]
  }
}
```