Mengkonfigurasi perilaku antrian run - Amazon CodeCatalyst

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

Mengkonfigurasi perilaku antrian run

Secara default di Amazon CodeCatalyst, ketika beberapa alur kerja berjalan terjadi pada saat yang sama, CodeCatalyst mengantri, dan memprosesnya satu per satu, dalam urutan dimulai. Anda dapat mengubah perilaku default ini dengan menentukan mode run. Ada beberapa mode lari:

  • (Default) Mode lari antrian — CodeCatalyst proses berjalan satu per satu

  • Mode lari yang digantikan - CodeCatalyst proses berjalan satu per satu, dengan proses yang lebih baru menyalip yang lebih lama

  • Parallel run mode — CodeCatalyst proses berjalan secara paralel

Untuk informasi selengkapnya tentang alur kerja berjalan, lihatMenjalankan alur kerja.

Tentang mode lari antrian

Dalam mode lari antrian, run terjadi secara seri, dengan menunggu berjalan membentuk antrian.

Antrian terbentuk di titik masuk ke tindakan dan grup tindakan, sehingga Anda dapat memiliki beberapa antrian dalam alur kerja yang sama (lihat). Figure 1 Ketika lari antrian memasuki suatu tindakan, tindakan terkunci dan tidak ada jalan lain yang bisa masuk. Ketika run selesai dan keluar dari aksi, aksi menjadi tidak terkunci dan siap untuk menjalankan berikutnya.

Figure 1mengilustrasikan alur kerja yang dikonfigurasi dalam mode lari antrian. Ini menunjukkan:

  • Tujuh berjalan bekerja dengan cara mereka melalui alur kerja.

  • Dua antrian: satu di luar entri ke sumber input (Repo: main), dan satu di luar entri ke tindakan. BuildTestActionGroup

  • Dua blok terkunci: sumber input (Repo: Main) dan. BuildTestActionGroup

Berikut adalah bagaimana hal-hal akan terjadi saat alur kerja menjalankan pemrosesan akhir:

  • Ketika Run-4D444 selesai mengkloning repositori sumber, itu akan keluar dari sumber input dan bergabung dengan antrian di belakang Run-3C333. Kemudian, Run-5E555 akan masuk ke sumber input.

  • Ketika Run-1A111 selesai membangun dan menguji, itu akan keluar dari tindakan dan memasuki tindakan. BuildTestActionGroupDeployAction Kemudian, Run-2B222 akan memasuki aksi. BuildTestActionGroup

Gambar 1: Alur kerja yang dikonfigurasi dalam 'mode lari antrean'

Alur kerja yang dikonfigurasi dalam 'mode lari antrean'

Gunakan mode lari antrian jika:

  • Anda ingin menjaga one-to-one hubungan antara fitur dan proses — fitur ini dapat dikelompokkan saat menggunakan mode yang diganti. Misalnya, saat Anda menggabungkan fitur 1 di komit 1, jalankan 1 dimulai, dan saat Anda menggabungkan fitur 2 di komit 2, jalankan 2 dimulai, dan seterusnya. Jika Anda menggunakan mode yang digantikan alih-alih mode antrian, fitur Anda (dan komit) akan dikelompokkan bersama dalam proses yang menggantikan yang lain.

  • Anda ingin menghindari kondisi balapan dan masalah tak terduga yang mungkin terjadi saat menggunakan mode paralel. Misalnya, jika dua pengembang perangkat lunak, Wang dan Saanvi, memulai alur kerja berjalan pada waktu yang kira-kira bersamaan untuk menyebarkan ke ECS cluster Amazon, proses Wang mungkin memulai tes integrasi pada cluster sementara jalankan Saanvi menyebarkan kode aplikasi baru ke cluster, menyebabkan tes Wang gagal atau menguji kode yang salah. Sebagai contoh lain, Anda mungkin memiliki target yang tidak memiliki mekanisme penguncian, dalam hal ini kedua proses dapat menimpa perubahan satu sama lain dengan cara yang tidak terduga.

  • Anda ingin membatasi beban pada sumber daya komputasi yang CodeCatalyst digunakan untuk memproses proses Anda. Misalnya, jika Anda memiliki tiga tindakan dalam alur kerja Anda, Anda dapat memiliki maksimum tiga proses yang terjadi pada saat yang sama. Memaksakan batasan pada jumlah run yang dapat terjadi sekaligus membuat throughput run lebih dapat diprediksi.

  • Anda ingin membatasi jumlah permintaan yang dibuat ke layanan pihak ketiga berdasarkan alur kerja. Misalnya, alur kerja Anda mungkin memiliki tindakan build yang menyertakan instruksi untuk menarik gambar dari Docker Hub. Docker Hub membatasi jumlah permintaan tarik yang dapat Anda buat hingga jumlah tertentu per jam per akun, dan Anda akan dikunci jika melampaui batas. Menggunakan mode lari antrian untuk memperlambat throughput run Anda akan memiliki efek menghasilkan lebih sedikit permintaan ke Docker Hub per jam, sehingga membatasi potensi penguncian dan mengakibatkan kegagalan build dan run.

Ukuran antrian maksimal: 50

Catatan tentang ukuran antrian maksimum:

  • Ukuran antrian maksimum mengacu pada jumlah maksimum proses yang diizinkan di semua antrian dalam alur kerja.

  • Jika antrian menjadi lebih panjang dari 50 run, maka CodeCatalyst turunkan lari ke-51 dan selanjutnya.

