Unggah build server khusus ke Amazon GameLift - Amazon GameLift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Unggah build server khusus ke Amazon GameLift

Setelah Anda mengintegrasikan server game Anda dengan Amazon GameLift, unggah file build ke Amazon GameLift. Topik ini mencakup cara mengemas file build game Anda, membuat skrip instalasi build opsional, lalu mengunggah file menggunakan AWS Command Line Interface(AWS CLI) atau AWS SDK.

Membuat paket file bangunan game Anda

Sebelum mengunggah server game yang dikonfigurasi ke Amazon GameLift, paketkan file build game ke dalam direktori build. Direktori ini harus mencakup semua komponen yang diperlukan untuk menjalankan server game dan sesi host game, termasuk yang berikut ini:

  • Binari server game – file biner yang diperlukan untuk menjalankan server game. Build dapat menyertakan binari untuk beberapa server game yang dibangun untuk berjalan pada platform yang sama. Untuk daftar platform yang didukung, lihatDukungan pengembangan dengan Amazon GameLift.

  • Dependensi — File dependen apa pun yang diperlukan oleh server game Anda untuk dijalankan. Contohnya termasuk aset, file konfigurasi, dan perpustakaan dependen.

    catatan

    Untuk build game yang dibuat dengan SDK GameLift server Amazon untuk C++ (termasuk yang dibuat dengan plugin Unreal), sertakan OpenSSL DLL untuk versi OpenSSL yang sama dengan yang Anda gunakan untuk membuat SDK server. Lihat file SDK README server untuk detail selengkapnya.

  • Instal skrip (Opsional) - File skrip untuk menangani tugas yang menginstal build game Anda di server GameLift hosting Amazon. Tempatkan file ini di root direktori build. Amazon GameLift menjalankan skrip penginstalan sebagai bagian dari pembuatan armada.

Anda dapat menyiapkan aplikasi apa pun di build, termasuk skrip penginstalan, untuk mengakses sumber daya Anda dengan aman di AWS layanan lain. Untuk informasi tentang cara melakukan ini, lihatBerkomunikasi dengan sumber daya AWS lain dari armada.

Setelah Anda mengemas file build Anda, pastikan server game Anda dapat berjalan pada instalasi bersih OS target Anda. Ini memverifikasi bahwa Anda menyertakan semua dependensi yang diperlukan dalam paket Anda dan skrip penginstalan Anda akurat.

Buat GameLift build Amazon

Saat membuat bangunan dan mengunggah file Anda, Anda memiliki beberapa pilihan:

Dengan kedua metode tersebut, Amazon GameLift membuat sumber daya build baru dengan ID build unik dan metadata lainnya. Build dimulai dalam status Inisialisasi. Setelah Amazon GameLift memperoleh file server game, build dipindahkan ke status Ready.

Saat build sudah siap, Anda dapat menerapkannya ke GameLift armada Amazon baru. Untuk informasi selengkapnya, lihat. Buat armada GameLift terkelola Amazon Saat Amazon GameLift menyiapkan armada baru, Amazon mengunduh file build ke setiap instance armada dan menginstal file build.

Membuat bangunan dari direktori file

Untuk membuat build game yang disimpan di lokasi mana pun, termasuk direktori lokal, gunakan upload-buildAWS CLIperintah. Perintah ini membuat catatan build baru di Amazon GameLift dan mengunggah file dari lokasi yang Anda tentukan.

Kirim permintaan unggahan. Di jendela baris perintah, masukkan upload-build perintah dan parameter berikut.

aws gamelift upload-build \ --name user-defined name of build \ --operating-system supported OS \ --server-sdk-version Amazon GameLift server SDK version \ --build-root build path \ --build-version user-defined build number \ --region region name
  • operating-system— Lingkungan runtime build server game. Anda harus menentukan nilai OS. Anda tidak dapat memperbarui ini nanti.

  • server-sdk-version— Versi SDK GameLift server Amazon yang terintegrasi dengan server game Anda. Jika Anda tidak memberikan nilai, Amazon GameLift menggunakan nilai default4.0.2. Jika Anda menentukan versi SDK server yang salah, build server game mungkin gagal saat menelepon InitSdk untuk membuat sambungan ke GameLift layanan Amazon.

  • build-root— Jalur direktori file build Anda.

  • name— Nama deskriptif untuk bangunan baru.

  • build-version— Detail versi untuk file build.

  • region— AWS Wilayah tempat Anda ingin membuat bangunan Anda. Buat build di Wilayah tempat Anda berencana untuk menyebarkan armada. Jika Anda menerapkan game di beberapa Wilayah, buat build di setiap Wilayah.

    catatan

    Lihat Wilayah default Anda saat ini menggunakan aws configure get region. Untuk mengubah Region default Anda, gunakan aws configure set region region nameperintah.

Contoh

