View a markdown version of this page

Menjalankan pekerjaan arsitektur campuran (X86_64 dan ARM64) - AWS Batch

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

Menjalankan pekerjaan arsitektur campuran (X86_64 dan ARM64)

Lingkungan komputasi Instans Terkelola Amazon ECS tunggal dan antrian pekerjaan dapat menjalankan kedua pekerjaan X86_64 dan ARM64 (berbasis prosesor AWS Graviton). Setiap pekerjaan berjalan pada kapasitas yang sesuai dengan arsitektur CPU yang dinyatakan dalam definisi pekerjaannya. Atur arsitektur dengan runtimePlatform.cpuArchitecture dalam definisi pekerjaan. Anda tidak mengkonfigurasi arsitektur pada lingkungan komputasi.

Untuk menjalankan pekerjaan arsitektur campuran, berikan image kontainer yang mendukung kedua arsitektur (manifes gambar multi-arsitektur), dan daftarkan satu definisi pekerjaan per arsitektur yang ditetapkan ke atau. runtimePlatform.cpuArchitecture X86_64 ARM64 Anda dapat mengirimkan pekerjaan untuk salah satu definisi pekerjaan ke antrian pekerjaan yang sama.

"runtimePlatform": { "operatingSystemFamily": "LINUX", "cpuArchitecture": "ARM64" }

Kemudian atur lingkungan komputasi dengan salah satu cara berikut:

  • Hilangkan instanceRequirements untuk membuat semua jenis instans memenuhi syarat.

  • Tentukan allowedInstanceTypes yang mencakup setiap arsitektur yang digunakan pekerjaan Anda.

Jangan tentukan jenis instance

Menghilangkan instanceRequirements bidang dari managedInstancesProvider.instanceLaunchTemplate (pengaturan yang membatasi jenis instance mana yang dapat digunakan lingkungan komputasi). Semua jenis instans memenuhi syarat, dan Amazon ECS memilih kapasitas yang sesuai dengan setiap pekerjaan. runtimePlatform.cpuArchitecture Pekerjaan X86_64 diluncurkan pada instance x86, dan ARM64 pekerjaan diluncurkan pada instance AWS Graviton dari lingkungan komputasi yang sama.

Tentukan jenis instance yang mencakup arsitektur yang diperlukan

Jika Anda mengaturinstanceRequirements.allowedInstanceTypes, sertakan jenis instance untuk setiap arsitektur yang dinyatakan pekerjaan Anda. Amazon ECS menyimpulkan arsitektur dari jenis instans yang Anda izinkan. Jenis instans yang diizinkan harus memenuhi setiap pekerjaanruntimePlatform.cpuArchitecture. Misalnya, untuk menjalankan kedua arsitektur, termasuk:

  • keluarga x86, seperti m5 dan c5

  • AWS Keluarga Graviton, seperti dan m7g c7g

Pekerjaan gagal jika tidak ada jenis instance yang cocok tersedia

Jika jenis instance yang diizinkan tidak menyertakan tipe apa pun yang cocok dengan arsitektur pekerjaan yang dideklarasikan, pekerjaan gagal karena alasan berikut:

ResourceInitializationError: No available instance types were able to satisfy the task and placement constraints.

Misalnya, jika hanya allowedInstanceTypes mencantumkan keluarga x86 dan Anda mengirimkan ARM64 pekerjaan, pekerjaan gagal dengan kesalahan ini. Untuk mengatasi masalah ini, tambahkan keluarga instance AWS Graviton keallowedInstanceTypes. Atau, hapus instanceRequirements untuk mengizinkan semua jenis instance.