Perilaku kegagalan:

Jika proses menjadi tidak responsif saat sedang diproses oleh suatu tindakan, maka proses di belakangnya ditahan dalam antrian hingga waktu tindakan habis. Waktu tindakan habis setelah satu jam.

Jika run gagal di dalam suatu tindakan, maka lari antrian pertama di belakangnya diizinkan untuk melanjutkan.

Tentang mode lari yang digantikan

Mode lari yang diganti sama dengan mode lari antrian kecuali bahwa:

  • Jika proses antrian mengejar lari lain dalam antrian, proses selanjutnya menggantikan (mengambil alih dari) proses sebelumnya, dan proses sebelumnya dibatalkan dan ditandai sebagai 'digantikan'.

  • Sebagai hasil dari perilaku yang dijelaskan dalam bullet pertama, antrian hanya dapat menyertakan satu run ketika mode run digantikan digunakan.

Menggunakan alur kerja Figure 1 sebagai panduan, menerapkan mode run yang digantikan ke alur kerja ini akan menghasilkan hal berikut:

  • Run-7G777 akan menggantikan dua run lainnya dalam antreannya, dan akan menjadi satu-satunya run yang tersisa di Antrian #1. Run-6F666 dan Run-5E555 akan dibatalkan.

  • Run-3C333 akan menggantikan Run-2B222 dan menjadi satu-satunya run yang tersisa di Antrian #2. Run-2b222 akan dibatalkan.

Gunakan mode lari yang digantikan jika Anda ingin:

  • throughput yang lebih baik daripada dengan mode antrian

  • bahkan lebih sedikit permintaan ke layanan pihak ketiga dibandingkan dengan mode antrian; ini menguntungkan jika layanan pihak ketiga memiliki batas tarif, seperti Docker Hub

Tentang mode parallel run

Dalam mode parallel run, run tidak tergantung satu sama lain dan jangan menunggu proses lain selesai sebelum memulai. Tidak ada antrian, dan run throughput hanya dibatasi oleh seberapa cepat tindakan di dalam alur kerja selesai.

Gunakan mode parallel run di lingkungan pengembangan di mana setiap pengguna memiliki cabang fitur mereka sendiri dan menyebarkan ke target yang tidak dibagikan oleh pengguna lain.

penting

Jika Anda memiliki target bersama yang dapat diterapkan oleh beberapa pengguna, seperti fungsi Lambda di lingkungan produksi, jangan gunakan mode paralel, karena kondisi balapan dapat terjadi. Kondisi balapan terjadi ketika alur kerja paralel berjalan mencoba mengubah sumber daya bersama pada saat yang sama, yang mengarah ke hasil yang tidak dapat diprediksi.

Jumlah maksimum parallel run: 1000 per CodeCatalyst spasi

Mengkonfigurasi mode lari

Anda dapat mengatur mode lari ke antrian, digantikan, atau paralel. Defaultnya antri.

Saat Anda mengubah mode lari dari antrian atau digantikan menjadi paralel CodeCatalyst , membatalkan proses yang diantrian, dan memungkinkan proses yang saat ini sedang diproses oleh tindakan selesai sebelum membatalkannya.

Ketika Anda mengubah mode run dari parallel ke antrian atau digantikan, memungkinkan CodeCatalyst semua berjalan paralel yang berjalan saat ini selesai. Setiap proses yang Anda mulai setelah mengubah mode run menjadi antrian atau digantikan menggunakan mode baru.

Visual
Untuk mengubah mode lari menggunakan editor visual
  1. Buka CodeCatalyst konsol di https://codecatalyst.aws/.

  2. Pilih proyek Anda.

  3. Di panel navigasi, pilih CI/CD, lalu pilih Alur kerja.

  4. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

  5. Pilih Edit.

  6. Di kanan atas, pilih properti Workflow.

  7. Perluas Lanjutan, dan di bawah mode Jalankan, pilih salah satu dari berikut ini:

    1. Antrian — lihat Tentang mode lari antrian

    2. Digantikan — lihat Tentang mode lari yang digantikan

    3. Paralel - lihat Tentang mode parallel run

  8. (Opsional) Pilih Validasi untuk memvalidasi YAML kode alur kerja sebelum melakukan.

  9. Pilih Komit, masukkan pesan komit, dan pilih Komit lagi.

YAML
Untuk mengubah mode lari menggunakan YAML editor
  1. Buka CodeCatalyst konsol di https://codecatalyst.aws/.

  2. Pilih proyek Anda.

  3. Di panel navigasi, pilih CI/CD, lalu pilih Alur kerja.

  4. Pilih nama alur kerja Anda. Anda dapat memfilter berdasarkan repositori sumber atau nama cabang tempat alur kerja ditentukan, atau memfilter berdasarkan nama atau status alur kerja.

  5. Pilih Edit.

  6. Pilih YAML.

  7. Tambahkan RunMode properti, seperti ini:

    Name: Workflow_6d39 SchemaVersion: "1.0" RunMode: QUEUED|SUPERSEDED|PARALLEL

    Untuk informasi lebih lanjut, lihat deskripsi RunMode properti di Properti tingkat atas bagianDefinisi alur kerja YAML.

  8. (Opsional) Pilih Validasi untuk memvalidasi YAML kode alur kerja sebelum melakukan.

  9. Pilih Komit, masukkan pesan komit, dan pilih Komit lagi.