Adicionar um script de instalação da compilação - Amazon GameLift

Adicionar um script de instalação da compilação

Crie um script de instalação para o OS (sistema operacional) da compilação do seu jogo:

  • Windows: crie um arquivo em lote chamado install.bat.

  • Linux: crie um arquivo de script de shell chamado install.sh.

Ao criar um script de instalação, lembre-se do seguinte:

  • O script não pode receber nenhuma entrada do usuário.

  • O Amazon GameLift instala a compilação e recria os diretórios de arquivos no pacote de compilação em um servidor de hospedagem nos seguintes locais:

    • Frotas do Windows: C:\game

    • Frotas do Linux: /local/game

  • Durante o processo de instalação de frotas do Linux, o usuário de execução tem acesso limitado à estrutura de arquivos da instância. Este usuário tem direitos totais para o diretório em que seus arquivos de compilação estão instalados. Se seu script de instalação realizar ações que exijam permissões de administrador, especifique o acesso de administrador usando sudo. O usuário de execução para frotas do Windows tem permissões de administrador por padrão. As falhas de permissão relacionadas ao script de instalação geram uma mensagem de evento que indica um problema com o script.

  • No Linux, o Amazon GameLift dá suporte ás linguagens comuns de interpretadores de shell, como o bash. Adicione um shebang (como #!/bin/bash) à parte superior do seu script de instalação. Para verificar o suporte para os seus comandos shell preferidos, acesse remotamente uma instância ativa do Linux e abra um prompt de shell. Para ter mais informações, consulte Conectar-se remotamente às instâncias da frota do Amazon GameLift.

  • O script de instalação não pode depender de uma conexão de emparelhamento da VPC. Uma conexão de emparelhamento da VPC não está disponível até que o Amazon GameLift instale a compilação em instâncias de frota.

exemplo Arquivo bash de instalação em Windows

Este exemplo de arquivo install.bat instala os componentes de tempo de execução do Visual C ++ necessários para que o servidor do jogo e grave os resultados em um arquivo de log. O script inclui o arquivo do componente no pacote de compilação na raiz.

vcredist_x64.exe /install /quiet /norestart /log c:\game\vcredist_2013_x64.log
exemplo Script de shell de instalação do Linux

Esse arquivo install.sh de exemplo usa bash no script de instalação e grava os resultados em um arquivo de log.

#!/bin/bash echo 'Hello World' > install.log

Este arquivo install.sh de exemplo mostra como você poderá usar o atendente do Amazon CloudWatch para coletar métricas personalizadas e em nível de sistema e executar com a rotação de logs. Como o Amazon GameLift é executado em um serviço de VPC, conceda permissões ao Amazon GameLift para assumir um perfil do IAM do AWS Identity and Access Management em seu nome. Para permitir que o Amazon GameLift assuma uma função, crie uma função que inclua a AWS para política gerenciada CloudWatchAgentAdminPolicy e use essa função ao criar uma frota.

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