aws gamelift upload-build \ --operating-system AMAZON_LINUX_2023 \ --server-sdk-version "5.0.0" \ --build-root "~/mygame" \ --name "My Game Nightly Build" \ --build-version "build 255" \ --region us-west-2
aws gamelift upload-build \ --operating-system WINDOWS_2016 \ --server-sdk-version "5.0.0" \ --build-root "C:\mygame" \ --name "My Game Nightly Build" \ --build-version "build 255" \ --region us-west-2

Menanggapi permintaan unggahan Anda, Amazon GameLift menyediakan kemajuan unggahan. Pada unggahan yang berhasil, Amazon GameLift mengembalikan ID catatan build baru. Waktu pengunggahan bergantung pada ukuran file game dan kecepatan koneksi Anda.

Membuat bangunan dengan file di Amazon S3

Anda dapat menyimpan file build Anda di Amazon S3 dan mengunggahnya ke Amazon GameLift dari sana. Saat membuat build, Anda menentukan lokasi bucket S3, dan Amazon GameLift mengambil file build langsung dari Amazon S3.

Untuk membuat sumber daya build
  1. Simpan file build Anda di Amazon S3. Buat file.zip yang berisi file build yang dikemas dan unggah ke bucket S3 di file Anda. Akun AWS Perhatikan label bucket dan nama file, Anda akan memerlukannya saat membuat GameLift build Amazon.

  2. Berikan Amazon GameLift akses ke file build Anda. Buat peran IAM dengan mengikuti instruksi diMengakses file build game di Amazon S3. Setelah membuat peran, perhatikan nama sumber daya Amazon (ARN) peran baru, Anda akan memerlukannya saat membuat build.

  3. Buat build. Gunakan GameLift konsol Amazon atau AWS CLI untuk membuat catatan build baru. Anda harus memiliki PassRole izin, seperti yang dijelaskan dalamContoh izin IAM untuk Amazon GameLift.

Console
  1. Di GameLiftkonsol Amazon, di panel navigasi, pilih Hosting, Builds.

  2. Pada halaman Builds, pilih Buat build.

  3. Pada halaman Buat build, di bawah pengaturan Build, lakukan hal berikut:

    1. Untuk Nama, masukkan nama skrip.

    2. Untuk Versi, masukkan versi. Karena Anda dapat memperbarui konten build, data versi dapat membantu Anda melacak pembaruan.

    3. Untuk Sistem operasi (OS), pilih OS build server game Anda. Anda tidak dapat memperbarui nilai ini nanti.

    4. Untuk build server Game, masukkan URI S3 dari objek build yang Anda upload ke Amazon S3, dan pilih versi Object. Jika Anda tidak ingat URI Amazon S3 dan versi objek, pilih Browse S3 dan cari objek build.

    5. Untuk peran IAM, pilih peran yang Anda buat yang memberi Amazon GameLift akses ke bucket S3 dan objek build Anda.

  4. (Opsional) Di bawah Tag, tambahkan tag ke build dengan memasukkan pasangan Kunci dan Nilai.

  5. Pilih Create (Buat).

Amazon GameLift menetapkan ID ke build baru dan mengunggah file.zip yang ditunjuk. Anda dapat melihat build baru, termasuk statusnya, di halaman Builds.

AWS CLI

Untuk menentukan build baru dan mengunggah file build server Anda, gunakan create-buildperintah.

  1. Buka jendela baris perintah dan beralih ke direktori tempat Anda dapat menggunakan fileAWS CLI.

  2. Masukkan create-build perintah berikut:

    aws gamelift create-build \ --name user-defined name of build \ --server-sdk-version Amazon GameLift server SDK version \ --operating-system supported OS \ --build-version user-defined build number \ --storage-location "Bucket"=S3 bucket label,"Key"=Build .zip file name,"RoleArn"=Access role ARN} \ --region region name
    • name— Nama deskriptif untuk bangunan baru.

    • server-sdk-version— Versi SDK GameLift server Amazon yang Anda gunakan untuk mengintegrasikan server game Anda dengan Amazon GameLift. Jika Anda tidak memberikan nilai, Amazon GameLift menggunakan nilai default4.0.2.

    • operating-system— Lingkungan runtime build server game. Anda harus menentukan nilai OS. Anda tidak dapat memperbarui ini nanti.

    • build-version— Detail versi untuk file build. Informasi ini dapat berguna karena setiap versi baru server game Anda memerlukan sumber daya build baru.

    • storage-location

      • Bucket— Nama bucket S3 yang berisi build Anda. Misalnya, “my_build_files”.

      • Key— Nama file.zip yang berisi file build Anda. Misalnya, “my_game_build_7.0.1, 7.0.2".

      • RoleARN— ARN yang ditugaskan ke peran IAM yang Anda buat. Misalnya, “arn:aws:iam: :111122223333:role/”. GameLiftAccess Untuk melihat contoh kebijakan IAM, lihat Mengakses file build game di Amazon S3.

    • region— Buat build di AWS Wilayah tempat Anda berencana untuk menyebarkan armada. Jika Anda menerapkan game di beberapa Wilayah, buat build di setiap Wilayah.

      catatan

      Sebaiknya periksa Wilayah default Anda saat ini menggunakan configure getperintah . Untuk mengubah Region default Anda, gunakan configure setperintah.

    Contoh

    aws gamelift create-build \ --operating-system WINDOWS_2016 \ --storage-location "Bucket"="my_game_build_files","Key"="mygame_build_101.zip","RoleArn"="arn:aws:iam::111122223333:role/gamelift" \ --name "My Game Nightly Build" \ --build-version "build 101" \ --region us-west-2
  3. Untuk melihat build baru, gunakan describe-buildperintah.

