

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.

# QuickStart: Déployer une application Python sur Elastic Beanstalk
<a name="python-quickstart"></a>

Ce QuickStart didacticiel explique le processus de création d'une application Python et de son déploiement dans un AWS Elastic Beanstalk environnement.

**Non destiné à une utilisation en production**  
Les exemples sont destinés uniquement à des fins de démonstration. N'utilisez pas d'exemples d'applications en production.

**Topics**
+ [Votre AWS compte](#python-quickstart-aws-account)
+ [Conditions préalables](#python-quickstart-prereq)
+ [Étape 1 : Création d'une application Python](#python-quickstart-create-app)
+ [Étape 2 : Exécutez votre application localement](#python-quickstart-run-local)
+ [Étape 3 : Déployez votre application Python avec l'EB CLI](#python-quickstart-deploy)
+ [Étape 4 : Exécutez votre application sur Elastic Beanstalk](#python-quickstart-run-eb-ap)
+ [Étape 5 : nettoyer](#go-tutorial-cleanup)
+ [AWS ressources pour votre application](#python-quickstart-eb-resources)
+ [Étapes suivantes](#python-quickstart-next-steps)
+ [Déployez avec la console Elastic Beanstalk](#python-quickstart-console)

## Votre AWS compte
<a name="python-quickstart-aws-account"></a>

Si vous n'êtes pas encore AWS client, vous devez créer un AWS compte. L'inscription vous permet d'accéder à Elastic Beanstalk AWS et aux autres services dont vous avez besoin.

Si vous avez déjà un AWS compte, vous pouvez passer à[Conditions préalables](#python-quickstart-prereq).

### Créez un AWS compte
<a name="python-quickstart-aws-account-procedure"></a>

#### Inscrivez-vous pour un Compte AWS
<a name="sign-up-for-aws"></a>

Pour commencer AWS, vous avez besoin d'un Compte AWS. Pour plus d'informations sur la création d'un Compte AWS, voir [Getting started with an Compte AWS](https://docs.aws.amazon.com/accounts/latest/reference/getting-started.html) dans le *Guide de Gestion de compte AWS référence*.

## Conditions préalables
<a name="python-quickstart-prereq"></a>

Pour suivre les procédures décrites dans ce guide, vous aurez besoin d'un shell ou d'un terminal de ligne de commande pour exécuter des commandes. Dans les listes, les commandes sont précédées d'un symbole d'invite ($) et du nom du répertoire actuel, le cas échéant.

```
~/eb-project$ this is a command
this is output
```

Sous Linux et macOS, vous pouvez utiliser le shell et le gestionnaire de package de votre choix. Sur Windows, vous pouvez [installer le sous-système Windows pour Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10) afin d'obtenir une Windows-integrated version d'Ubuntu et de Bash.

### INTERFACE DE LIGNE DE COMMANDE (CLI) EB
<a name="python-quickstart-prereq.ebcli"></a>

Ce tutoriel utilise également l'interface de ligne de commande Elastic Beanstalk (CLI EB). Pour de plus amples informations sur l'installation et la configuration de la CLI EB, veuillez consulter [Installation de la CLI EB avec un script de configuration (recommandé)](eb-cli3.md#eb-cli3-install) et [Configuration de l'interface de ligne de commande EB](eb-cli3-configuration.md).

### Framework Python et Flask
<a name="python-quickstart-prereq.runtime"></a>

Vérifiez que vous disposez d'une version fonctionnelle de Python `pip` installée en exécutant les commandes suivantes.

```
~$ python3 --version
Python 3.N.N
>~$ python3 -m pip --version
pip X.Y.Z from ... (python 3.N.N)
```

Si l'une des commandes précédentes renvoie « *Python introuvable* », exécutez les commandes suivantes qui utilisent à la `python` place de`python3`. La configuration des alias et des liens symboliques peut varier en fonction du système d'exploitation et des personnalisations individuelles. Il est donc possible que la `python3` commande ne fonctionne pas sur votre machine.

```
~$ python --version
Python 3.N.N
>~$ python -m pip --version
pip X.Y.Z from ... (python 3.N.N)
```

Si Python n'est pas installé sur votre machine locale, vous pouvez le télécharger depuis la page de [téléchargement de Python](https://www.python.org/downloads/) sur le site Web de Python. *Pour obtenir la liste des versions du langage Python prises en charge par Elastic Beanstalk[, consultez la section Plateformes Python AWS Elastic Beanstalk prises en charge](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.python) dans le guide des plateformes.* Le site Web de téléchargement de Python fournit un lien vers le *guide du développeur Python*, où vous trouverez des instructions d'installation et de configuration.

**Note**  
Le `pip` package Python est inclus par défaut dans Python 3.4 ou version ultérieure.

Si votre résultat indique que vous disposez d'une version compatible de Python, mais que ce n'est pas le cas`pip`, consultez la page [d'installation](https://pip.pypa.io/en/stable/installation/) sur le site Web *pip.pypa.io.* Il fournit des conseils pour installer pip dans un environnement Python qui ne l'a pas.



Vérifiez si Flask est installé en exécutant la commande suivante :

```
~$ pip list | grep Flask
```

Si Flask n'est pas installé, vous pouvez l'installer à l'aide de la commande suivante :

```
~$ pip install Flask
```

## Étape 1 : Création d'une application Python
<a name="python-quickstart-create-app"></a>

Créez un répertoire de projet.

```
~$ mkdir eb-python
~$ cd eb-python
```

Créez un exemple « Hello Elastic Beanstalk \! » Application Python que vous déploierez à l'aide d'Elastic Beanstalk.

Créez un fichier texte nommé `application.py` dans le répertoire que vous venez de créer avec le contenu suivant.

**Example `~/eb- .py python/application`**  

```
from flask import Flask
application = Flask(__name__)

@application.route('/')
def hello_elastic_beanstalk():
        return 'Hello Elastic Beanstalk!'
```

Créez un fichier texte nommé `requirements.txt` avec la ligne suivante. Ce fichier contient les `pip` packages nécessaires à l'exécution de l'application.

**Example `~/fr-.txt python/requirements`**  

```
Flask
```

## Étape 2 : Exécutez votre application localement
<a name="python-quickstart-run-local"></a>

Exécutez la commande suivante pour exécuter votre application localement.

```
~/eb-python$ export FLASK_APP=application.py && flask run --port 5000
```

Vous devriez voir un résultat similaire à ce qui suit

```
Serving Flask app 'application.py'
Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
Running on http://127.0.0.1:5000
Press CTRL+C to quit
127.0.0.1 - - [01/Jan/1970 00:00:00] "GET / HTTP/1.1" 200 -
```

Accédez à `http://localhost:5000` dans votre navigateur Web. Le navigateur Web doit afficher « Hello Elastic Beanstalk \! ».

## Étape 3 : Déployez votre application Python avec l'EB CLI
<a name="python-quickstart-deploy"></a>

Exécutez les commandes suivantes pour créer un environnement Elastic Beanstalk pour cette application.

 

**Pour créer un environnement et déployer votre application Python**

1. Initialisez votre référentiel de la CLI EB avec la commande **eb init** :

   ```
   ~/eb-python$ eb init -p python-3.9 python-tutorial --region {{us-east-2}}
   ```

   Cette commande crée une application nommée `python-tutorial` et configure votre dépôt local pour créer des environnements avec la version de plate-forme Python fournie.

1. (facultatif) Exécutez à nouveau la commande **eb init** pour configurer une paire de clés par défaut afin de pouvoir vous connecter à l'instance EC2 qui exécute votre application.

   ```
   ~/eb-python$ eb init
   Do you want to set up SSH for your instances?
   (y/n): y
   Select a keypair.
   1) my-keypair
   2) [ Create new KeyPair ]
   ```

   Sélectionnez une paire de clés si vous en avez déjà une, ou suivez les invites pour en créer une. Si vous ne voyez pas l'invite ou que vous avez besoin de modifier vos paramètres ultérieurement, exécutez **eb init -i**.

1. Créez un environnement et déployez-y votre application avec **eb create**. Elastic Beanstalk crée automatiquement un fichier zip pour votre application et le démarre sur le port 5000.

   ```
   ~/eb-python$ eb create python-env
   ```

   Il faut environ cinq minutes à Elastic Beanstalk pour créer votre environnement.

## Étape 4 : Exécutez votre application sur Elastic Beanstalk
<a name="python-quickstart-run-eb-ap"></a>

Lorsque le processus de création de votre environnement est terminé, ouvrez votre site Web avec**eb open**.

```
~/eb-python$ eb open
```

Félicitations \! Vous avez déployé une application Python avec Elastic Beanstalk \! Celle-ci ouvre une fenêtre de navigation en utilisant le nom de domaine créé pour votre application.

## Étape 5 : nettoyer
<a name="go-tutorial-cleanup"></a>

Vous pouvez mettre fin à votre environnement lorsque vous avez fini d'utiliser votre application. Elastic Beanstalk AWS met fin à toutes les ressources associées à votre environnement.

Pour mettre fin à votre environnement Elastic Beanstalk avec l'EB CLI, exécutez la commande suivante.

```
~/eb-python$ eb terminate
```

## AWS ressources pour votre application
<a name="python-quickstart-eb-resources"></a>

Vous venez de créer une application à instance unique. Il s'agit d'un exemple d'application simple avec une seule instance EC2, de sorte qu'il ne nécessite pas d'équilibrage de charge ni de dimensionnement automatique. Pour les applications à instance unique, Elastic Beanstalk crée les ressources suivantes : AWS 
+ **Instance EC2** – Une machine virtuelle Amazon EC2 configurée pour exécuter des applications web sur la plateforme de votre choix.

  Chaque plateforme exécute un ensemble distinct de logiciels, de fichiers de configuration et de scripts pour prendre en charge une version de langage, une infrastructure ou un conteneur web spécifiques, ou une combinaison de ces éléments. La plupart des plateformes utilisent Apache ou nginx comme proxy inverse qui traite le trafic web devant votre application web, lui transmet les demandes, traite les ressources statiques et génère des journaux d'accès et d'erreurs.
+ **Groupe de sécurité de l'instance** – Un groupe de sécurité Amazon EC2 configuré pour autoriser le trafic entrant sur le port 80. Cette ressource autorise le trafic HTTP provenant de l'équilibreur de charge à atteindre l'instance EC2 qui exécute votre application web. Par défaut, le trafic n'est pas autorisé sur les autres ports.
+ **Compartiment Amazon S3** – Emplacement de stockage pour votre code source, les journaux et autres artefacts qui sont créés lorsque vous utilisez Elastic Beanstalk.
+ ** CloudWatch Alarmes Amazon** : deux CloudWatch alarmes qui surveillent la charge sur les instances de votre environnement et sont déclenchées si la charge est trop élevée ou trop faible. Lorsqu'une alarme est déclenchée, votre groupe Auto Scaling s'adapte en fonction, à la hausse ou à la baisse.
+ **CloudFormation stack** — Elastic CloudFormation Beanstalk utilise pour lancer les ressources de votre environnement et propager les modifications de configuration. Les ressources sont définies dans un modèle, que vous pouvez afficher dans la [console CloudFormation](https://console.aws.amazon.com/cloudformation).
+  **Nom de domaine** : nom de domaine qui permet d'accéder à votre application Web dans le formulaire *{{subdomain}}. {{region}}.elasticbeanstalk.com*. 

Elastic Beanstalk gère toutes ces ressources. Lorsque vous arrêtez votre environnement, Elastic Beanstalk arrête toutes les ressources qu'il contient.

## Étapes suivantes
<a name="python-quickstart-next-steps"></a>

Dès que vous disposez d'un environnement exécutant une application, vous pouvez à tout moment déployer une nouvelle version de l'application ou une application totalement différente. Le déploiement d'une nouvelle version d'application est très rapide, car il n'est pas nécessaire de mettre en service ni de redémarrer les instances EC2. Vous pouvez également explorer votre nouvel environnement à l'aide de la console Elastic Beanstalk. Pour connaître les étapes détaillées, consultez la section [Explorez votre environnement](GettingStarted.md#GettingStarted.Explore) dans le chapitre *Mise* en route de ce guide.

**Essayez d'autres didacticiels**  
Si vous souhaitez essayer d'autres didacticiels avec différents exemples d'applications, consultez les didacticiels suivants :  
[Déploiement d'une application Flask sur Elastic Beanstalk](create-deploy-python-flask.md)
[Déploiement d'une application Django sur Elastic Beanstalk](create-deploy-python-django.md)

Une fois que vous avez déployé un ou deux exemples d'applications et que vous êtes prêt à commencer à développer et à exécuter des applications Python localement, consultez[Configuration de votre environnement de développement Python pour Elastic Beanstalk](python-development-environment.md). 

## Déployez avec la console Elastic Beanstalk
<a name="python-quickstart-console"></a>

Vous pouvez également utiliser la console Elastic Beanstalk pour lancer l'exemple d'application. Pour connaître les étapes détaillées, voir [Création d'un exemple d'application](GettingStarted.md#GettingStarted.CreateApp) dans le chapitre *Mise* en route de ce guide.