

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

# Package build server game untuk penerapan
<a name="gamelift-build-intro"></a>

Siapkan perangkat lunak server game Anda untuk diterapkan pada sumber daya hosting Anda. Setelah digunakan, perangkat lunak diinstal pada setiap sumber daya hosting, dan kemudian satu atau lebih proses server game diluncurkan dan disiapkan untuk menyelenggarakan sesi permainan untuk pemain.

Menyiapkan pembuatan server game bervariasi tergantung pada jenis opsi Amazon GameLift Servers hosting yang Anda gunakan. Semua build server game harus terintegrasi dengan SDK server untukAmazon GameLift Servers, seperti yang dijelaskan dalam. [Integrasikan server game dengan Amazon GameLift Servers](gamelift-sdk-server.md)

Topik di bagian ini memberikan panduan tentang cara menyiapkan perangkat lunak Anda untuk diterapkan ke skenario berikut. 
+ Untuk EC2 hosting terkelola, paketkan perangkat lunak server Anda dan unggah ke Amazon GameLift Servers untuk penyebaran.
+ Untuk hosting kontainer terkelola, buat image kontainer dengan perangkat lunak server Anda dan simpan di Amazon Elastic Container Registry untuk penerapan.
+ Untuk hosting dengan Amazon GameLift Servers Anywhere, paket perangkat lunak server Anda sesuai kebutuhan untuk instalasi pada sumber daya hosting Anda sendiri.