Memperbarui file bangunan Anda

Anda dapat memperbarui metadata untuk sumber daya build menggunakan GameLift konsol Amazon atau perintah. update-buildAWS CLI

Setelah membuat Amazon GameLift build, Anda tidak dapat memperbarui file build yang terkait dengannya. Untuk setiap set file baru, buat GameLift build Amazon baru. Menggunakan upload-buildperintah, Amazon GameLift secara otomatis membuat catatan build baru untuk setiap permintaan. Jika Anda menyediakan file build menggunakan create-buildperintah, unggah file.zip build baru dengan nama berbeda ke Amazon S3 dan buat build dengan mereferensikan nama file baru.

Coba tips berikut untuk men-deploy bangunan yang telah diperbarui:

  • Gunakan antrian dan tukar armada sesuai kebutuhan. Saat menyiapkan klien game Anda dengan Amazon GameLift, tentukan antrian alih-alih armada. Dengan antrian, Anda dapat menambahkan armada baru dengan build baru ke antrian Anda dan menghapus armada lama. Untuk informasi selengkapnya, lihat Menyiapkan GameLift antrean Amazon untuk penempatan sesi game.

  • Gunakan alias untuk mentransfer pemain ke build game baru. Saat mengintegrasikan klien game Anda dengan Amazon GameLift, tentukan alias armada, bukan ID armada. Untuk informasi selengkapnya, lihat Tambahkan alias ke armada Amazon GameLift .

  • Siapkan pembaruan build otomatis. Untuk contoh skrip dan informasi tentang menggabungkan GameLift penerapan Amazon ke dalam sistem build Anda, lihat Mengotomatiskan Penerapan ke Amazon di Blog Teknologi Game. GameLift AWS

Menambahkan skrip instalasi bangunan

Buat skrip penginstalan untuk sistem operasi (OS) build game Anda:

  • Windows: Buat file batch bernamainstall.bat.

  • Linux: Buat file skrip shell bernamainstall.sh.

Saat membuat skrip instalasi, perhatikan hal-hal berikut:

  • Skrip tidak dapat mengambil masukan pengguna apa pun.

  • Amazon GameLift menginstal build dan membuat ulang direktori file dalam paket build Anda di server hosting di lokasi berikut:

    • Armada Windows: C:\game

    • Armada Linux: /local/game

  • Selama proses instalasi untuk armada Linux, pengguna run-as memiliki akses terbatas ke struktur file instance. Pengguna ini memiliki hak penuh atas direktori tempat file build Anda diinstal. Jika skrip penginstalan Anda melakukan tindakan yang memerlukan izin administrator, maka tentukan akses admin menggunakansudo. Pengguna run-as untuk armada Windows memiliki izin administrator secara default. Kegagalan izin yang terkait dengan skrip instalasi menghasilkan pesan peristiwa yang menunjukkan adanya masalah dengan skrip.

  • Di Linux, Amazon GameLift mendukung bahasa interpreter shell umum seperti bash. Tambahkan shebang (seperti #!/bin/bash) ke bagian atas skrip instalasi Anda. Untuk memverifikasi dukungan untuk perintah shell pilihan Anda, akses instance Linux aktif dari jarak jauh dan buka shell prompt. Untuk informasi selengkapnya, lihat Terhubung dari jarak jauh ke instance GameLift armada Amazon.

  • Skrip penginstalan tidak dapat mengandalkan koneksi peering VPC. Koneksi peering VPC tidak tersedia sampai setelah Amazon GameLift menginstal instans build on fleet.

contoh Windows menginstal file bash

install.batFile contoh ini menginstal komponen runtime Visual C ++ yang diperlukan untuk server game dan menulis hasilnya ke file log. Skrip menyertakan file komponen dalam paket build di root.

vcredist_x64.exe /install /quiet /norestart /log c:\game\vcredist_2013_x64.log
contoh Linux menginstal skrip shell

install.shFile contoh ini menggunakan bash dalam skrip instal dan menulis hasil ke file log.

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

install.shFile contoh ini menunjukkan bagaimana Anda dapat menggunakan CloudWatch agen Amazon untuk mengumpulkan metrik tingkat sistem dan kustom, serta menangani rotasi log. Karena Amazon GameLift berjalan dalam VPC layanan, Anda harus memberikan GameLift izin Amazon untuk mengambil peran AWS Identity and Access Management (IAM) atas nama Anda. GameLift Agar Amazon dapat mengambil peran, buat peran yang menyertakan kebijakan AWS terkelolaCloudWatchAgentAdminPolicy, dan gunakan peran tersebut saat Anda membuat armada.

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