Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Validasi dan pecahkan masalah penyebaran armada kontainer
Penyebaran armada, yang disebut penyebaran dalam topik ini, adalah proses yang Amazon GameLift Servers digunakan untuk mengganti kontainer pada instance armada kontainer dengan kontainer yang menggunakan pengaturan baru armada, seperti versi definisi grup kontainer baru. Alih-alih mengganti setiap kontainer yang berjalan sekaligus, penerapan pertama-tama memverifikasi bahwa kontainer baru dapat meng-host sesi permainan dan kemudian mengganti sisanya secara bertahap untuk menangkap perubahan buruk sebelum mereka menyebarkan ke seluruh armada. Armada kontainer memulai penyebaran dalam tiga situasi:
-
Saat Anda membuat armada dengan definisi grup kontainer. Jika CreateContainerFleetpermintaan Anda menyertakan definisi grup kontainer server game, pembuatan armada memulai penerapan yang menginstal kontainer Anda pada instance baru armada. Jika Anda membuat armada tanpa definisi grup kontainer, tidak ada instance yang diterapkan dan armada tidak memiliki penerapan hingga Anda menambahkan definisi grup kontainer server game.
-
Saat Anda memperbarui definisi grup kontainer armada atau pengaturan kontainer lainnya. UpdateContainerFleetmemulai penerapan saat pembaruan mengubah kontainer yang dijalankan armada, misalnya saat Anda menentukan versi definisi grup kontainer server game baru. Pembaruan yang tidak mengubah pengaturan ini tidak memulai penerapan. Untuk informasi tentang setelan mana yang memulai penerapan, lihatPerbarui GameLift Peladen Amazon armada kontainer terkelola.
-
Saat Anda menambahkan lokasi ke armada aktif. Amazon GameLift Serversmemulai penyebaran di lokasi baru menggunakan definisi grup kontainer yang dikonfigurasi armada. Lokasi yang ada tidak digunakan kembali. Anda tidak dapat menambahkan lokasi saat penerapan lain sedang berlangsung.
Untuk melihat detail penerapan, panggil DescribeFleetDeployment, yang mengembalikan FleetDeploymentobjek. Ini mencakup ID penerapan, status, dan konfigurasi, bersama dengan versi definisi grup kontainer yang digunakan dan versi rollback. DeploymentDetails.LatestDeploymentIdProperti armada mengidentifikasi penyebaran terbarunya.
catatan
Penerapan hanya berlaku untuk armada kontainer terkelola.
Konfigurasikan penerapan
Penyebaran DeploymentConfigurationadalah seperangkat aturan yang mengontrol bagaimana penyebaran berlangsung di seluruh armada dan apa yang terjadi jika gagal. Untuk informasi tentang nilai dan default setiap setelan, lihat DeploymentConfigurationdi Referensi API. Amazon GameLift Servers
Anda mengatur konfigurasi penerapan saat memanggil UpdateContainerFleet atau mengedit armada di konsol. CreateContainerFleettidak menerima konfigurasi penerapan, jadi penerapan pertama armada selalu menggunakan nilai default.
Bagaimana GameLift Peladen Amazon memvalidasi penerapan
Saat penerapan dimulai, Amazon GameLift Servers pertama-tama memvalidasi grup kontainer server game di setiap lokasi armada. Ini menjalankan kontainer baru pada sebagian kecil dari kapasitas armada yang ada dan memeriksa apakah mereka menjadi sehat. Grup kontainer server game baru sehat ketika kontainer server game memanggil ProcessReady() untuk melaporkan bahwa ia siap untuk meng-host sesi game.
Validasi awal ini memeriksa grup kontainer server game. Jika armada Anda juga menggunakan definisi grup kontainer per instans, Amazon GameLift Servers perbarui grup tersebut setelah memperbarui grup server game. Amazon GameLift Serversmemeriksa grup per-instance secara terpisah sebelum penerapan selesai; mereka tidak menggunakan pemeriksaan server game. ProcessReady()
Validasi gagal jika grup kontainer server game baru tidak menjadi sehat sebelum Amazon GameLift Servers berhenti menunggu. Untuk informasi tentang alasan umum dan cara menyelidikinya, lihatDebug penerapan yang terganggu.
Jika validasi gagal, Amazon GameLift Servers terapkan penerapan ImpairmentStrategy dan tetapkan status penerapan ke IMPAIRED (forMAINTAIN) atau ROLLBACK_IN_PROGRESS (for). ROLLBACK Hanya setelah validasi berhasil di suatu lokasi, Amazon GameLift Servers ganti wadah yang tersisa yang menjalankan server game Anda di sana.
Berapa lama validasi dibutuhkan
Validasi membutuhkan waktu lebih lama ketika kapasitas yang Amazon GameLift Servers digunakan untuk validasi adalah hosting sesi game yang dilindungi. Armada NewGameSessionProtectionPolicy menentukan perlindungan default untuk sesi permainan baru. Nilai yang valid adalah NoProtection dan FullProtection. Penerapan ProtectionStrategy menentukan apakah penerapan menghormati perlindungan itu. Nilai yang valid adalah WITH_PROTECTION dan IGNORE_PROTECTION.
Ketika armada telah NewGameSessionProtectionPolicy disetel ke FullProtection dan penerapan telah ProtectionStrategy disetelWITH_PROTECTION, Amazon GameLift Servers memungkinkan batas waktu validasi yang lebih lama untuk sesi game yang dilindungi berakhir. Dengan kombinasi lainnya, ia menggunakan batas waktu yang lebih pendek.
penting
Jika kontainer baru Anda tidak pernah menjadi sehat, dan armada menggunakan FullProtection dengan WITH_PROTECTION penerapan, penyebaran dapat tetap dalam IN_PROGRESS status hingga sesi game yang dilindungi berakhir sebelum melaporkan kegagalan. Untuk mendapatkan sinyal yang lebih cepat, gunakan gambar kontainer baru IGNORE_PROTECTION saat Anda mengujinya, atau batalkan penerapannya sendiri. Untuk petunjuk tentang membatalkan penerapan, lihat. Membatalkan penerapan dengan memulai yang baru
Jika Anda melindungi sesi permainan individu dengan UpdateGameSessionNewGameSessionProtectionPolicyarmada yangNoProtection, Amazon GameLift Servers tidak memperpanjang penantiannya. Jika sesi game tersebut tidak berakhir tepat waktu, validasi dapat gagal meskipun konfigurasi baru berfungsi.
Lacak status penyebaran
Untuk melacak penyebaran di Amazon GameLift Serverskonsol
Untuk informasi tentang nilai status penerapan dan arti masing-masing, lihat DeploymentStatusdi Referensi Amazon GameLift Servers API.
Debug penerapan yang terganggu
Penerapan yang terganggu berarti bahwa kontainer baru tidak menjadi sehat selama validasi: tidak ada kontainer server game yang dipanggil ProcessReady() sebelum Amazon GameLift Servers berhenti menunggu, seringkali karena kontainer keluar atau gagal memulai. Penyebabnya biasanya di image container atau server game. Cari tahu mengapa wadah keluar atau mengapa server game tidak pernah dilaporkan siap.
Tinjau log peristiwa armada
Log peristiwa armada mencatat apa yang Amazon GameLift Servers diamati selama penyebaran. Lihat di tab Acara armada di konsol, atau hubungi describe-fleet-events. Kode peristiwa berikut relevan dengan penerapan yang gagal:
-
GAME_SERVER_CONTAINER_GROUP_CRASHEDdanPER_INSTANCE_CONTAINER_GROUP_CRASHED— grup kontainer keluar atau gagal memulai. Ketika Amazon GameLift Servers memiliki kode keluar kontainer, itu termasuk kode dalam pesan acara. -
GAME_SERVER_CONTAINER_GROUP_REPLACED_UNHEALTHYdanINSTANCE_REPLACED_UNHEALTHY— Amazon GameLift Servers mengganti grup kontainer atau instance yang tidak menjadi sehat. Ini dapat berulang di seluruh lokasi armada saat penyebaran gagal. -
SERVER_PROCESS_MISCONFIGURED_CONTAINER_PORT— kontainer server game menggunakan port yang tidak cocok dengan port yang dideklarasikan dalam definisi grup kontainer. -
LOCATION_STATE_UPDATINGdanLOCATION_STATE_ACTIVE— ini menandai penyebaran di setiap lokasi, yang membantu Anda mengatur acara lain dengan penerapan yang menghasilkannya. -
COMPUTE_LOG_UPLOAD_FAILED— pengumpulan log untuk wadah berhenti berfungsi, jadi log dari wadah itu mungkin tidak lengkap atau hilang.
Baca log kontainer
LogConfigurationSet armada kontainer di mana Amazon GameLift Servers mengirimkan output standar setiap kontainer: CLOUDWATCH (default),S3, atauNONE. Tetap atur ke CLOUDWATCH atau S3 lebih sehingga output kontainer tersedia saat penerapan gagal. Ketika kontainer gagal sebelum server game Anda mulai berjalan, misalnya karena titik masuk kontainer mengacu pada file yang tidak ada dalam gambar, output ini adalah satu-satunya catatan kegagalan. Untuk informasi tentang pencatatan kontainer, lihatPerbedaan logging: Armada yang Dikelola EC2 vs Kontainer.
Connect ke wadah yang rusak
Jika Anda menerapkan dengan strategi MAINTAIN penurunan nilai, Anda dapat terhubung ke wadah yang Amazon GameLift Servers menyimpan dan memeriksanya secara langsung. Gunakan ini untuk memeriksa izin file, mengonfirmasi file mana yang sebenarnya berisi gambar, dan jalankan server game yang dapat dieksekusi dengan tangan untuk melihat apa yang dilaporkan. Untuk petunjuk tentang menghubungkan ke wadah, lihatConnect ke kontainer.
Masalah penyebaran umum
Gejala-gejala berikut umum terjadi pada penyebaran yang gagal atau lambat, bersama dengan penyebab biasanya.
- Wadah mulai dan keluar segera, berulang-ulang.
-
Jika titik masuk kontainer tidak dapat berjalan, periksa hal berikut:
-
Verifikasi bahwa skrip peluncuran dan server game yang dapat dieksekusi ditandai dapat dieksekusi dalam gambar.
-
Konfirmasikan bahwa arsitektur CPU executable cocok dengan tipe instance armada.
-
Periksa apakah gambar berisi penerjemah dan pustaka bersama yang dibutuhkan oleh executable.
Untuk informasi tentang membuat gambar yang Amazon GameLift Servers dapat dijalankan, lihatBuat gambar kontainer untuk GameLift Server Amazon.
-
- Penyebarannya lambat tetapi tidak ada yang gagal.
-
WITH_PROTECTIONPenyebaran menunggu sesi permainan yang dilindungi berakhir, baik selama validasi maupun saat menggantikan kontainer armada. Periksa sesi permainan aktif armada sebelum Anda memperlakukan penyebaran yang lama sebagai kegagalan. Untuk informasi tentang waktu tunggu validasi, lihatBerapa lama validasi dibutuhkan.
Membatalkan penerapan dengan memulai yang baru
Untuk membatalkan penyebaran dan mengembalikan armada ke konfigurasi sebelumnya, panggil UpdateContainerFleet atau edit armada di konsol untuk memulai penerapan baru yang membalikkan perubahan. Kasus yang paling umum adalah versi definisi grup kontainer baru, yang dikembalikan oleh prosedur berikut. Amazon GameLift Serversmerekam versi yang digunakan armada saat terakhir aktif pada penerapan yang sedang berlangsung sebagai RollbackGameServerBinaryArn danRollbackPerInstanceBinaryArn, jadi Anda tidak perlu mencari tahu versi mana yang akan kembali. Jika penerapan juga mengubah pengaturan lain, seperti konfigurasi log atau rentang port koneksi, atur kembali ke UpdateContainerFleet permintaan yang sama.
Sebelum Anda mulai, konfigurasikan AWS CLI untuk akun Anda dan identifikasi rumah armada Wilayah AWS. Prosedur ini memerlukan penerapan yang sedang berlangsung dan versi definisi grup kontainer sebelumnya untuk dipulihkan. Gunakan list-fleet-deployments untuk menemukan ID penyebaran. Untuk petunjuk, lihat Lacak status penyebaran.
Dalam perintah, ganti fleet-id dengan ID armada Anda, deployment-id dengan ID penyebaran yang sedang berlangsung, dan fleet-home-region dengan rumah armada. Wilayah AWS
Untuk mengganti penerapan yang sedang berlangsung dengan versi penampung sebelumnya (AWS CLI)
-
Gunakan AWS CLI perintah berikut untuk mendapatkan versi untuk kembali ke:
aws gamelift describe-fleet-deployment \ --fleet-idfleet-id\ --deployment-iddeployment-id\ --regionfleet-home-regionSebagai tanggapan,
RollbackGameServerBinaryArnpegang versi definisi grup kontainer server game yang digunakan armada saat terakhir aktif. Jika armada memiliki grup kontainer per-instance, simpan versiRollbackPerInstanceBinaryArntersebut. -
Gunakan AWS CLI perintah berikut untuk memulai penerapan baru dengan versi itu. Ganti
rollback-game-server-cgd-arndenganRollbackGameServerBinaryArnnilai dari langkah 1. Jika armada memiliki grup kontainer per-instance, lewati juga--per-instance-container-group-definition-namenilainya.RollbackPerInstanceBinaryArnaws gamelift update-container-fleet \ --fleet-idfleet-id\ --game-server-container-group-definition-namerollback-game-server-cgd-arn\ --regionfleet-home-region -
Konfirmasikan bahwa penyebaran sebelumnya melaporkan
CANCELLEDstatus dan bahwa penerapan baru melaporkanCOMPLETEsaat selesai.
catatan
Membatalkan penerapan dengan cara ini bukanlah penghentian instan. Penyebaran baru berjalan melalui langkah-langkah yang sama seperti yang lain, termasuk validasi, sehingga armada membutuhkan waktu untuk menyelesaikannya. Versi yang berhasil dijalankan armada sebelumnya biasanya divalidasi dengan cepat.
Topik terkait
Untuk informasi selengkapnya, lihat topik berikut.