Maison >interface Web >js tutoriel >Créer un Pokédex avec Python et AWS CDK : un guide étape par étape pour créer votre propre application Web en moins de quelques minutes
Es-tu un fan de Pokémon ? Bien sûr oui ! Ces êtres fantastiques ont conquis nos cœurs à travers des jeux vidéo, des séries, des films et bien plus encore. Mais avez-vous déjà rêvé d'avoir votre propre Pokédex pour explorer la diversité et les caractéristiques uniques de chaque Pokémon ?
Aujourd'hui, c'est votre jour de chance. Dans cet article, je vais vous guider étape par étape pour créer votre propre Pokédex en moins de 20 minutes à l'aide d'AWS CDK, Python et l'API publique Pokémon. On vous donne et non des conseils !
Avant de commencer, assurez-vous d'avoir des connaissances de base sur les sujets suivants :
1. Familiarité avec AWS et sa console
2. Connaissance de base de Python
3. Expérience en ligne de commande
Pour commencer, nous devons configurer les outils nécessaires pour créer notre Pokédex. Ci-dessous, je vous laisse la liste des outils que nous allons utiliser :
- Un compte AWS
- AWS CLI
- AWS CDK
- Python 3.9 ou supérieur
- Javascript Vanille
- Un éditeur de code de votre choix
La première chose que nous devons faire est de configurer notre environnement de travail pour pouvoir déployer notre solution. Suivez ces étapes :
En suivant les bonnes pratiques recommandées par AWS, nous devons créer un utilisateur et attribuer uniquement les autorisations nécessaires à notre projet. Pour ce faire :
Une fois configuré, attribuez les autorisations nécessaires pour travailler avec le CDK. Une façon de procéder consiste à attribuer des politiques avec des autorisations directement à l'utilisateur.
Après cela, configurez votre console avec les informations d'identification nouvellement créées
aws configure // Nos solicitará la siguiente información AWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: Default output format [None]:
Créons le projet en utilisant Python. Ouvrez un terminal et exécutez la commande suivante :
application cdk init --langage python
Cela créera un dossier avec le nom de votre projet, qui contient les fichiers nécessaires au CDK. Parmi ceux-ci se trouve le fichier app.py, dans lequel nous allons spécifier notre application. Un environnement Python virtuel est également créé, qui est activé automatiquement.
Dans cette étape, nous allons créer le bucket S3 qui contiendra les fichiers de notre site Web Pokedex. Ouvrez le fichier app.py et modifiez-le comme suit :
à partir des constructions importer Construct à partir de l'importation aws_cdk ( empiler, aws_s3 comme s3, aws_s3_deployment en tant que s3deploy, cœur ) classe CdkStack(Pile): def __init__(self, scope : Construct, construct_id : str, **kwargs) -> Aucun: super().__init__(scope, construct_id, **kwargs) pokeBucket = s3.Bucket(soi,> <p>Ici, nous créons une classe appelée CdkStack, qui représente une pile AWS CloudFormation, une collection gérable de ressources AWS. Dans le constructeur de classe, nous créons une instance de la classe s3.Bucket, qui représente un compartiment S3. Les paramètres sont décrits ci-dessous :</p> <ol> <li> <strong>pokebuck</strong> : <em>L'identifiant de la ressource au sein de la pile.</em> </li> <li> <strong>website_index_document</strong> : <em>Le nom du document qui sera affiché lors de l'accès au bucket en tant que site Web. Dans ce cas, il s'agira du fichier index.html, qui se trouve dans le dossier "static_site".</em> </li> <li> <strong>website_error_document</strong> : <em>Le nom du document qui sera affiché lorsqu'une erreur se produit lors de l'accès au bucket en tant que site Web. Dans ce cas, ce sera le fichier error.html.</em> </li> <li> <strong>public_read_access</strong> : <em>Une valeur indiquant si le compartiment aura un accès public en lecture. Nous le définirons sur True afin que notre site Web Pokedex puisse être vu par tout le monde.</em> </li> <li> <strong>removal_policy</strong> : <em>La stratégie qui sera appliquée au bucket lorsque la pile est supprimée. Nous attribuons la valeur core.RemovalPolicy.DESTROY pour que le bucket soit supprimé lorsque la pile est supprimée.</em> </li> </ol> <p>Nous créons également une instance de la classe s3deploy.BucketDeployment, qui représente le déploiement du site Web statique dans le bucket S3.<br> Nous passons les paramètres suivants :</p><ol> <li> <strong>pokedex-deployment</strong> : <em>Identifiant de la ressource au sein de la pile.</em> </li> <li> <strong>sources</strong> : <em>Liste des sources qui contiennent les fichiers que nous souhaitons déployer. Dans ce cas, nous utilisons la méthode s3deploy.Source.asset pour indiquer que les fichiers se trouvent dans le dossier ./static_site de notre projet.</em> </li> <li> <strong>destination_bucket</strong> : <em>Seau S3 où nous allons déployer les fichiers. Dans ce cas, il s'agit du bucket que nous avons créé précédemment.</em> </li> </ol> <h2> Charger un site Web statique </h2> <p>Nous allons maintenant charger le site Web statique qui affichera les informations Pokémon. Pour ce faire, nous allons utiliser le code trouvé dans notre dépôt GitHub, branche cdk, dossier static_site. Ce code est un site Web statique, avec du JavaScript Vanilla, qui communique via Axios avec l'API publique Web Pokémon v2.</p> <blockquote> <p><em>Remarque : Ce projet n'a pas pour vocation d'être une solution frontend complète, mais plutôt d'offrir différentes possibilités de travail liées à l'API publique Pokémon. Le frontend peut être totalement amélioré et les suggestions et contributions sont acceptées</em></p> </blockquote> <h2> Déployez, déployez, déployez ! </h2> <p>Nous avons maintenant tout prêt pour déployer notre application. Pour ce faire, nous allons utiliser les commandes AWS CDK qui nous permettent de créer et de gérer l'infrastructure dans AWS. Les commandes sont les suivantes :</p> <ol> <li> <strong>cdk bootstrap</strong> : préparez l'environnement AWS pour le CDK en créant un compartiment S3 qui stockera les modèles CloudFormation et les artefacts d'application. Vous ne devez l'exécuter qu'une seule fois pour chaque compte AWS et région que nous utilisons.</li> <li> <strong>cdk synth</strong> : Génère le modèle CloudFormation qui représente notre application et l'affiche sur la sortie standard. Avec cela nous vérifions que notre application est bien définie et qu'il n'y a pas d'erreurs de syntaxe ou de logique.</li> <li> <strong>cdk déployer</strong> : crée et/ou met à jour la pile CloudFormation qui représente notre application et déploie les ressources sur AWS.</li> </ol> <p>Au cours de ce processus, nous obtiendrons des informations de la console étape par étape.</p> <p><img src="https://img.php.cn/upload/article/000/000/000/173563909767924.jpg" alt="Construyendo una Pokédex con Python y AWS CDK: Una guía paso a paso para crear tu propia aplicación web en menos de minutos"></p> <p>À titre de recommandation, il est toujours bon d'accéder à la console et de consulter la section AWS CloudFormation, de cette façon nous pouvons observer les événements et chacune des actions effectuées au sein de notre compte.</p> <h2> DÉMO </h2> <p><img src="https://img.php.cn/upload/article/000/000/000/173563909972434.jpg" alt="Construyendo una Pokédex con Python y AWS CDK: Una guía paso a paso para crear tu propia aplicación web en menos de minutos"></p><h2> Conclusion </h2> <p>Félicitations ! Vous avez créé votre propre Pokedex en moins de 15 minutes à l'aide d'AWS CDK, de Python et de l'API publique Pokémon. Vous pouvez désormais explorer tous les Pokémon et leurs caractéristiques depuis votre propre application Web.</p> <p>Si vous avez aimé ce tutoriel, n'hésitez pas à le partager et à laisser vos commentaires. Quelles autres fonctionnalités aimeriez-vous ajouter à votre Pokedex ? Faites-le-moi savoir !</p> <p><img src="https://img.php.cn/upload/article/000/000/000/173563910048019.jpg" alt="Construyendo una Pokédex con Python y AWS CDK: Una guía paso a paso para crear tu propia aplicación web en menos de minutos"></p>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!