添加构建安装脚本 - Amazon GameLift

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

添加构建安装脚本

创建适用于您的游戏构建操作系统(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