Esegui il debug dei problemi relativi alla GameLift flotta Amazon - Amazon GameLift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esegui il debug dei problemi relativi alla GameLift flotta Amazon

Questo argomento fornisce indicazioni sui problemi di configurazione del parco veicoli per una soluzione di hosting GameLift gestito da Amazon. Per ulteriori informazioni sulla risoluzione dei problemi, puoi accedere da remoto a un'istanza del parco istanze quando è attivo. Per informazioni, consulta Connessione remota alle istanze GameLift della flotta Amazon.

Problemi di creazione del parco istanze

Quando viene creata una flotta, il GameLift servizio Amazon avvia un flusso di lavoro che distribuisce una nuova istanza in ciascuna delle sedi della flotta e la prepara per l'esecuzione dei server di gioco. Per una descrizione dettagliata, consulta. Come funziona la creazione GameLift della flotta Amazon Una flotta non può ospitare sessioni di gioco e giocatori finché non raggiunge lo stato Attivo. Questa sezione illustra i problemi più comuni che impediscono alle flotte di diventare attive.

Downloading and validating (In fase di download e convalida)

Durante questa fase, la creazione della flotta potrebbe non riuscire se ci sono problemi con i file di build estratti, lo script di installazione non viene eseguito o se gli eseguibili indicati nella configurazione di runtime non sono inclusi nei file di build. Amazon GameLift fornisce log relativi a ciascuno di questi problemi.

Se nei log non sono segnalati errori, è probabile che il problema sia dovuto a un errore del servizio interno. In questo caso, prova a creare nuovamente il parco istanze. Se il problema persiste, prova a ricaricare la build del gioco, in caso i file fossero danneggiati. Puoi anche contattare l' GameLift assistenza Amazon o pubblicare una domanda sul forum.

In fase di creazione

I problemi che causano errori durante la fase di creazione di modelli sono quasi certamente dovuti ai file della build del gioco e/o allo script di installazione. Verifica che i file di build del gioco, così come caricati su Amazon GameLift, possano essere installati su un computer con il sistema operativo appropriato. Utilizza un'installazione del sistema operativo pulita e non un ambiente di sviluppo esistente.

Activating (In fase di attivazione)

I problemi più comuni di creazione del parco istanze si verificano durante la fase Activating (In fase di attivazione). Durante questa fase, vengono testati diversi elementi, tra cui la fattibilità del server di gioco, le impostazioni di configurazione del runtime e la capacità del server di gioco di interagire con il GameLift servizio Amazon utilizzando il ServerSDK. Tra i problemi comuni riscontrabili durante l'attivazione del parco istanze:

Errore di avvio dei processi del server.

Verifica innanzitutto di avere impostato correttamente il percorso di avvio e i parametri di avvio opzionali nella configurazione di runtime del parco istanze. Puoi visualizzare la configurazione di runtime corrente della flotta utilizzando la sezione Fleet (pagina di dettaglioInformazioni) o chiamando il AWS CLI comando describe-runtime-configuration. Se la configurazione di runtime sembra corretta, controlla la presenza di eventuali problemi nei file della build del gioco e/o negli script di installazione.

I processi del server si avviano, ma il parco istanze non si attiva.

Se i processi del server vengono avviati ed eseguiti correttamente, ma la flotta non passa allo stato Attivo, una causa probabile è che il processo del server non comunica ad Amazon GameLift che è pronto per ospitare sessioni di gioco. Verifica che il server di gioco stia chiamando correttamente l'APIazione Server ProcessReady() (vediInizializza il processo del server).

VPCrichiesta di connessione peering non riuscita.

Per le flotte create con una connessione VPC peering (vediPer configurare il peering VPC con un nuovo parco istanze), il VPC peering viene eseguito durante queste fasi di attivazione. Se un VPC peering fallisce per qualsiasi motivo, la nuova flotta non passerà allo stato Attivo. Puoi monitorare l'esito positivo o negativo della richiesta di peering chiamando. describe-vpc-peering-connections Assicurati di verificare che esista un'autorizzazione VPC peering valida (describe-vpc-peering-authorizations, poiché le autorizzazioni sono valide solo per 24 ore).

Problemi dei processi del server

I processi del server si avviano, ma si interrompono dopo breve tempo o sono poco stabili.

Oltre a problemi con la build del gioco, questo problema si può verificare quanto tenti di eseguire nell'istanza troppi processi del server contemporaneamente. Il numero ottimale di processi contemporanei dipende dal tipo di istanza e dai requisiti di risorse del server di gioco. Prova a ridurre il numero di processi contemporanei, impostati nella configurazione di runtime del parco istanze, per vedere se vi è un miglioramento delle prestazioni. Puoi modificare la configurazione di runtime di una flotta utilizzando la GameLift console Amazon (modifica le impostazioni di allocazione della capacità della flotta) o chiamando il AWS CLI comando update-runtime-configuration.

