Étape 1 : déploiement et test localement - Amazon DynamoDB

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.

Étape 1 : déploiement et test localement

Dans cette étape, vous téléchargez, déployez et testez l'application du jeu de morpion sur votre ordinateur local. Au lieu d'utiliser le service web Amazon DynamoDB, vous téléchargez DynamoDB sur votre ordinateur et créez la table obligatoire à cet emplacement.

1.1 : téléchargement et installation des packages requis

Pour tester cette application localement, vous aurez besoin des éléments suivants :

  • Python

  • Flask (une microstructure pour Python)

  • AWS SDK for Python (Boto)

  • DynamoDB s'exécutant sur votre ordinateur

  • Git

Pour obtenir ces outils, procédez comme suit :

  1. Installez Python. Pour obtenir des instructions détaillées, veuillez consulter Download Python.

    L'application morpion a été testée à l'aide de Python version 2.7.

  2. Installez Flask et AWS SDK for Python (Boto) en utilisant le programme d'installation du package Python (PIP) :

    • Installez PIP.

      Pour obtenir des instructions, veuillez consulter Installation de PIP. Sur la page de l'installation, choisissez le lien get-pip.py, puis enregistrez le fichier. Ouvrez ensuite un terminal de commande en tant qu'administrateur, puis entrez ce qui suit à l'invite de commande.

      python.exe get-pip.py

      Sur Linux, vous ne spécifiez pas l'extension .exe. Vous spécifiez uniquement python get-pip.py.

    • Avec PIP, installez les packages Flask et Boto en utilisant le code suivant.

      pip install Flask pip install boto pip install configparser
  3. Téléchargez DynamoDB sur votre ordinateur. Pour plus d'informations sur la façon de l'exécuter, consultez Configuration de DynamoDB Local (version téléchargeable) .

  4. Téléchargez l'application morpion :

    1. Installez Git. Pour obtenir des instructions, consultez Téléchargements git.

    2. Exécutez le code suivant pour télécharger l'application.

      git clone https://github.com/awslabs/dynamodb-tictactoe-example-app.git

1.2 : test de l'application de jeu

Pour tester l'application morpion, vous devez exécuter DynamoDB localement sur votre ordinateur.

Pour exécuter l'application morpion
  1. Démarrez DynamoDB.

  2. Démarrez le serveur web pour l'application morpion.

    Pour ce faire, ouvrez un terminal de commande, accédez au dossier dans lequel vous avez téléchargé l'application de morpion et exécutez l'application localement à l'aide du code suivant.

    python.exe application.py --mode local --serverPort 5000 --port 8000

    Sur Linux, vous ne spécifiez pas l'extension .exe.

  3. Ouvrez votre navigateur web et entrez ce qui suit.

    http://localhost:5000/

    Le navigateur affiche la page d'accueil.

    
                            Capture d'écran de la page d'accueil de l'application avec un bouton Create (Créer) et des liens vers des jeux, des invitations et l'historique récent.
  4. Entrez user1 dans la zone Log in (Connexion) pour vous connecter tant qu'utilisateur user1.

    Note

    Cet exemple d'application n'effectue aucune authentification de l'utilisateur. L'ID d'utilisateur est utilisé uniquement pour identifier les joueurs. Si deux joueurs se connectent avec le même alias, l'application fonctionne comme si vous jouiez dans deux navigateurs différents.

  5. Si vous jouez à ce jeu pour la première fois, une page s'affiche vous demandant de créer la table requise (Games) dans DynamoDB. Choisissez CREATE TABLE.

    
                            Capture d'écran du bouton Create table (Créer une table) dans l'application.
  6. Choisissez CREATE pour créer le premier jeu de morpion.

  7. Entrez user2 dans la zone Choose an Opponent (Choisir un adversaire) et choisissez Create Game! (Créer le jeu !)

    
                            Capture d'écran montrant la boîte de dialogue Choose an Opponent (Choisir un adversaire) et le bouton Create Game! (Créer le jeu !).

    Cela crée le jeu en ajoutant un élément dans la table Games. Cela définit le statut du jeu sur PENDING.

  8. Ouvrez une autre fenêtre de navigateur et entrez ce qui suit.

    http://localhost:5000/

    Le navigateur transmet des informations par le biais de cookies, vous devez donc utiliser le mode de navigation privée afin que vos cookies ne soient pas transférés.

  9. Connectez-vous en tant qu'user2.

    Une page s'affiche qui indique une invitation en attente d'user1.

    
                            Capture d'écran montrant la page d'accueil de l'application avec une invitation en attente.
  10. Choisissez accept pour accepter l'invitation.

    
                            Capture d'écran d'une grille de morpion vide avec l'état du jeu INPROGRESS (En cours).

    La page de jeu s'affiche avec une grille de morpion vide. La page affiche également des informations de jeu pertinentes telles que l'ID du jeu, le joueur dont c'est le tour et le statut du jeu.

  11. Jouez.

Pour chaque mouvement de l'utilisateur, le service web envoie à DynamoDB une demande de mise à jour conditionnelle de l'élément de jeu dans la table Games. Par exemple, les conditions garantissent la validité du déplacement, la disponibilité de la case choisie par l'utilisateur et que c'était bien le tour de l'utilisateur qui a effectué le déplacement. Pour un déplacement valide, l'opération de mise à jour ajoute un nouvel attribut correspondant à la sélection sur le plateau. L'opération de mise à jour définit également la valeur de l'attribut existant sur l'utilisateur qui peut procéder au déplacement suivant.

Sur la page du jeu, l'application effectue des appels JavaScript asynchrones chaque seconde, pendant un maximum de 5 minutes, pour vérifier si le statut du jeu dans DynamoDB a changé. Si c'est le cas, l'application met à jour la page avec de nouvelles informations. Après 5 minutes, l'application arrête de générer les demandes et vous devez actualiser la page pour obtenir des informations mises à jour.