

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Package d'un serveur de jeu créé pour le déploiement
<a name="gamelift-build-intro"></a>

Préparez le logiciel de votre serveur de jeu pour le déploiement sur vos ressources d'hébergement. Une fois déployé, le logiciel est installé sur chaque ressource d'hébergement, puis un ou plusieurs processus de serveur de jeu sont lancés et prêts à héberger des sessions de jeu pour les joueurs.

La préparation de la compilation d'un serveur de jeu varie en fonction du type d'options Amazon GameLift Servers d'hébergement que vous utilisez. Toutes les versions de serveurs de jeu doivent être intégrées au SDK du serveur pourAmazon GameLift Servers, comme décrit dans[Intégrez un serveur de jeu avec Amazon GameLift Servers](gamelift-sdk-server.md).

Les rubriques de cette section fournissent des conseils sur la façon de préparer votre logiciel pour le déploiement dans les scénarios suivants. 
+ Pour l' EC2 hébergement géré, empaquetez le logiciel de votre serveur et téléchargez-le Amazon GameLift Servers pour le déploiement.
+ Pour l'hébergement de conteneurs gérés, créez une image de conteneur avec votre logiciel serveur et stockez-la dans Amazon Elastic Container Registry pour le déploiement.
+ Pour l'hébergement avec Amazon GameLift Servers Anywhere, empaquetez votre logiciel serveur selon vos besoins pour l'installer sur vos propres ressources d'hébergement.

