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à.
Aggiungere uno script di installazione della build
Crea uno script di installazione per il sistema operativo (OS) della tua build di gioco:
-
Windows: crea un file batch denominato
install.bat. -
Linux: crea un file di script di shell denominato
install.sh.
Amazon GameLift Serversesegue lo script di installazione durante la creazione della flotta per stabilire un'Amazon Machine Image (AMI) da utilizzare su tutte le future istanze della flotta. Lo script non viene eseguito all'inizio di ogni nuova istanza.
Quando crei uno script di installazione, considera quanto segue:
-
Lo script non può accettare alcun input dall'utente.
-
Amazon GameLift Serversinstalla la build e ricrea le directory dei file nel pacchetto di build su un server di hosting nelle seguenti posizioni:
-
Flotte Windows:
C:\game -
Flotte Linux:
/local/game
-
-
Durante il processo di installazione delle flotte Linux, l'utente run-as ha un accesso limitato alla struttura dei file di istanza. Questo utente ha tutti i diritti sulla directory in cui sono installati i file di build. Se lo script di installazione esegue azioni che richiedono le autorizzazioni di amministratore, specifica l'accesso come amministratore utilizzandosudo. L'utente run-as per le flotte Windows dispone delle autorizzazioni di amministratore per impostazione predefinita. Gli errori di autorizzazione correlati allo script di installazione generano un messaggio di evento che indica un problema dello script.
-
Su Linux, Amazon GameLift Servers supporta i comuni linguaggi di interprete di shell come bash. Aggiungi uno shebang (ad esempio
#!/bin/bash) all'inizio dello script di installazione. Per verificare il supporto per i comandi di shell preferiti, accedi in remoto a un'istanza Linux attiva e apri un prompt della shell. Per ulteriori informazioni, consulta Connettiti alle istanze della flotta. -
Lo script di installazione non può fare affidamento su una connessione peering VPC. Una connessione peering VPC è disponibile solo dopo l'Amazon GameLift Serversinstallazione della build on fleet istances.
-
Lo script di installazione potrebbe essere eseguito più di una volta nell'ambito della creazione del parco veicoli. Come best practice, assicurati che lo script sia idempotente e robusto per essere eseguito più volte.
Esempio File batch di installazione di Windows
Questo install.bat file di esempio installa i componenti di runtime di Visual C++ necessari per il server di gioco e scrive i risultati in un file di registro. Lo script include il file del componente nel pacchetto di compilazione alla radice.
vcredist_x64.exe /install /quiet /norestart /log c:\game\vcredist_2013_x64.log
Esempio Script della shell di installazione di Linux
Questo install.sh file di esempio utilizza bash nello script di installazione e scrive i risultati in un file di registro.
#!/bin/bash echo 'Hello World' > install.log
Questo install.sh file di esempio mostra come utilizzare l' CloudWatch agente Amazon per raccogliere metriche personalizzate e a livello di sistema e gestire la rotazione dei log. Poiché Amazon GameLift Servers viene eseguito in un servizio VPC, devi concedere Amazon GameLift Servers le autorizzazioni per assumere un ruolo AWS Identity and Access Management (IAM) per tuo conto. Amazon GameLift ServersPer consentire l'assunzione di un ruolo, crea un ruolo che includa la policy AWS CloudWatchAgentAdminPolicy gestita e utilizza quel ruolo quando crei una flotta.
sudo yum install -y amazon-cloudwatch-agent sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo yum install -y collectd cat <<'EOF' > /tmp/config.json { "agent": { "metrics_collection_interval": 60, "run_as_user": "root", "credentials": { "role_arn": "arn:aws:iam::account#:role/rolename" } }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/tmp/log", "log_group_name": "gllog", "log_stream_name": "{instance_id}" } ] } } }, "metrics": { "namespace": "GL_Metric", "append_dimensions": { "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}" }, "metrics_collected": { // Configure metrics you want to collect. // For more information, see Manually create or edit the CloudWatch agent configuration file. } } } EOF sudo mv /tmp/config.json /opt/aws/amazon-cloudwatch-agent/bin/config.json sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json sudo systemctl enable amazon-cloudwatch-agent.service