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 della flotta per una soluzione di hosting GameLift gestito Amazon. Per ulteriori informazioni sulla risoluzione dei problemi, puoi accedere da remoto a un'istanza del parco istanze quando è attivo. Consultare 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 a far funzionare i tuoi server di gioco. Per una descrizione dettagliata, vedereCome funziona la creazione di GameLift flotte 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 i file eseguibili designati nella configurazione di runtime non sono inclusi nei file di build. Amazon GameLift fornisce registri 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'GameLiftassistenza 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 AmazonGameLift, possano essere installati su una macchina 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 Server SDK. 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 pagina dei dettagli del parco veicoli, Informazioni () 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, è probabile che il processo del server non comunichi ad Amazon GameLift che è pronto per ospitare sessioni di gioco. Controlla che il server di gioco stia richiamando correttamente l'operazione dell'API server ProcessReady() (vedi Inizializza il processo del server).

La richiesta di connessione peering VPC non è riuscita.

Per i parchi istanze creati con una connessione peering VPC (consulta Per configurare il peering VPC con un nuovo parco istanze), la connessione peering VPC viene effettuata durante la fase Activating (In fase di attivazione). Se una connessione peering VPC non riesce per qualsiasi motivo, il nuovo parco istanze non potrà passare allo stato Active (Attivo). Puoi monitorare l'esito positivo o negativo della richiesta di peering describe-vpc-peering-connectionschiamando. Assicurati di verificare che esista un'autorizzazione peering VPC 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à del parco veicoli) 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.

Le azioni VPC non sono autorizzate.

Questo problema si applica solo alle flotte per le quali sono state create appositamente connessioni peering VPC (vedere. Peering VPC per Amazon GameLift Questo scenario si verifica perché il processo di eliminazione di una flotta include anche l'eliminazione del VPC della flotta e di eventuali connessioni peering VPC. Devi prima ottenere un'autorizzazione chiamando l'API del GameLift servizio Amazon CreateVpcPeeringAuthorization() o utilizzando il comando AWS CLI. create-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 Realtime 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 dello processEnding 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 che esegue la sessione di gioco non viene mai liberato per avviarne una nuova e le nuove sessioni di gioco possono essere avviate 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 quelle.

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 tuoi server in tempo reale. Il trucco consiste nell'attivare il riavvio dei processi del server in tempo reale, o delle istanze della flotta sottostanti. In questo caso, chiude GameLift automaticamente le sessioni di gioco per te. Una volta liberati, i server Realtime possono avviare 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. Questo 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. Consultare Connessione remota alle istanze GameLift della flotta Amazon.

Se scegli di non includere la modalità di chiamata processEnding nel tuo script in tempo reale, ci sono un paio di situazioni difficili che potrebbero verificarsi anche quando la flotta si attiva e vengono avviate le sessioni di gioco. 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 riceve alcun aggiornamento degli script.