**catatan**  
Jika Anda menerapkan skrip yang Amazon GameLift Servers Realtime dikonfigurasi, lihat [Mengunggah skrip untuk Amazon GameLift ServersRealtime](https://docs.aws.amazon.com/gameliftservers/latest/realtimeguide/realtime-script-uploading.html).

**Topics**
+ [Buat build server game untuk Amazon GameLift Servers](gamelift-build-cli-uploading.md)
+ [Membangun gambar kontainer untuk Amazon GameLift Servers](containers-prepare-images.md)

# Buat build server game untuk Amazon GameLift Servers
<a name="gamelift-build-cli-uploading"></a>

Setelah Anda mengintegrasikan server game Anda dengan Amazon GameLift Servers (lihat[Siapkan game untuk hosting dengan Amazon GameLift Servers](integration-intro.md)), instal perangkat lunak server game ke sumber daya komputasi Anda untuk hosting. Proses ini bervariasi tergantung pada jenis Amazon GameLift Servers hosting yang Anda gunakan.

## Menyebarkan untuk hosting terkelola
<a name="gamelift-build-custom-upload"></a>

Jika Anda menggunakan hosting EC2 Amazon GameLift Servers terkelola, Anda harus mengemas perangkat lunak server game Anda dan mengunggahnya. Amazon GameLift Servers Saat Anda membuat armada terkelola, Amazon GameLift Servers secara otomatis menerapkannya ke setiap instance armada. 

Topik di bagian ini menjelaskan cara mengemas file build untuk diunggah, membuat skrip instalasi build opsional, lalu mengunggah file menggunakan [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) atau AWS SDK.

## Menyebarkan untuk hosting di mana saja
<a name="gamelift-build-custom-anywhere"></a>

Jika Anda menggunakan armada Amazon GameLift Servers Anywhere untuk hosting yang dikelola sendiri, Anda bertanggung jawab untuk menginstal perangkat lunak server game ke setiap komputasi dalam armada dan terus memperbaruinya.

Ketika proses server game terintegrasi mulai berjalan, secara otomatis menginisialisasi dan membangun komunikasi dengan layanan. Amazon GameLift Servers Proses server memulai sesi permainan dari prompt oleh Amazon GameLift Servers dan melaporkan aktivitas kembali ke layanan.

**Topics**
+ [Menyebarkan untuk hosting terkelola](#gamelift-build-custom-upload)
+ [Menyebarkan untuk hosting di mana saja](#gamelift-build-custom-anywhere)
+ [Membuat paket file bangunan game Anda](gamelift-build-packaging.md)
+ [Menambahkan skrip instalasi bangunan](gamelift-build-cli-uploading-install.md)
+ [Buat sumber daya Amazon GameLift Servers build untuk hosting terkelola](gamelift-build-cli-uploading-builds.md)

# Membuat paket file bangunan game Anda
<a name="gamelift-build-packaging"></a>

Sebelum mengunggah server game yang telah dikonfigurasiAmazon GameLift Servers, paketkan file build game ke dalam direktori build. Proses ini merupakan persyaratan saat hosting dengan armada yang dikelola EC2, dan merupakan praktik terbaik saat hosting dengan armada Anywhere. Direktori build harus menyertakan semua komponen yang diperlukan untuk menjalankan server game dan menghosting sesi game Anda. Ini mungkin termasuk yang berikut:
+ **Binari server game** – file biner yang diperlukan untuk menjalankan server game. Build dapat menyertakan binari untuk beberapa server game yang dibangun untuk berjalan di platform yang sama. Untuk daftar platform yang didukung, lihat[Dapatkan alat Amazon GameLift Servers pengembangan](gamelift-supported.md).
+ **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 server for Amazon GameLift Servers for C\$1\$1 (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 Amazon GameLift Servers hosting. Tempatkan file ini di root direktori build. Amazon GameLift Serversmenjalankan 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, lihat[Hubungkan server game yang Amazon GameLift Servers di-host ke AWS sumber daya lain](gamelift-sdk-server-resources.md).

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

# Menambahkan skrip instalasi bangunan
<a name="gamelift-build-cli-uploading-install"></a>

Buat skrip penginstalan untuk sistem operasi (OS) build game Anda:
+ Windows: Buat file batch bernama`install.bat`.
+ Linux: Buat file skrip shell bernama`install.sh`.

Saat membuat skrip instalasi, perhatikan hal-hal berikut:
+ Script tidak dapat mengambil input pengguna apa pun.
+ Amazon GameLift Serversmenginstal 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 menggunakan**sudo**. 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 Servers 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 [Connect ke instance armada](fleets-remote-access.md).
+ Skrip penginstalan tidak dapat mengandalkan koneksi peering VPC. Koneksi peering VPC tidak tersedia sampai setelah Amazon GameLift Servers menginstal instans armada build on.

**Example Windows menginstal file bash**  
`install.bat`File contoh ini menginstal komponen runtime Visual C \$1\$1 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
```

**Example Linux menginstal skrip shell**  
`install.sh`File contoh ini menggunakan bash dalam skrip instal dan menulis hasil ke file log.  

```
#!/bin/bash
echo 'Hello World' > install.log
```
`install.sh`File contoh ini menunjukkan bagaimana Anda dapat menggunakan CloudWatch agen Amazon untuk mengumpulkan metrik tingkat sistem dan kustom, serta menangani rotasi log. Karena Amazon GameLift Servers berjalan di VPC layanan, Anda harus memberikan Amazon GameLift Servers izin untuk mengambil peran AWS Identity and Access Management (IAM) atas nama Anda. Amazon GameLift ServersAgar dapat mengambil peran, buat peran yang menyertakan kebijakan AWS terkelola`CloudWatchAgentAdminPolicy`, 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html).
        }
    }
}
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
```

# Buat sumber daya Amazon GameLift Servers build untuk hosting terkelola
<a name="gamelift-build-cli-uploading-builds"></a>

Saat membuat bangunan dan mengunggah file Anda, Anda memiliki beberapa pilihan:
+ [Membuat bangunan dari direktori file](gamelift-build-cli-uploading-upload-build.md). Ini adalah opsi paling sederhana dan paling umum digunakan.
+ [Buat build dengan file di Amazon Simple Storage Service (Amazon S3](gamelift-build-cli-uploading-create-build.md)). Dengan opsi ini, Anda dapat mengelola versi build di Amazon S3.

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

Saat build sudah siap, Anda dapat menyebarkannya ke Amazon GameLift Servers armada baru. Untuk informasi selengkapnya, lihat [Buat EC2 armada Amazon GameLift Servers terkelola](fleets-creating.md) .Saat Amazon GameLift Servers menyiapkan armada baru, ia mengunduh file build ke setiap instance armada dan menginstal file build.

# Membuat bangunan dari direktori file
<a name="gamelift-build-cli-uploading-upload-build"></a>

Untuk membuat build game yang disimpan di lokasi mana pun, termasuk direktori lokal, gunakan [https://docs.aws.amazon.com/cli/latest/reference/gamelift/upload-build.html](https://docs.aws.amazon.com/cli/latest/reference/gamelift/upload-build.html) AWS CLI perintah. Perintah ini membuat catatan build baru Amazon GameLift Servers 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 server SDK for Amazon GameLift Servers 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 Amazon GameLift Servers server yang terintegrasi dengan server game Anda. Jika Anda tidak memberikan nilai, Amazon GameLift Servers gunakan nilai default`4.0.2`. Jika Anda menentukan versi SDK server yang salah, build server game mungkin gagal saat memanggil `InitSdk` untuk membuat sambungan ke Amazon GameLift Servers layanan.
+ **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 [https://docs.aws.amazon.com/cli/latest/reference/configure/get.html](https://docs.aws.amazon.com/cli/latest/reference/configure/get.html). Untuk mengubah Region default Anda, gunakan [https://docs.aws.amazon.com/cli/latest/reference/configure/set.html](https://docs.aws.amazon.com/cli/latest/reference/configure/set.html)perintah.

*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_2022 \
    --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 Servers berikan kemajuan unggahan. Pada unggahan yang berhasil, Amazon GameLift Servers mengembalikan ID catatan build baru. Waktu pengunggahan bergantung pada ukuran file game dan kecepatan koneksi Anda.

# Membuat bangunan dengan file di Amazon S3
<a name="gamelift-build-cli-uploading-create-build"></a>

Anda dapat menyimpan file build Anda di Amazon S3 dan mengunggahnya Amazon GameLift Servers dari sana. Saat membuat build, Anda menentukan lokasi bucket S3, dan Amazon GameLift Servers 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 Amazon GameLift Servers build.

1. **Berikan Amazon GameLift Servers akses ke file build Anda.** Buat peran IAM dengan mengikuti instruksi di[Mengakses file build game di Amazon S3](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-storage-loc). Setelah membuat peran, perhatikan Amazon Resource Name (ARN) peran baru, Anda akan memerlukannya saat membuat build.

1. **Buat build.** Gunakan Amazon GameLift Servers konsol atau AWS CLI untuk membuat catatan build baru. Anda harus memiliki `PassRole` izin, seperti yang dijelaskan dalam[Contoh izin IAM untuk Amazon GameLift Servers](gamelift-iam-policy-examples.md).

------
#### [ Console ]

1. Di [Amazon GameLift Serverskonsol](https://console.aws.amazon.com/gamelift/), di panel navigasi, pilih **Hosting**, **Builds**.

1. Pada halaman **Builds**, pilih **Buat build**.

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

   1. Untuk **Nama**, masukkan nama skrip.

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

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

   1. **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.

   1. Untuk **peran IAM**, pilih peran yang Anda buat yang memberikan Amazon GameLift Servers akses ke bucket S3 dan objek build.

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

1. Pilih **Buat**.

Amazon GameLift Serversmenetapkan 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 [https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-build.html](https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-build.html)perintah.

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

1. Masukkan **create-build** perintah berikut:

   ```
   aws gamelift create-build \
       --name user-defined name of build \
       --server-sdk-version server SDK for Amazon GameLift Servers 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 server untuk Amazon GameLift Servers Anda gunakan untuk mengintegrasikan server game Anda. Amazon GameLift Servers Jika Anda tidak memberikan nilai, Amazon GameLift Servers gunakan nilai default`4.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\$1build\$1files”.
     + **Key**— Nama file.zip yang berisi file build Anda. Misalnya, “my\$1game\$1build\$17.0.1, 7.0.2".
     + **RoleARN**— ARN ditugaskan ke peran IAM yang Anda buat. Misalnya, “arn:aws:iam: :111122223333:role/”. GameLiftAccess Untuk contoh kebijakan, lihat [Mengakses file build game di Amazon S3](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-storage-loc).
   + **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 [https://docs.aws.amazon.com/cli/latest/reference/configure/get.html](https://docs.aws.amazon.com/cli/latest/reference/configure/get.html)perintah [https://docs.aws.amazon.com/cli/latest/reference/configure/get.html](https://docs.aws.amazon.com/cli/latest/reference/configure/get.html). Untuk mengubah Region default Anda, gunakan [https://docs.aws.amazon.com/cli/latest/reference/configure/set.html](https://docs.aws.amazon.com/cli/latest/reference/configure/set.html)perintah.

   *Contoh*

   ```
   aws gamelift create-build \
       --operating-system WINDOWS_2022 \
       --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
   ```

1. Untuk melihat build baru, gunakan [https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-build.html](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-build.html)perintah.

------

# Membangun gambar kontainer untuk Amazon GameLift Servers
<a name="containers-prepare-images"></a>

Topik ini menjelaskan cara membuat gambar kontainer dengan perangkat lunak server game Anda untuk digunakanAmazon GameLift Servers. Gambar kontainer server game mencakup server game yang dapat dieksekusi dan dependensi apa pun yang perlu dijalankan. Gambar kontainer server game digunakan dengan solusi hosting kontainer Amazon GameLift Servers terkelola. Untuk detail tentang membangun solusi lengkap, lihat:
+ [Peta jalan pengembangan untuk hosting dengan kontainer Amazon GameLift Servers terkelola](gamelift-roadmap-containers.md)
+ [Cara kerja kontainer Amazon GameLift Servers](containers-howitworks.md)

Selesaikan tugas-tugas berikut untuk menyiapkan image kontainer server game Anda untuk diterapkan ke armada Amazon GameLift Servers kontainer. Sebelum memulai tugas-tugas ini, selesaikan mengintegrasikan kode server game Anda dengan SDK Amazon GameLift Servers server.

**Topics**
+ [Buat gambar kontainer server game](#containers-prepare-images-build)
+ [Dorong gambar kontainer ke Amazon ECR](#containers-prepare-images-upload)

## Buat gambar kontainer server game
<a name="containers-prepare-images-build"></a>

Ikuti petunjuk ini saat bekerja pada platform berbasis Linux atau menggunakan Windows Subsystem for Linux (WSL) dengan Docker diinstal.

**Untuk membuat image kontainer server game**

1. Siapkan direktori kerja dengan perangkat lunak server game Anda. Pada mesin lokal, buat direktori kerja untuk mengatur file untuk wadah server game Anda. Gambar kontainer Anda menggunakan struktur file ini saat menerapkan kontainer ke Amazon GameLift Servers sumber daya untuk hosting. Contoh:

   ```
   [~/]$ mkdir -p work/glc/gamebuild && cd work && find .
   .
   ./glc
   ./glc/gamebuild
   ```
**catatan**  
Jika Anda mencoba fitur ini dan belum memiliki build server game yang berfungsi, coba contoh server game kami [SimpleServer](https://github.com/aws-solutions-library-samples/guidance-for-custom-game-backend-hosting-on-aws/tree/main/BackendFeatures/AmazonGameLiftIntegration/SimpleServer), yang tersedia di GitHub.

1. Buat Dockerfile baru menggunakan template yang disediakan.

1. Ikuti petunjuk di template Dockerfile untuk memperbaruinya untuk Anda gunakan sendiri. 
   + Perbarui gambar dasar sesuai kebutuhan.
   + Tetapkan variabel lingkungan untuk build server game Anda. 

1. Bangun gambar kontainer. Jalankan`docker build`, tentukan nama repositori Anda sendiri. Contoh:

   ```
   [~/work/glc]$ docker build -t <local repository name>:<optional tag> .
   ```

   Anda dapat melihat repositori dan gambar IDs menggunakan `docker images` perintah, seperti yang diilustrasikan dalam contoh ini:

## Template Dockerfile untuk gambar wadah server game
<a name="w2aab9c11c13c17c15b1"></a>

Template ini berisi instruksi minimum yang dibutuhkan wadah server game untuk dapat digunakan dalam Amazon GameLift Servers armada. Ubah konten sesuai kebutuhan untuk server game Anda. 

```
# Base image
# ----------
  # Add the base image that you want to use,
  # Make sure to use an image with the same architecture as the
  # Instance type you are planning to use on your fleets.
FROM public.ecr.aws/amazonlinux/amazonlinux
  #
# Game build directory
# --------------------
  # Add your gamebuild directory to the env variable below.
  # The game build provided here needs to be integrated with server sdk for Amazon GameLift Servers.
ENV GAME_BUILD_DIRECTORY="<ADD_GAME_BUILD_DIRECTORY>" \
  #
# Game executable and launch parameters
# ---------------
  # Add the relative path to your executable in the 'GAME_EXECUTABLE' env variable below.
  # The game build provided over here needs to be integrated with server sdk for Amazon GameLift Servers.
  # This template assumes that the executable path is relative to the game build directory.
  # Add any launch parameters to pass into your executable in the 'LAUNCH_PARAMS' env variable below.
  # Add 'HOME_DIR' to identify where the game executable and logs exist.
GAME_EXECUTABLE="<ADD NAME OF EXECUTABLE WITHIN THE GAME DIRECTORY>" \
LAUNCH_PARAMS=<ADD LAUNCH PARAMETERS> \
HOME_DIR="/local/game" \


# Install dependencies as necessary
RUN yum install -y shadow-utils
    
RUN mkdir -p $HOME_DIR
COPY ./$GAME_BUILD_DIRECTORY/ $HOME_DIR
    
# Change directory to home
WORKDIR $HOME_DIR
    
# Set up for 'gamelift' user
RUN useradd -m gamelift && \
  echo "gamelift ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \
  chown -R gamelift:gamelift $HOME_DIR

# Add permissions to game build
RUN chmod +x ./$GAME_EXECUTABLE
    
USER gamelift
    
# Check directory before starting the container
RUN ls -lhrt .
    
# Check path before starting the container
RUN echo $PATH
    
# Start the game build
ENTRYPOINT ["/bin/sh", "-c", "./$GAME_EXECUTABLE", "$LAUNCH_PARAMS"]
```

## Dorong gambar kontainer ke Amazon ECR
<a name="containers-prepare-images-upload"></a>

Setelah Anda membuat gambar kontainer untuk penyebaranAmazon GameLift Servers, simpan gambar di repositori publik atau pribadi di Amazon ECR. Repositori ini diberi nilai URI, yang Amazon GameLift Servers digunakan untuk mengambil snapshot gambar untuk penyebaran ke armada kontainer. 

**catatan**  
[Jika Anda belum memiliki repositori pribadi Amazon ECR, buatlah satu.](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html) 

**Untuk mendorong gambar kontainer Anda ke Amazon ECR**

1. Dapatkan kredensyal Amazon ECR Anda. Sebelum mendorong image kontainer ke Amazon ECR, pertama-tama dapatkan AWS kredensyal Anda dalam bentuk sementara dan berikan ke Docker. Docker membutuhkan kredensyal ini untuk masuk.

   ```
   [~/work/glc]$ aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.us-west-2.amazonaws.com
   WARNING! Your password will be stored unencrypted in 
   /home/user-name/.docker/config.json.
   Configure a credential helper to remove this warning.
   See https://docs.docker.com/engine/reference/commandline/login/#credentials-store
   
   Login Succeeded
   ```

1. Salin URI dari [repositori pribadi Amazon ECR](https://console.aws.amazon.com/ecr/private-registry/repositories) yang ingin Anda gunakan. 

1. Terapkan tag Amazon ECR ke gambar kontainer Anda.  
**Example**  

   ```
   [~/work/glc]$ docker tag <IMAGE ID from above> <Amazon ECR private repository URI>:<optional tag>
   ```

1. Dorong gambar kontainer Anda ke Amazon ECR  
**Example**  

   ```
   [~/work/glc]$ docker image push  <Amazon ECR private repository URI>
   ```