**Note**  
Si vous déployez un script Amazon GameLift Servers Realtime configuré, consultez [Télécharger un script pour Amazon GameLift ServersRealtime](https://docs.aws.amazon.com/gameliftservers/latest/realtimeguide/realtime-script-uploading.html).

**Topics**
+ [Créez un serveur de jeu conçu pour Amazon GameLift Servers](gamelift-build-cli-uploading.md)
+ [Créez une image de conteneur pour Amazon GameLift Servers](containers-prepare-images.md)

# Créez un serveur de jeu conçu pour Amazon GameLift Servers
<a name="gamelift-build-cli-uploading"></a>

Après avoir intégré votre serveur de jeu à Amazon GameLift Servers (voir[Préparez un jeu à héberger avec Amazon GameLift Servers](integration-intro.md)), installez le logiciel du serveur de jeu sur vos ressources informatiques pour l'hébergement. Ce processus varie en fonction du type d'Amazon GameLift Servershébergement que vous utilisez.

## Déploiement pour un hébergement géré
<a name="gamelift-build-custom-upload"></a>

Si vous utilisez un hébergement EC2 Amazon GameLift Servers géré, vous devez empaqueter le logiciel de votre serveur de jeu et le télécharger Amazon GameLift Servers sur. Lorsque vous créez une flotte gérée, elle est Amazon GameLift Servers automatiquement déployée sur chaque instance de flotte. 

Les rubriques de cette section décrivent comment empaqueter vos fichiers de build pour le téléchargement, créer un script d'installation de build facultatif, puis télécharger les fichiers à l'aide du [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) ou du AWS SDK.

## Déploiement pour un hébergement en tout lieu
<a name="gamelift-build-custom-anywhere"></a>

Si vous utilisez des flottes Amazon GameLift Servers Anywhere pour un hébergement autogéré, il est de votre responsabilité d'installer le logiciel du serveur de jeu sur chaque ordinateur d'une flotte et de le maintenir à jour.

Lorsqu'un processus de serveur de jeu intégré commence à s'exécuter, il s'initialise automatiquement et établit une communication avec le Amazon GameLift Servers service. Le processus du serveur démarre les sessions de jeu à la demande Amazon GameLift Servers et rapporte l'activité au service.

**Topics**
+ [Déploiement pour un hébergement géré](#gamelift-build-custom-upload)
+ [Déploiement pour un hébergement en tout lieu](#gamelift-build-custom-anywhere)
+ [Conditionner les fichiers de version de jeu](gamelift-build-packaging.md)
+ [Ajouter un script d'installation de build](gamelift-build-cli-uploading-install.md)
+ [Création d'une ressource de Amazon GameLift Servers compilation pour l'hébergement géré](gamelift-build-cli-uploading-builds.md)

# Conditionner les fichiers de version de jeu
<a name="gamelift-build-packaging"></a>

Avant de télécharger votre serveur de jeu configuré surAmazon GameLift Servers, empaquetez les fichiers de construction du jeu dans un répertoire de compilation. Ce processus est obligatoire lors de l'hébergement avec une flotte gérée EC2, et constitue une bonne pratique lors de l'hébergement avec une flotte Anywhere. Le répertoire de compilation doit inclure tous les composants nécessaires au fonctionnement de vos serveurs de jeu et à l'hébergement de sessions de jeu. Cela peut inclure les éléments suivants :
+ Fichiers **binaires du serveur de jeu** : fichiers binaires nécessaires au fonctionnement du serveur de jeu. Une version peut inclure des fichiers binaires pour plusieurs serveurs de jeu conçus pour fonctionner sur la même plateforme. Pour obtenir la liste des plateformes prises en charge, consultez[Obtenez des outils Amazon GameLift Servers de développement](gamelift-supported.md).
+ **Dépendances** : tous les fichiers dépendants dont les exécutables de votre serveur de jeu ont besoin pour fonctionner. Exemples : actifs, fichiers de configuration et bibliothèques dépendantes.
**Note**  
Pour les versions de jeu créées avec le SDK du serveur Amazon GameLift Servers pour C\$1\$1 (y compris celles créées avec le plugin Unreal), incluez la DLL OpenSSL pour la même version d'OpenSSL que celle avec laquelle vous avez créé le SDK du serveur. Consultez le fichier README du SDK du serveur pour plus de détails.
+ **Script d'installation** (facultatif) : fichier de script permettant de gérer les tâches d'installation de votre version de jeu sur des serveurs Amazon GameLift Servers d'hébergement. Placez ce fichier à la racine du répertoire de construction. Amazon GameLift Serversexécute le script d'installation dans le cadre de la création de la flotte.

Vous pouvez configurer n'importe quelle application de votre build, y compris votre script d'installation, pour accéder à vos ressources en toute sécurité sur d'autres AWS services. Pour plus d'informations sur les méthodes à suivre, consultez[Connectez votre serveur de jeu Amazon GameLift Servers hébergé à d'autres AWS ressources](gamelift-sdk-server-resources.md).

Après avoir empaqueté vos fichiers de compilation, assurez-vous que votre serveur de jeu peut fonctionner sur une nouvelle installation de votre système d'exploitation cible afin de vérifier que toutes les dépendances requises sont incluses et que votre script d'installation est correct.

# Ajouter un script d'installation de build
<a name="gamelift-build-cli-uploading-install"></a>

Créez un script d'installation pour le système d'exploitation (OS) de votre build de jeu :
+ Windows : créez un fichier batch nommé`install.bat`.
+ Linux : créez un fichier de script shell nommé`install.sh`.

Lors de la création d'un script d'installation, gardez à l'esprit les informations suivantes :
+ Le script ne peut accepter aucune entrée utilisateur.
+ Amazon GameLift Serversinstalle le build et recrée les répertoires de fichiers de votre package de build sur un serveur d'hébergement aux emplacements suivants :
  + Flottes Windows : `C:\game`
  + Flottes Linux : `/local/game`
+ Pendant le processus d'installation des flottes Linux, l'utilisateur run-as dispose d'un accès limité à la structure des fichiers d'instance. Cet utilisateur dispose de tous les droits sur le répertoire dans lequel vos fichiers de compilation sont installés. Si votre script d'installation exécute des actions qui nécessitent des autorisations d'administrateur, spécifiez l'accès administrateur à l'aide de**sudo**. L'utilisateur run-as pour les flottes Windows dispose d'autorisations d'administrateur par défaut. Les échecs d'autorisation liés au script d'installation génèrent un message d'événement indiquant un problème avec le script.
+ Sous Linux, Amazon GameLift Servers prend en charge les langages d'interprétation shell courants tels que bash. Ajoutez un package (par exemple, `#!/bin/bash`) en haut de votre script d'installation. Pour vérifier la prise en charge de vos commandes shell préférées, accédez à distance à une instance Linux active et ouvrez une invite du shell. Pour de plus amples informations, veuillez consulter [Connect aux instances de flotte](fleets-remote-access.md).
+ Le script d'installation ne peut pas s'appuyer sur une connexion d'appairage VPC. Une connexion d'appairage VPC n'est disponible qu'après l'Amazon GameLift Serversinstallation de la version sur les instances de flotte.

**Example Fichier bash d'installation de Windows**  
Ce `install.bat` fichier d'exemple installe les composants d'exécution Visual C\$1\$1 requis pour le serveur de jeu et écrit les résultats dans un fichier journal. Le script inclut le fichier de composant dans le package de construction à la racine.  

```
vcredist_x64.exe /install /quiet /norestart /log c:\game\vcredist_2013_x64.log
```

**Example Script shell d'installation de Linux**  
Ce `install.sh` fichier d'exemple utilise bash dans le script d'installation et écrit les résultats dans un fichier journal.  

```
#!/bin/bash
echo 'Hello World' > install.log
```
Ce `install.sh` fichier d'exemple montre comment vous pouvez utiliser l' CloudWatch agent Amazon pour collecter des métriques personnalisées et au niveau du système, et gérer la rotation des journaux. Comme il Amazon GameLift Servers s'exécute dans un VPC de service, vous devez accorder Amazon GameLift Servers des autorisations pour assumer un rôle Gestion des identités et des accès AWS (IAM) en votre nom. Pour Amazon GameLift Servers permettre d'assumer un rôle, créez un rôle qui inclut la politique AWS `CloudWatchAgentAdminPolicy` gérée et utilisez ce rôle lorsque vous créez une flotte.  

```
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
```

# Création d'une ressource de Amazon GameLift Servers compilation pour l'hébergement géré
<a name="gamelift-build-cli-uploading-builds"></a>

Lorsque vous créez une build et téléchargez vos fichiers, vous disposez de quelques options :
+ [Création d'un build à partir d'un répertoire de fichiers](gamelift-build-cli-uploading-upload-build.md). Il s'agit de l'option la plus simple et la plus couramment utilisée.
+ [Créez un build avec des fichiers dans Amazon Simple Storage Service (Amazon S3)](gamelift-build-cli-uploading-create-build.md). Avec cette option, vous pouvez gérer vos versions de build dans Amazon S3.

Avec les deux méthodes, Amazon GameLift Servers crée une nouvelle ressource de build avec un ID de build unique et d'autres métadonnées. La construction démarre avec le statut **Initialisé**. Après avoir Amazon GameLift Servers acquis les fichiers du serveur de jeu, le build passe à l'état **Prêt**. 

Lorsque le build est prêt, vous pouvez le déployer sur une nouvelle Amazon GameLift Servers flotte. Pour plus d'informations, voir [Création d'une EC2 flotte Amazon GameLift Servers gérée](fleets-creating.md) .Lorsque Amazon GameLift Servers le nouveau parc est configuré, il télécharge les fichiers de construction sur chaque instance du parc et installe les fichiers de génération.

# Création d'un build à partir d'un répertoire de fichiers
<a name="gamelift-build-cli-uploading-upload-build"></a>

Pour créer une version de jeu stockée dans n'importe quel emplacement, y compris dans un répertoire local, utilisez la [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 commande. Cette commande crée un enregistrement de build dans Amazon GameLift Servers et charge les fichiers depuis un emplacement que vous spécifiez.

**Envoyez une demande de chargement.** Dans une fenêtre de ligne de commande, entrez la **upload-build** commande et les paramètres suivants.

```
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**— L'environnement d'exécution du build du serveur de jeu. Vous devez spécifier une valeur de système d'exploitation. Vous ne pourrez pas le mettre à jour ultérieurement.
+ **server-sdk-version**— La version du SDK du Amazon GameLift Servers serveur à laquelle votre serveur de jeu est intégré. Si vous ne fournissez aucune valeur, Amazon GameLift Servers utilise la valeur par défaut`4.0.2`. Si vous spécifiez une version du SDK de serveur incorrecte, la compilation du serveur de jeu risque d'échouer lors de `InitSdk` l'appel pour établir une connexion au Amazon GameLift Servers service.
+ **build-root**— Le chemin du répertoire de vos fichiers de compilation.
+ **name**— Nom descriptif de la nouvelle version.
+ **build-version**— Les détails de version des fichiers de compilation.
+ **region**— La AWS région dans laquelle vous souhaitez créer votre build. Créez le build dans la région où vous prévoyez de déployer des flottes. Si vous déployez votre jeu dans plusieurs régions, créez un build dans chaque région.
**Note**  
Consultez votre région par défaut actuelle à l'aide du [https://docs.aws.amazon.com/cli/latest/reference/configure/get.html](https://docs.aws.amazon.com/cli/latest/reference/configure/get.html). Pour modifier votre région par défaut, utilisez la [https://docs.aws.amazon.com/cli/latest/reference/configure/set.html](https://docs.aws.amazon.com/cli/latest/reference/configure/set.html)commande.

*Exemples*

```
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
```

En réponse à votre demande de téléchargement, Amazon GameLift Servers indique la progression du téléchargement. En cas de téléchargement réussi, Amazon GameLift Servers renvoie le nouvel ID d'enregistrement de construction. Le temps de chargement dépend de la taille de vos fichiers de jeu et de la vitesse de connexion.

# Création d'un build avec des fichiers dans Amazon S3
<a name="gamelift-build-cli-uploading-create-build"></a>

Vous pouvez stocker vos fichiers de compilation dans Amazon S3 et les télécharger à Amazon GameLift Servers partir de là. Lorsque vous créez votre build, vous spécifiez l'emplacement du compartiment S3 et vous Amazon GameLift Servers récupérez les fichiers de build directement depuis Amazon S3.

**Pour créer une ressource de construction**

1. **Stockez vos fichiers de compilation dans Amazon S3.** Créez un fichier .zip contenant les fichiers de construction empaquetés et téléchargez-le dans un compartiment S3 de votre Compte AWS. Prenez note de l'étiquette du bucket et du nom du fichier, vous en aurez besoin lors de la création d'un Amazon GameLift Servers build.

1. **Accordez à Amazon GameLift Servers l'accès à vos fichiers de build.** Créez un rôle IAM en suivant les instructions de[Accédez à un fichier de compilation de jeu dans Amazon S3](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-storage-loc). Après avoir créé le rôle, prenez note du nom de ressource Amazon (ARN) du nouveau rôle. Vous en aurez besoin lors de la création d'un build.

1. **Créez un build.** Utilisez la Amazon GameLift Servers console ou le AWS CLI pour créer un nouvel enregistrement de build. Vous devez avoir l'`PassRole`autorisation, comme décrit dans[Exemples d'autorisations IAM pour Amazon GameLift Servers](gamelift-iam-policy-examples.md).

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

1. Dans le volet de navigation de la [Amazon GameLift Serversconsole](https://console.aws.amazon.com/gamelift/), choisissez **Hosting**, **Builds**.

1. Sur la page **Builds**, choisissez **Create build**.

1. Sur la page **Créer une version**, sous **Paramètres** de génération, procédez comme suit :

   1. Dans **Nom**, entrez le nom du script.

   1. Pour **Version**, entrez une version. Comme vous pouvez mettre à jour le contenu d'une version, les données de version peuvent vous aider à suivre les mises à jour.

   1. Dans **Système d'exploitation (OS)**, choisissez le système d'exploitation de la version de votre serveur de jeu. Vous ne pourrez pas mettre à jour cette valeur ultérieurement.

   1. Pour **le build du serveur de jeu**, entrez l'**URI S3** de l'objet de build que vous avez chargé sur Amazon S3, puis choisissez la **version de l'objet**. Si vous ne vous souvenez pas de l'URI et de la version de l'objet Amazon **S3, choisissez Browse S3** et recherchez l'objet de construction.

   1. Pour le **rôle IAM**, choisissez le rôle que vous avez créé qui donne Amazon GameLift Servers accès à votre compartiment S3 et à votre objet de construction.

1. (Facultatif) Sous **Balises**, ajoutez des balises au build en saisissant des paires **clé** et **valeur**.

1. Choisissez **Créer**.

Amazon GameLift Serversattribue un identifiant à la nouvelle version et télécharge le fichier .zip désigné. Vous pouvez consulter le nouveau build, y compris son statut, sur la page **Builds**.

------
#### [ AWS CLI ]

Pour définir le nouveau build et télécharger les fichiers de build de votre serveur, utilisez la [https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-build.html](https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-build.html)commande.

1. Ouvrez une fenêtre de ligne de commande et passez à un répertoire dans lequel vous pouvez utiliser le AWS CLI.

1. Entrez la **create-build** commande suivante :

   ```
   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**— Nom descriptif de la nouvelle version.
   + **server-sdk-version**— La version du SDK du serveur à laquelle Amazon GameLift Servers vous avez intégré votre serveur de jeu. Amazon GameLift Servers Si vous ne fournissez aucune valeur, Amazon GameLift Servers utilise la valeur par défaut`4.0.2`.
   + **operating-system**— L'environnement d'exécution du build du serveur de jeu. Vous devez spécifier une valeur de système d'exploitation. Vous ne pourrez pas le mettre à jour ultérieurement.
   + **build-version**— Les détails de version des fichiers de compilation. Ces informations peuvent être utiles car chaque nouvelle version de votre serveur de jeu nécessite une nouvelle ressource de compilation.
   + **storage-location**
     + **Bucket**— Le nom du compartiment S3 qui contient votre build. Par exemple, « my\$1build\$1files ».
     + **Key**— Le nom du fichier .zip qui contient vos fichiers de compilation. Par exemple, « my\$1game\$1build\$17.0.1, 7.0.2 ».
     + **RoleARN**— L'ARN attribué au rôle IAM que vous avez créé. Par exemple, « arn:aws:iam : :111122223333:role/ ». GameLiftAccess Pour un exemple de politique, consultez [Accédez à un fichier de compilation de jeu dans Amazon S3](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-storage-loc).
   + **region**— Créez le build dans la AWS région où vous prévoyez de déployer des flottes. Si vous déployez votre jeu dans plusieurs régions, créez un build dans chaque région.
**Note**  
Nous vous recommandons de vérifier votre région par défaut actuelle à l'aide de la [https://docs.aws.amazon.com/cli/latest/reference/configure/get.html](https://docs.aws.amazon.com/cli/latest/reference/configure/get.html)commande [https://docs.aws.amazon.com/cli/latest/reference/configure/get.html](https://docs.aws.amazon.com/cli/latest/reference/configure/get.html). Pour modifier votre région par défaut, utilisez la [https://docs.aws.amazon.com/cli/latest/reference/configure/set.html](https://docs.aws.amazon.com/cli/latest/reference/configure/set.html)commande.

   *Exemple*

   ```
   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. Pour afficher la nouvelle version, utilisez la [https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-build.html](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-build.html)commande.

------

# Créez une image de conteneur pour Amazon GameLift Servers
<a name="containers-prepare-images"></a>

Cette rubrique explique comment créer une image de conteneur à l'aide du logiciel de votre serveur de jeuAmazon GameLift Servers. Une image de conteneur de serveur de jeu inclut l'exécutable du serveur de jeu et toutes les dépendances dont il a besoin pour fonctionner. Les images de conteneurs de serveurs de jeux sont utilisées avec une solution d'hébergement de conteneurs Amazon GameLift Servers gérés. Pour plus de détails sur la création de la solution complète, voir :
+ [Feuille de route de développement pour l'hébergement avec des conteneurs Amazon GameLift Servers gérés](gamelift-roadmap-containers.md)
+ [Comment fonctionnent les conteneurs dans Amazon GameLift Servers](containers-howitworks.md)

Effectuez les tâches suivantes pour préparer l'image de conteneur de votre serveur de jeu à être déployée sur une flotte de Amazon GameLift Servers conteneurs. Avant de commencer ces tâches, terminez d'intégrer le code de votre serveur de jeu au SDK Amazon GameLift Servers du serveur.

**Topics**
+ [Création d'une image de conteneur de serveur de jeu](#containers-prepare-images-build)
+ [Transférer une image de conteneur vers Amazon ECR](#containers-prepare-images-upload)

## Création d'une image de conteneur de serveur de jeu
<a name="containers-prepare-images-build"></a>

Suivez ces instructions lorsque vous travaillez sur une plate-forme Linux ou que vous utilisez le sous-système Windows pour Linux (WSL) avec Docker installé.

**Pour créer une image de conteneur de serveur de jeu**

1. Préparez un répertoire de travail avec le logiciel de votre serveur de jeu. Sur une machine locale, créez un répertoire de travail pour organiser les fichiers du conteneur de votre serveur de jeu. Votre image de conteneur utilise cette structure de fichier lors du déploiement du conteneur sur Amazon GameLift Servers des ressources à des fins d'hébergement. Par exemple :

   ```
   [~/]$ mkdir -p work/glc/gamebuild && cd work && find .
   .
   ./glc
   ./glc/gamebuild
   ```
**Note**  
Si vous essayez cette fonctionnalité et que vous n'avez pas encore de version de serveur de jeu fonctionnelle, essayez notre exemple de serveur de jeu [SimpleServer](https://github.com/aws-solutions-library-samples/guidance-for-custom-game-backend-hosting-on-aws/tree/main/BackendFeatures/AmazonGameLiftIntegration/SimpleServer), disponible sur GitHub.

1. Créez un nouveau Dockerfile à l'aide du modèle fourni.

1. Suivez les instructions du modèle Dockerfile pour le mettre à jour pour votre propre usage. 
   + Mettez à jour l'image de base selon vos besoins.
   + Définissez des variables d'environnement pour la construction de votre serveur de jeu. 

1. Créez l'image du conteneur. Exécutez le `docker build` en spécifiant le nom de votre propre dépôt. Par exemple :

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

   Vous pouvez afficher vos référentiels et vos images IDs à l'aide de la `docker images` commande, comme illustré dans cet exemple :

## Modèle Dockerfile pour une image de conteneur de serveur de jeu
<a name="w2aab9c11c13c17c15b1"></a>

Ce modèle contient les instructions minimales dont un conteneur de serveur de jeu a besoin pour être utilisé dans une Amazon GameLift Servers flotte. Modifiez le contenu selon les besoins de votre serveur de jeu. 

```
# 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"]
```

## Transférer une image de conteneur vers Amazon ECR
<a name="containers-prepare-images-upload"></a>

Après avoir créé une image de conteneur pour le déploiementAmazon GameLift Servers, stockez-la dans un référentiel public ou privé sur Amazon ECR. Une valeur d'URI est attribuée à ce référentiel, qui Amazon GameLift Servers permet de prendre un instantané de l'image en vue de son déploiement sur un parc de conteneurs. 

**Note**  
Si vous ne possédez pas encore de référentiel privé Amazon ECR, [créez-en un](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html). 

**Pour transférer l'image de votre conteneur vers Amazon ECR**

1. Obtenez vos informations d'identification Amazon ECR. Avant de transférer une image de conteneur vers Amazon ECR, vous devez d'abord acquérir vos AWS informations d'identification sous forme temporaire et les fournir à Docker. Docker a besoin de ces informations d'identification pour se connecter.

   ```
   [~/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. Copiez l'URI du [référentiel privé Amazon ECR](https://console.aws.amazon.com/ecr/private-registry/repositories) que vous souhaitez utiliser. 

1. Appliquez une balise Amazon ECR à l'image de votre conteneur.  
**Example**  

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

1. Transférez l'image de votre conteneur vers Amazon ECR  
**Example**  

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