Problemi di eliminazione del parco istanze

Non è possibile terminare il parco istanze a causa del conteggio istanze massimo.

Il messaggio di errore indica che il parco istanze in fase di eliminazione dispone ancora di istanze attive, situazione non consentita. È prima necessario ridimensionare il parco istanze a zero istanze attive. Questa operazione viene eseguita impostando manualmente il conteggio istanze desiderato del parco istanze su "0" e quindi attendendo che il dimensionamento abbia effetto. Assicurati di disattivare il dimensionamento automatico, operazione che contrasterà le impostazioni manuali.

VPCle azioni non sono autorizzate.

Questo problema si applica solo alle flotte per le quali sono state appositamente create connessioni di VPC peering (vedi. Peering VPC per Amazon GameLift Questo scenario si verifica perché il processo di eliminazione di una flotta include anche l'eliminazione della flotta VPC e di eventuali connessioni di peering. VPC Devi prima ottenere un'autorizzazione chiamando il GameLift servizio Amazon API CreateVpcPeeringAuthorization() o utilizzando il AWS CLI comandocreate-vpc-peering-authorization. Una volta ottenuta l'autorizzazione, è possibile eliminare il parco istanze.

Problemi relativi alla flotta di server in tempo reale

Sessioni di gioco zombie: avviano ed eseguono un gioco, ma non terminano mai.

È possibile riscontrare questo problema, così come uno qualsiasi dei seguenti scenari:

  • Gli aggiornamenti degli script non vengono rilevati dai server in tempo reale della flotta.

  • Il parco istanze raggiunge rapidamente il numero massimo di capacità e non effettua il dimensionamento quando l'attività dei giocatori (ad esempio, nuove richieste di sessione di gioco) diminuisce.

Questo è quasi certamente il risultato della mancata chiamata processEnding corretta dello script Realtime. Anche se il parco istanze si attiva e le sessioni di gioco vengono avviate, non vi è alcun modo di arrestarle. Di conseguenza, il server Realtime su cui è in esecuzione la sessione di gioco non viene mai liberato per avviarne una nuova e le nuove sessioni di gioco possono iniziare solo quando vengono attivati nuovi server Realtime. Inoltre, gli aggiornamenti allo script Realtime non influiscono sulle sessioni di gioco già in esecuzione, ma solo su una sessione.

Per evitare che si verifichi una situazione simile, gli script devono fornire un meccanismo di attivazione per la chiamata processEnding. Come illustrato negli Esempio di script Realtime Servers, uno dei modi è programmare un timeout delle sessioni inattive in cui lo script terminerà l'attuale sessione di gioco, se nessun giocatore è connesso per un determinato periodo di tempo.

Tuttavia, se rientri in questo scenario, ci sono un paio di soluzioni alternative per sbloccare i server Realtime. Il trucco consiste nell'attivare il riavvio dei processi del server in tempo reale, o delle istanze sottostanti, del parco istanze. In questo caso, chiude automaticamente le sessioni di gioco per te. GameLift Una volta liberati, i server Realtime possono iniziare nuove sessioni di gioco utilizzando l'ultima versione dello script Realtime.

Sono disponibili un paio di metodi per ottenere questo risultato, a seconda di quanto è diffuso il problema:

  • Diminuire l'intero parco istanze. Questo è il metodo più semplice, ma ha un effetto diffuso. Dimensiona il parco istanze fino a zero, attendi la completa diminuzione del parco istanze, quindi aumentalo nuovamente. Ciò cancellerà tutte le sessioni di gioco esistenti e ti consentirà di ricominciare da capo con lo script Realtime aggiornato più di recente.

  • È possibile accedere da remoto all'istanza e riavviare il processo. Si tratta di una buona opzione se il numero di processi da risolvere è ridotto. Se hai già effettuato la registrazione sull'istanza, ad esempio a log di coda o debug, questo potrebbe essere il metodo più rapido. Per informazioni, consulta Connessione remota alle istanze GameLift della flotta Amazon.

Se scegli di non includere la modalità di chiamata processEnding nello script Realtime, ci sono un paio di situazioni difficili che potrebbero verificarsi anche quando la flotta diventa attiva e le sessioni di gioco vengono avviate. In primo luogo, una sessione di gioco in esecuzione non termina. Di conseguenza, il processo del server in cui è in esecuzione tale sessione di gioco non viene mai liberato per consentire di avviare una nuova sessione di gioco. In secondo luogo, il server Realtime non rileva alcun aggiornamento degli script.