本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
添加构建安装脚本
创建适用于您的游戏构建操作系统(OS)的安装脚本:
-
Windows:创建名为
install.bat
的批处理文件。 -
Linux:创建名为
install.sh
的 Shell 脚本文件。
在创建安装脚本时,请注意以下事项:
-
该脚本不接受任何用户输入。
-
Amazon 在托管服务器上的以下位置 GameLift 安装构建版本并在您的构建包中重新创建文件目录:
-
Windows 实例集:
C:\game
-
Linux 实例集:
/local/game
-
-
在 Linux 实例集安装过程中,run-as 用户具有对实例文件结构的有限访问权限。此用户对安装您的构建文件的目录拥有全部权限。如果您的安装脚本执行的操作需要管理员权限,请使用 sudo 指定管理员访问权限。默认情况下,Windows 实例集的 run-as 用户具有管理员权限。与安装脚本相关的权限失败会生成一条事件消息,此消息指示脚本出现问题。
-
在 Linux 上,亚马逊 GameLift 支持常见的外壳解释器语言,例如 bash。在安装脚本的顶部添加 shebang (例如
#!/bin/bash
)。要验证对您的首选 Shell 命令的支持,可以远程访问活动的 Linux 实例并打开 Shell 提示符。有关更多信息,请参阅 远程连接到 Amazon GameLift 舰队实例。 -
安装脚本不能依赖对VPC等连接。在 Amazon 在舰队实例上 GameLift 安装版本后,对VPC等连接才可用。
例 Windows 安装 bash 文件
此示例 install.bat
文件安装游戏服务器所需的 Visual C++ 运行时组件,然后将结果写入日志文件。脚本包含根目录下构建包中的组件文件。
vcredist_x64.exe /install /quiet /norestart /log c:\game\vcredist_2013_x64.log
例 Linux 安装 Shell 脚本
此示例 install.sh
文件在安装脚本中使用 bash 并将结果写入日志文件。
#!/bin/bash echo 'Hello World' > install.log
此示例install.sh
文件展示了如何使用 Amazon CloudWatch 代理收集系统级和自定义指标以及处理日志轮换。由于亚马逊在服务中 GameLift 运行VPC,因此您必须向亚马逊授予代表您担任 AWS Identity and Access Management (IAM) 角色的 GameLift 权限。要允许 Amazon GameLift 代入角色,请创建一个包含 AWS 托管策略的角色CloudWatchAgentAdminPolicy
,并在创建队列时使用该角色。
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