Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Valider et dépanner les déploiements de flottes de conteneurs
Un déploiement de flotte, appelé déploiement dans cette rubrique, est le processus Amazon GameLift Servers utilisé pour remplacer les conteneurs des instances d'un parc de conteneurs par des conteneurs utilisant les nouveaux paramètres de la flotte, tels qu'une nouvelle version de définition de groupe de conteneurs. Au lieu de remplacer tous les conteneurs en cours d'exécution en une seule fois, un déploiement vérifie d'abord que les nouveaux conteneurs peuvent héberger des sessions de jeu, puis remplace progressivement les autres pour détecter les modifications indésirables avant qu'ils ne soient déployés sur l'ensemble de la flotte. Une flotte de conteneurs commence un déploiement dans trois situations :
-
Lorsque vous créez une flotte avec une définition de groupe de conteneurs. Si votre CreateContainerFleetdemande inclut une définition de groupe de conteneurs de serveurs de jeu, la création de flotte lance un déploiement qui installe vos conteneurs sur les nouvelles instances de la flotte. Si vous créez une flotte sans définition de groupe de conteneurs, aucune instance n'est déployée et la flotte n'est pas déployée tant que vous n'avez pas ajouté une définition de groupe de conteneurs de serveur de jeu.
-
Lorsque vous mettez à jour les définitions des groupes de conteneurs de la flotte ou d'autres paramètres de conteneurs. UpdateContainerFleetlance un déploiement lorsque la mise à jour modifie les conteneurs gérés par la flotte, par exemple lorsque vous spécifiez une nouvelle version de définition de groupe de conteneurs du serveur de jeu. Une mise à jour qui ne modifie aucun de ces paramètres ne démarre pas le déploiement. Pour plus d'informations sur les paramètres qui démarrent un déploiement, consultezMettre à jour un GameLift Serveurs Amazon flotte de conteneurs gérée.
-
Lorsque vous ajoutez des sites à une flotte active. Amazon GameLift Serverslance un déploiement sur les nouveaux sites en utilisant les définitions de groupes de conteneurs configurées pour la flotte. Les sites existants ne sont pas redéployés. Vous ne pouvez pas ajouter d'emplacements pendant qu'un autre déploiement est en cours.
Pour voir les détails d'un déploiement, appelez DescribeFleetDeployment, qui renvoie un FleetDeploymentobjet. Il inclut l'ID de déploiement, le statut et la configuration, ainsi que les versions de définition de groupe de conteneurs déployées et les versions de restauration. La DeploymentDetails.LatestDeploymentId propriété de la flotte indique son déploiement le plus récent.
Note
Les déploiements s'appliquent uniquement aux flottes de conteneurs gérées.
Configuration d'un déploiement
Un déploiement DeploymentConfigurationest l'ensemble de règles qui contrôlent le déroulement du déploiement au sein de la flotte et ce qui se passe en cas d'échec. Pour plus d'informations sur les valeurs et les valeurs par défaut de chaque paramètre, consultez DeploymentConfigurationla référence de l'Amazon GameLift ServersAPI.
Vous définissez la configuration de déploiement lorsque vous appelez UpdateContainerFleet ou modifiez le parc dans la console. CreateContainerFleetn'accepte pas de configuration de déploiement, de sorte que le premier déploiement d'une flotte utilise toujours les valeurs par défaut.
Comment ? GameLift Serveurs Amazon valide un déploiement
Lorsqu'un déploiement commence, il faut Amazon GameLift Servers d'abord valider les groupes de conteneurs du serveur de jeu dans chacun des emplacements de la flotte. Il fait fonctionner les nouveaux conteneurs sur une petite partie de la capacité existante de la flotte et vérifie qu'ils sont sains. Un nouveau groupe de conteneurs de serveurs de jeux est sain lorsqu'un conteneur de serveurs de jeux appelle ProcessReady() pour signaler qu'il est prêt à héberger des sessions de jeu.
Cette validation initiale vérifie les groupes de conteneurs du serveur de jeu. Si votre flotte utilise également une définition de groupe de conteneurs par instance, mettez Amazon GameLift Servers à jour ces groupes après avoir mis à jour les groupes de serveurs de jeu. Amazon GameLift Serversvérifie les groupes par instance séparément avant la fin du déploiement ; ils n'utilisent pas le ProcessReady() check du serveur de jeu.
La validation échoue si le nouveau groupe de conteneurs du serveur de jeu n'est pas rétabli avant l'Amazon GameLift Serversarrêt de l'attente. Pour plus d'informations sur les causes courantes et sur la manière de les étudier, voirDéboguer un déploiement altéré.
Si la validation échoue, Amazon GameLift Servers applique le déploiement ImpairmentStrategy et définit l'état du déploiement sur IMPAIRED (pourMAINTAIN) ou ROLLBACK_IN_PROGRESS (pourROLLBACK). Ce n'est qu'une fois la validation réussie dans un emplacement que les conteneurs restants qui y font fonctionner vos serveurs de jeu sont Amazon GameLift Servers remplacés.
Combien de temps prend la validation
La validation prend plus de temps lorsque la capacité Amazon GameLift Servers utilisée pour la validation héberge des sessions de jeu protégées. La flotte NewGameSessionProtectionPolicy détermine la protection par défaut pour les nouvelles sessions de jeu. Les valeurs valides sont NoProtection et FullProtection. Le déploiement ProtectionStrategy détermine si le déploiement respecte cette protection. Les valeurs valides sont WITH_PROTECTION et IGNORE_PROTECTION.
Lorsque la flotte est NewGameSessionProtectionPolicy configurée FullProtection et que le déploiement est ProtectionStrategy configuréWITH_PROTECTION, Amazon GameLift Servers le délai de validation est plus long pour la fin des sessions de jeu protégées. Avec toute autre combinaison, elle utilise un délai d'attente plus court.
Important
Si vos nouveaux conteneurs ne sont jamais sains et que la flotte les utilise dans le cadre FullProtection d'un WITH_PROTECTION déploiement, le déploiement peut rester en bon IN_PROGRESS état jusqu'à la fin des sessions de jeu protégées avant qu'un échec ne soit signalé. Pour obtenir un signal plus rapide, déployez de nouvelles images de conteneur IGNORE_PROTECTION pendant que vous les testez, ou annulez vous-même le déploiement. Pour obtenir des instructions sur l'annulation d'un déploiement, consultezAnnuler un déploiement en en démarrant un nouveau.
Si vous protégez des sessions de jeu individuelles avec UpdateGameSessionune flotte qui l'NewGameSessionProtectionPolicyestNoProtection, Amazon GameLift Servers cela ne prolonge pas son attente. Si ces sessions de jeu ne se terminent pas à temps, la validation peut échouer même si la nouvelle configuration fonctionne.
Suivez l'état du déploiement
Pour suivre un déploiement dans la Amazon GameLift Serversconsole
Pour plus d'informations sur les valeurs d'état de déploiement et sur la signification de chacune d'entre elles, reportez-vous DeploymentStatusà la référence des Amazon GameLift Servers API.
Déboguer un déploiement altéré
Un déploiement défaillant signifie que les nouveaux conteneurs ne sont pas redevenus sains lors de la validation : aucun conteneur de serveur de jeu appelé ProcessReady() auparavant n'Amazon GameLift Serversa cessé d'attendre, souvent parce qu'un conteneur est sorti ou n'a pas démarré. La cause se trouve généralement dans l'image du conteneur ou dans le serveur de jeu. Découvrez pourquoi le conteneur est sorti ou pourquoi le serveur de jeu n'a jamais indiqué qu'il était prêt.
Consultez le journal des événements de la flotte
Le journal des événements de la flotte enregistre ce qui Amazon GameLift Servers a été observé pendant le déploiement. Consultez-le dans l'onglet Événements de la flotte de la console, ou appelez-le describe-fleet-events. Les codes d'événement suivants sont pertinents en cas d'échec du déploiement :
-
GAME_SERVER_CONTAINER_GROUP_CRASHEDetPER_INSTANCE_CONTAINER_GROUP_CRASHED— un groupe de conteneurs est sorti ou n'a pas pu démarrer. Lorsqu'il Amazon GameLift Servers possède le code de sortie du conteneur, il inclut le code dans le message d'événement. -
GAME_SERVER_CONTAINER_GROUP_REPLACED_UNHEALTHYetINSTANCE_REPLACED_UNHEALTHY— Amazon GameLift Servers a remplacé un groupe de conteneurs ou une instance qui n'est pas devenu sain. Ils peuvent se répéter sur tous les sites de la flotte en cas d'échec d'un déploiement. -
SERVER_PROCESS_MISCONFIGURED_CONTAINER_PORT— un conteneur de serveur de jeu utilisait un port qui ne correspond pas aux ports déclarés dans la définition du groupe de conteneurs. -
LOCATION_STATE_UPDATINGetLOCATION_STATE_ACTIVE— ils assurent le déploiement sur chaque site, ce qui vous permet d'aligner les autres événements sur le déploiement qui les a produits. -
COMPUTE_LOG_UPLOAD_FAILED— la collecte de journaux pour un conteneur a cessé de fonctionner, de sorte que les journaux de ce conteneur sont peut-être incomplets ou manquants.
Lisez les journaux des conteneurs
Une flotte de conteneurs LogConfiguration définit où Amazon GameLift Servers envoie la sortie standard de chaque conteneur : CLOUDWATCH (par défaut)S3, ouNONE. Conservez-le réglé de S3 manière à CLOUDWATCH ce que la sortie du conteneur soit disponible en cas d'échec d'un déploiement. Lorsqu'un conteneur tombe en panne avant que votre serveur de jeu ne démarre, par exemple parce que le point d'entrée du conteneur fait référence à un fichier qui ne figure pas dans l'image, cette sortie est le seul enregistrement de l'échec. Pour plus d'informations sur la journalisation des conteneurs, consultezDifférences en matière de journalisation : flottes EC2 gérées et flottes de conteneurs.
Connect à un conteneur endommagé
Si vous avez effectué un déploiement avec la stratégie d'MAINTAINinvalidité, vous pouvez vous connecter à un conteneur qui l'Amazon GameLift Serversa conservé et l'inspecter directement. Utilisez-le pour vérifier les autorisations des fichiers, vérifier quels fichiers l'image contient réellement et exécuter manuellement le fichier exécutable du serveur de jeu pour voir ce qu'il indique. Pour obtenir des instructions sur la connexion à un conteneur, reportez-vous àConnect aux conteneurs.
Problèmes de déploiement courants
Les symptômes suivants sont courants en cas d'échec ou de lenteur des déploiements, ainsi que leurs causes habituelles.
- Le conteneur démarre et sort immédiatement, encore et encore.
-
Si le point d'entrée du conteneur ne peut pas fonctionner, vérifiez les points suivants :
-
Vérifiez que le script de lancement et le fichier exécutable du serveur de jeu sont marqués comme exécutables sur l'image.
-
Vérifiez que l'architecture du processeur de l'exécutable correspond au type d'instance du parc.
-
Vérifiez que l'image contient l'interpréteur et les bibliothèques partagées dont l'exécutable a besoin.
Pour plus d'informations sur la création d'une image Amazon GameLift Servers pouvant être exécutée, consultezCréez une image de conteneur pour GameLift Serveurs Amazon.
-
- Le déploiement est lent mais rien n'échoue.
-
Un
WITH_PROTECTIONdéploiement attend la fin des sessions de jeu protégées, à la fois pendant la validation et lors du remplacement des conteneurs de la flotte. Vérifiez les sessions de jeu actives de la flotte avant de considérer un long déploiement comme un échec. Pour plus d'informations sur les temps d'attente pour la validation, consultezCombien de temps prend la validation.
Annuler un déploiement en en démarrant un nouveau
Pour annuler un déploiement et rétablir la configuration précédente du parc, appelez UpdateContainerFleet ou modifiez le parc dans la console pour démarrer un nouveau déploiement qui annule les modifications. Le cas le plus courant est celui d'une nouvelle version de définition de groupe de conteneurs, que la procédure suivante annule. Amazon GameLift Serversenregistre les versions utilisées par le parc lors de sa dernière activité lors du déploiement en coursRollbackPerInstanceBinaryArn, afin que RollbackGameServerBinaryArn vous n'ayez pas à déterminer à quelle version revenir. Si le déploiement a également modifié d'autres paramètres, tels que la configuration du journal ou la plage de ports de connexion, redéfinissez-les dans la même UpdateContainerFleet demande.
Avant de commencer, configurez le AWS CLI pour votre compte et identifiez le domicile de la flotte Région AWS. Cette procédure nécessite un déploiement en cours et une version précédente de définition de groupe de conteneurs pour être restaurée. list-fleet-deploymentsUtilisez-le pour trouver l'ID de déploiement. Pour obtenir des instructions, consultez Suivez l'état du déploiement.
Dans les commandes, remplacez-le fleet-id par l'identifiant de votre flotte, deployment-id par l'identifiant de déploiement en cours et fleet-home-region par la page d'accueil Région AWS de la flotte.
Pour remplacer un déploiement en cours par une version de conteneur précédente (AWS CLI)
-
Utilisez la AWS CLI commande suivante pour obtenir la version à laquelle vous souhaitez revenir :
aws gamelift describe-fleet-deployment \ --fleet-idfleet-id\ --deployment-iddeployment-id\ --regionfleet-home-regionDans la réponse,
RollbackGameServerBinaryArncontient la version de définition du groupe de conteneurs du serveur de jeu utilisée par la flotte lors de sa dernière activité. Si la flotte possède un groupe de conteneurs par instance,RollbackPerInstanceBinaryArncontient cette version. -
Utilisez la AWS CLI commande suivante pour démarrer un nouveau déploiement avec cette version. Remplacez
rollback-game-server-cgd-arnpar laRollbackGameServerBinaryArnvaleur de l'étape 1. Si la flotte possède un groupe de conteneurs par instance, transmettez également--per-instance-container-group-definition-namelaRollbackPerInstanceBinaryArnvaleur.aws gamelift update-container-fleet \ --fleet-idfleet-id\ --game-server-container-group-definition-namerollback-game-server-cgd-arn\ --regionfleet-home-region -
Vérifiez que le déploiement précédent indique
CANCELLEDl'état et que le nouveau déploiementCOMPLETEindique une fois terminé.
Note
L'annulation d'un déploiement de cette façon n'est pas un arrêt instantané. Le nouveau déploiement suit les mêmes étapes que les autres, y compris la validation, de sorte que la flotte met un certain temps à s'installer. Une version déjà exécutée avec succès par le parc est généralement validée rapidement.
Rubriques associées
Pour plus d’informations, consultez les rubriques suivantes.