Saya tahu ini adalah utas lama, tetapi solusinya jauh lebih mudah daripada sebagian besar jawaban di sini.
Cara memperbarui wadah yang sedang berjalan dalam dua langkah:
Di bawah ini mengasumsikan Anda memiliki layanan yang menjalankan tugas yang mereferensikan penandaan kontainer latest
(atau penandaan statis lainnya yang tidak mengubah pembaruan lintas penampung).
- Unggah wadah baru Anda ke repositori
- Secara manual bunuh tugas Anda
Jika tujuannya adalah agar kita mendapatkan bangunan baru di alam bebas, kita tidak benar-benar perlu bergantung pada layanan kita untuk itu (dan saya berpendapat, kita tidak seharusnya bergantung pada itu). Jika Anda mematikan tugas Anda, layanan akan mengenalinya tidak memiliki Desired Count
tugas yang sedang berjalan, dan hanya memutar yang baru. Ini akan memicu penarikan kembali wadah Anda, berdasarkan tag yang sama.
Layanan ECS adalah jaring keamanan HA, bukan pengganti untuk pipa CD / CI Anda.
Bonus: Jika tujuannya adalah agar layanan mengenali wadah baru telah didorong (terlepas dari tag), kami perlu mempertimbangkan implikasinya. Apakah kita benar-benar menginginkan layanan dasar yang mengendalikan pipa penempatan kita? Mungkin tidak. Idealnya, Anda akan mendorong wadah Anda dengan tag yang berbeda (berdasarkan versi rilis atau sesuatu). Dalam hal ini, penghalang untuk penyebaran adalah bahwa layanan harus diberi tahu tentang sesuatu yang baru - sekali lagi, ini merupakan jaring pengaman untuk layanan tersebut, dan tidak lebih.
Cara menyebarkan tag baru dalam tiga langkah:
- Unggah yang baru
container:tag
ke repositori
- Buat definisi tugas baru dengan merujuk yang baru
tag
- Perbarui layanan Anda untuk referensi definisi tugas baru
- Hati-hati di sini! Jika Anda telah
minimum healthy
mengatur untuk 0%
beberapa jawaban lain menyarankan, Anda memberi AWS wewenang penuh untuk membunuh seluruh layanan Anda untuk menyebarkan definisi tugas baru. Jika Anda lebih suka penyebaran bergulir / bertahap, atur minimum Anda menjadi sesuatu >0%
.
- Atau, atur
minimum healthy
ke 100%
dan maximum healthy
ke sesuatu >100%
untuk memungkinkan layanan Anda menyebarkan tugas baru sebelum mematikan yang lama (meminimalkan dampaknya bagi pengguna Anda).
Dari titik ini, layanan Anda akan secara otomatis mengenali bahwa Anda telah menentukan tugas baru, dan bekerja menyebarkannya berdasarkan minimum
/ maximum
ambang batas sehat yang telah Anda konfigurasi.