Exécuter Django dans l'environnement flexible App Engine

Les applications Django qui s'exécutent dans l'environnement flexible App Engine évoluent de manière dynamique en fonction du trafic.

Dans ce tutoriel, nous partons du principe que vous connaissez bien le développement Web avec Django. Si vous débutez dans le développement avec Django, nous vous recommandons d'écrire votre première application Django avant de continuer.

Bien que ce tutoriel illustre spécifiquement Django, vous pouvez utiliser ce processus de déploiement avec d'autres frameworks basés sur Django, tels que Wagtail et le CMS Django.

Ce tutoriel utilise Django 3, qui nécessite au moins Python 3.7. L'environnement flexible App Engine est compatible avec Python 3.7.

Objectifs

Au cours de ce tutoriel, vous allez effectuer les opérations suivantes :

  • Créer et connecter une base de données Cloud SQL.
  • Créer et utiliser des valeurs secrètes dans Secret Manager.
  • Déployer une application Django dans l'environnement flexible App Engine.

  • Héberger des fichiers statiques sur Cloud Storage.

Coûts

Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Activer les API Cloud SQL Admin API, Secret Manager, and Cloud Build.

    Activer les API

  5. Installez Google Cloud CLI.
  6. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  7. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  8. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  9. Activer les API Cloud SQL Admin API, Secret Manager, and Cloud Build.

    Activer les API

  10. Installez Google Cloud CLI.
  11. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  12. Si vous ne l'avez pas déjà fait, initialisez App Engine et sélectionnez la région de votre choix :

    gcloud app create
    

Préparer votre environnement

Cloner une application exemple

Le code de l'exemple d'application Django se trouve dans le dépôt GitHub GoogleCloudPlatform/python-docs-samples.

  1. Vous pouvez soit télécharger l'exemple sous forme de fichier ZIP et l'extraire, soit cloner le dépôt sur votre ordinateur local à l'aide de la commande suivante :

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
    
  2. Accédez au répertoire qui contient l'exemple de code :

    Linux/macOS

    cd python-docs-samples/appengine/flexible/django_cloudsql
    

    Windows

    cd python-docs-samples\appengine\flexible\django_cloudsql
    

Confirmer la configuration de Python

Ce tutoriel s'appuie sur Python pour exécuter l'exemple d'application sur votre machine. L'exemple de code nécessite également l'installation de dépendances.

Pour en savoir plus, consultez le guide de l'environnement de développement Python.

  1. Assurez-vous que la version de Python est au moins la version 3.7.

     python -V
    

    Vous devriez voir Python 3.7.3 ou une valeur supérieure.

  2. Créez un environnement virtuel Python et installez des dépendances :

    Linux/macOS

    python -m venv venv
    source venv/bin/activate
    pip install --upgrade pip
    pip install -r requirements.txt
    

    Windows

    python -m venv env
    venv\scripts\activate
    pip install --upgrade pip
    pip install -r requirements.txt
    

Téléchargez le proxy d'authentification Cloud SQL pour vous connecter à Cloud SQL depuis votre ordinateur local.

Une fois déployée, votre application communique avec votre instance Cloud SQL via le proxy d'authentification Cloud SQL qui est intégré à l'environnement flexible App Engine. Notez toutefois que pour tester votre application en local, vous devez installer et utiliser une copie locale du proxy dans votre environnement de développement. Pour plus de détails, reportez-vous au guide sur les proxys d'authentification Cloud SQL.

Le proxy d'authentification Cloud SQL utilise l'API Cloud SQL pour interagir avec votre instance SQL. Pour ce faire, il nécessite l’authentification de l’application via gcloud.

  1. Authentifiez-vous et acquérez des identifiants pour l'API :

    gcloud auth application-default login
    
  2. Téléchargez et installez le proxy d'authentification Cloud SQL sur votre ordinateur local.

    Linux 64 bits

    1. Téléchargez le proxy d'authentification Cloud SQL :
      wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
      
    2. Rendez le proxy d'authentification Cloud SQL exécutable :
      chmod +x cloud_sql_proxy
      

    Linux 32 bits

    1. Téléchargez le proxy d'authentification Cloud SQL :
      wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.386 -O cloud_sql_proxy
      
    2. Si la commande wget est introuvable, exécutez sudo apt-get install wget puis répétez la commande de téléchargement.
    3. Rendez le proxy d'authentification Cloud SQL exécutable :
      chmod +x cloud_sql_proxy
      

    macOS 64 bits

    1. Téléchargez le proxy d'authentification Cloud SQL :
      curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64
      
    2. Rendez le proxy d'authentification Cloud SQL exécutable :
      chmod +x cloud_sql_proxy
      

    macOS 32 bits

    1. Téléchargez le proxy d'authentification Cloud SQL :
      curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.386
      
    2. Rendez le proxy d'authentification Cloud SQL exécutable :
      chmod +x cloud_sql_proxy
      

    Mac M1

    1. Téléchargez le proxy d'authentification Cloud SQL :
        curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.arm64
        
    2. Rendez le proxy d'authentification Cloud SQL exécutable :
        chmod +x cloud_sql_proxy
        

    Windows 64 bits

    Pour télécharger le proxy d'authentification Cloud SQL, effectuez un clic droit sur le lien https://dl.google.com/cloudsql/cloud_sql_proxy_x64.exe, puis sélectionnez Enregistrer le lien sous. Renommez le fichier en cloud_sql_proxy.exe.

    Windows 32 bits

    Pour télécharger le proxy d'authentification Cloud SQL, effectuez un clic droit sur le lien https://dl.google.com/cloudsql/cloud_sql_proxy_x86.exe, puis sélectionnez Enregistrer le lien sous. Renommez le fichier en cloud_sql_proxy.exe.

    Image Docker du proxy d'authentification Cloud SQL

    Pour plus de commodité, plusieurs images de conteneur contenant le proxy d'authentification Cloud SQL sont disponibles sur GitHub dans le dépôt du proxy d'authentification Cloud SQL. Vous pouvez extraire la dernière image sur votre ordinateur local en utilisant Docker avec la commande suivante :
    docker pull gcr.io/cloudsql-docker/gce-proxy:1.30.1
    

    Autres systèmes d'exploitation

    Pour les autres systèmes d'exploitation non inclus ici, vous pouvez compiler le proxy d'authentification Cloud SQL à partir de la source.

    Vous pouvez déplacer le téléchargement vers un emplacement courant, tel qu'un emplacement sur votre PATH ou dans votre répertoire d'accueil. Si vous choisissez cette solution, lorsque vous démarrerez le proxy d'authentification Cloud SQL plus tard dans le tutoriel, n'oubliez pas de faire référence à l'emplacement que vous avez choisi lors de l'utilisation des commandes cloud_sql_proxy.

Créer des services externes

Dans ce tutoriel, nous utilisons plusieurs services Google Cloud pour fournir la base de données, le stockage multimédia et le stockage de secrets compatibles avec le projet Django déployé. Ces services sont déployés dans une région spécifique. Pour plus d'efficacité entre les services, tous les services doivent être déployés dans la même région. Pour plus d'informations sur la région la plus proche de vous, consultez la section Produits disponibles par région.

Configurer une instance Cloud SQL pour PostgreSQL

Django est officiellement compatible avec plusieurs bases de données relationnelles, mais offre la plus grande compatibilité avec PostgreSQL. PostgreSQL est compatible avec Cloud SQL. Ce tutoriel choisit donc d'utiliser ce type de base de données.

La section suivante décrit la création d'une instance PostgreSQL, d'une base de données et d'un utilisateur de base de données pour l'application.

  1. Créez l'instance PostgreSQL :

    Console

    1. Dans Cloud Console, accédez à la page Instances Cloud SQL.

      Accéder à la page Instances Cloud SQL

    2. Cliquez sur Create Instance (Créer une instance).

    3. Cliquez sur PostgreSQL.

    4. Dans le champ ID d'instance, saisissez INSTANCE_NAME.

    5. Indiquez le mot de passe de l'utilisateur postgres.

    6. Conservez les valeurs par défaut des autres champs.

    7. Cliquez sur Create (Créer).

    La création de l'instance et la préparation à son utilisation prennent quelques minutes.

    gcloud

    • Créez l'instance PostgreSQL :

      gcloud sql instances create INSTANCE_NAME \
          --project PROJECT_ID \
          --database-version POSTGRES_13 \
          --tier db-f1-micro \
          --region REGION
      

    Remplacez les éléments suivants :

    • INSTANCE_NAME : nom de l'instance Cloud SQL
    • PROJECT_ID : ID de projet Google Cloud
    • REGION : région Google Cloud

    La création de l'instance et la préparation à son utilisation prennent quelques minutes.

  2. Dans l'instance créée, créez une base de données :

    Console

    1. Sur la page de votre instance, accédez à l'onglet Bases de données.
    2. Cliquez sur Create database.
    3. Dans la boîte de dialogue Nom de la base de données, saisissez DATABASE_NAME.
    4. Cliquez sur Create (Créer).

    gcloud

    • Créez la base de données dans l'instance récemment créée :

      gcloud sql databases create DATABASE_NAME \
          --instance INSTANCE_NAME
      

      Remplacez DATABASE_NAME par le nom de la base de données dans l'instance.

  3. Créez un utilisateur de base de données :

    Console

    1. Dans la page de votre instance, accédez à l'onglet Utilisateurs.
    2. Cliquez sur Ajouter un compte utilisateur.
    3. Dans la boîte de dialogue Ajouter un compte utilisateur à l'instance, sous "Authentification intégrée", effectuez les opérations suivantes :
    4. Saisissez le nom d'utilisateur DATABASE_USERNAME.
    5. Saisissez le mot de passe DATABASE_PASSWORD.
    6. Cliquez sur Ajouter.

    gcloud

    • Créez l'utilisateur dans l'instance récemment créée :

      gcloud sql users create DATABASE_USERNAME \
          --instance INSTANCE_NAME \
          --password DATABASE_PASSWORD
      

      Remplacez PASSWORD par un mot de passe sécurisé.

Configurer un bucket Cloud Storage

Vous pouvez stocker les éléments statiques inclus dans Django, ainsi que les contenus multimédias importés par les utilisateurs, dans un espace de stockage des objets à disponibilité élevée à l'aide de Cloud Storage. Le package django-storages[google] gère les interactions de Django avec ce backend de stockage.

Console

  1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

    Accéder à la page "Buckets"

  2. Cliquez sur Créer un bucket.
  3. Sur la page Créer un bucket, saisissez les informations concernant votre bucket. Pour passer à l'étape suivante, cliquez sur Continuer.
    • Pour nommer votre bucket, saisissez un nom qui répond aux exigences de dénomination des buckets.
    • Pour Emplacement, sélectionnez l'option suivante : MEDIA_BUCKET
    • Pour Choisir une classe de stockage par défaut pour vos données, sélectionnez l'option suivante : Standard
    • Pour le champ Choisir comment contrôler l'accès aux objets, sélectionnez une option de Contrôle des accès.
    • Sous Paramètres avancés (facultatif), choisissez une méthode de chiffrement, une règle de conservation ou des libellés de bucket.
  4. Cliquez sur Create (Créer).

gcloud

L'outil de ligne de commande gsutil a été installé lors de l'installation de la CLI gcloud.

  • Créez un bucket Cloud Storage :

    gsutil mb -l REGION gs://PROJECT_ID_MEDIA_BUCKET
    

    Remplacez MEDIA_BUCKET par un suffixe pour le bucket multimédia. Combiné à l'ID du projet, il crée un nom de bucket unique.

Stocker les valeurs du secret dans Secret Manager

Maintenant que les services externes sont configurés, Django a besoin d'informations sur ces services. Au lieu de placer ces valeurs directement dans le code source de Django, ce tutoriel utilise Secret Manager pour stocker ces informations en toute sécurité.

L'environnement flexible App Engine interagit avec les secrets à l'aide de son compte de service.

Créer un fichier d'environnement Django en tant que secret Secret Manager

Vous stockez les paramètres requis pour démarrer Django dans un fichier d'environnement sécurisé. L'exemple d'application utilise l'API Secret Manager pour récupérer la valeur du secret, et le package django-environ pour charger les valeurs dans l'environnement Django. Le secret est configuré pour être accessible par l'environnement flexible App Engine.

  1. Créez un fichier appelé .env, en définissant la chaîne de connexion à la base de données, le nom du bucket multimédia et une nouvelle valeur SECRET_KEY :

    echo DATABASE_URL=postgres://DATABASE_USERNAME:DATABASE_PASSWORD@//cloudsql/PROJECT_ID:REGION:INSTANCE_NAME/DATABASE_NAME > .env
    echo GS_BUCKET_NAME=PROJECT_ID_MEDIA_BUCKET >> .env
    echo SECRET_KEY=$(cat /dev/urandom | LC_ALL=C tr -dc '[:alpha:]'| fold -w 50 | head -n1) >> .env
    
  2. Stockez le secret dans le gestionnaire de secrets :

    Console

    1. Dans Cloud Console, accédez à la page Secret Manager.

      Accéder à la page Secret Manager

    2. Cliquez sur Créer un secret.

    3. Dans le champ Nom, saisissez django_settings.

    4. Dans la boîte de dialogue Valeur du secret, collez le contenu de votre fichier .env.

    5. Cliquez sur Créer un secret.

    6. Supprimez le fichier local pour empêcher tout remplacement des paramètres locaux.

    gcloud

    1. Créez le secret django_settings avec la valeur du fichier .env :

      gcloud secrets create django_settings --data-file .env
      
    2. Pour confirmer la création du secret, vérifiez-le :

      gcloud secrets describe django_settings
      
      gcloud secrets versions access latest --secret django_settings
      
    3. Supprimez le fichier local pour empêcher tout remplacement des paramètres locaux :

      rm .env
      
  3. Configurez l'accès au secret :

    Console

    1. Cliquez sur l'onglet Autorisations.
    2. Cliquez sur Ajouter.
    3. Dans le champ Nouveaux membres, saisissez PROJECT_ID@appspot.gserviceaccount.com, puis appuyez sur Enter.
    4. Dans le menu déroulant Rôle, sélectionnez Accesseur de secrets de Secret Manager.
    5. Cliquez sur Enregistrer.

    gcloud

    1. Accordez l'accès au secret au compte de service flexible App Engine :

      gcloud secrets add-iam-policy-binding django_settings \
          --member serviceAccount:PROJECT_ID@appspot.gserviceaccount.com \
          --role roles/secretmanager.secretAccessor
      

Exécuter l'application sur votre ordinateur local

Maintenant que les services externes sont configurés, vous pouvez exécuter l'application sur votre ordinateur. Cette configuration permet le développement local, la création d'un super-utilisateur et l'application de migrations de bases de données.

  1. Dans un terminal distinct, démarrez le proxy d'authentification Cloud SQL :

    Linux/macOS

    ./cloud_sql_proxy -instances="PROJECT_ID:REGION:INSTANCE_NAME"=tcp:5432
    

    Windows

    cloud_sql_proxy.exe -instances="PROJECT_ID:REGION:INSTANCE_NAME"=tcp:5432
    

    Cette étape permet d'établir une connexion depuis votre ordinateur local vers votre instance Cloud SQL à des fins de test. N'arrêtez pas le proxy d'authentification Cloud SQL lors du test local de votre application. L'exécution de ce processus dans un terminal distinct vous permet de continuer à travailler pendant son exécution.

  2. Dans un nouveau terminal, définissez l'ID de projet localement (utilisé par l'API Secret Manager) :

    Linux/macOS

      export GOOGLE_CLOUD_PROJECT=PROJECT_ID
    

    Windows

      set GOOGLE_CLOUD_PROJECT=PROJECT_ID
    
  3. Définissez une variable d'environnement pour indiquer que vous utilisez le proxy d'authentification Cloud SQL (cette valeur est reconnue dans le code) :

    Linux/macOS

      export USE_CLOUD_SQL_AUTH_PROXY=true
    

    Windows

      set USE_CLOUD_SQL_AUTH_PROXY=true
    
  4. Exécutez les migrations Django pour configurer vos modèles et vos éléments :

    python manage.py makemigrations
    python manage.py makemigrations polls
    python manage.py migrate
    python manage.py collectstatic
    
  5. Démarrez le serveur Web Django :

    python manage.py runserver
    
  6. Dans votre navigateur, accédez à http://localhost:8000.

    La page affiche le texte suivant : "Hello, world. You're at the polls index." Le serveur Web Django qui s'exécute sur votre ordinateur diffuse les pages de l'exemple d'application.

  7. Appuyez sur Ctrl/Cmd+C pour arrêter le serveur Web local.

Utiliser la console d'administration Django

Pour vous connecter à la console d'administration de Django, vous devez créer un super-utilisateur. Comme vous disposez d'une connexion locale à la base de données, vous pouvez exécuter les commandes de gestion :

  1. Créez un super-utilisateur. Vous êtes invité à saisir un nom d'utilisateur, une adresse e-mail et un mot de passe.

    python manage.py createsuperuser
    
  2. Démarrez un serveur Web local :

    python manage.py runserver
    
  3. Dans votre navigateur, accédez à http://localhost:8000/admin.

  4. Connectez-vous au site d'administration à l'aide du nom d'utilisateur et du mot de passe que vous avez spécifiés dans la commande createsuperuser.

Déployer l'application dans l'environnement flexible App Engine

Avec tous les services externes configurés et l'application testée localement, vous pouvez maintenant déployer l'application sur l'environnement flexible App Engine :

  1. Ouvrez app.yaml et mettez à jour la valeur de cloud_sql_instances avec votre chaîne d'instance Cloud SQL :
    ...
    beta_settings:
        cloud_sql_instances: PROJECT_ID:REGION:INSTANCE_NAME
    
  2. Importez l'application en exécutant la commande suivante, qui déploie l'application conformément aux instructions du fichier app.yaml, et définit la version nouvellement déployée comme version par défaut, de sorte que celle-ci diffuse tout le nouveau trafic :
    gcloud app deploy
  3. Confirmez les paramètres en saisissant "yes" lorsque vous y êtes invité.
  4. Attendez le message vous informant que la mise à jour est terminée.

Exécuter l'application déployée

L'application a été déployée, et elle est désormais accessible :

  • Ouvrez le site Web déployé :

    gcloud app browse
    
  • Vous pouvez également afficher l'URL et l'ouvrir manuellement :

    gcloud app describe --format "value(defaultHostname)"
    

La requête est diffusée par un serveur Web s'exécutant dans l'environnement flexible App Engine.

Mettre à jour l'application

Pour mettre à jour votre application, modifiez le code, puis exécutez à nouveau la commande gcloud app deploy.

Le déploiement crée une nouvelle version de votre application, qui est alors définie comme version par défaut. Les anciennes versions de votre application sont conservées, tout comme les instances de machine virtuelle (VM) associées. Toutes ces versions d'applications et instances de VM sont des ressources facturables. Pour réduire les coûts, supprimez toutes les versions de votre application sauf celle par défaut.

Configurer pour la production

Votre déploiement Django est opérationnel, mais vous pouvez suivre d'autres étapes pour vous assurer que votre application est prête pour la production.

Désactiver le débogage

Vérifiez que la variable DEBUG dans mysite/settings.py est définie sur False. Cela empêche l'affichage pour l'utilisateur de pages d'erreur détaillées, ce qui peut conduire à des fuites des informations sur les configurations.

Limiter les droits d'utilisateur de la base de données

Tous les utilisateurs créés à l'aide de Cloud SQL disposent des droits associés au rôle cloudsqlsuperuser : CREATEROLE, CREATEDB et LOGIN.

Pour empêcher l'utilisateur de la base de données Django de disposer de ces autorisations, créez-le manuellement dans PostgreSQL. Vous devrez avoir installé le terminal interactif psql ou utiliser Cloud Shell, dans lequel cet outil est préinstallé.

Console

  1. Dans la console Google Cloud, activez Cloud Shell.

    Activer Cloud Shell

  2. Dans Cloud Shell, utilisez le terminal intégré pour vous connecter à votre instance INSTANCE_NAME :

    gcloud sql connect INSTANCE_NAME --user postgres
    
  3. Saisissez le mot de passe utilisateur Postgres.

    Vous utilisez désormais psql. L'invite postgres=> doit s'afficher.

  4. Créez un compte utilisateur :

    CREATE USER DATABASE_USERNAME WITH PASSWORD 'DATABASE_PASSWORD';
    

    Remplacez PASSWORD par un mot de passe unique et aléatoire.

  5. Accordez tous les droits sur la nouvelle base de données au nouvel utilisateur :

    GRANT ALL PRIVILEGES ON DATABASE DATABASE_NAME TO DATABASE_USERNAME;
    
  6. Quittez psql :

    \q
    

gcloud

  1. Démarrez une connexion à l'instance SQL :

    gcloud sql connect INSTANCE_NAME --user postgres
    

    Remplacez INSTANCE_NAME par l'instance Cloud SQL créée.

  2. Saisissez le mot de passe utilisateur Postgres.

    Vous utilisez désormais psql. L'invite postgres=> doit s'afficher.

  3. Créez un compte utilisateur :

    CREATE USER DATABASE_USERNAME WITH PASSWORD 'DATABASE_PASSWORD';
    
  4. Accordez tous les droits sur la nouvelle base de données au nouvel utilisateur :

    GRANT ALL PRIVILEGES ON DATABASE DATABASE_NAME TO DATABASE_USERNAME;
    
  5. Quittez psql :

    \q
    

Comprendre le code

Exemple d'application

L'exemple d'application Django a été créé à l'aide des outils Django standards. Les commandes suivantes créent le projet et l'application polls :

django-admin startproject mysite
python manage.py startapp polls

Les vues de base, les modèles et les configurations de routage ont été copiés à partir du tutoriel Écrire votre première application Django (Partie 1 et Partie 2).

Secrets de Secret Manager

Le fichier settings.py contient du code qui utilise l'API Python Secret Manager pour récupérer la dernière version du secret nommé et l'extraire dans l'environnement (à l'aide de django-environ) :

env = environ.Env(DEBUG=(bool, False))
env_file = os.path.join(BASE_DIR, ".env")

if os.path.isfile(env_file):
    # Use a local secret file, if provided

    env.read_env(env_file)
# ...
elif os.environ.get("GOOGLE_CLOUD_PROJECT", None):
    # Pull secrets from Secret Manager
    project_id = os.environ.get("GOOGLE_CLOUD_PROJECT")

    client = secretmanager.SecretManagerServiceClient()
    settings_name = os.environ.get("SETTINGS_NAME", "django_settings")
    name = f"projects/{project_id}/secrets/{settings_name}/versions/latest"
    payload = client.access_secret_version(name=name).payload.data.decode("UTF-8")

    env.read_env(io.StringIO(payload))
else:
    raise Exception("No local .env or GOOGLE_CLOUD_PROJECT detected. No secrets found.")

Le secret est utilisé pour stocker plusieurs valeurs secrètes afin de réduire le nombre de secrets différents à configurer.

Remplacement des secrets locaux

Si un fichier .env se trouve sur le système de fichiers local, il est utilisé à la place de la valeur de Secret Manager. La création d'un fichier .env localement peut être utile pour les tests locaux (par exemple, développement local avec une base de données SQLite ou d'autres paramètres locaux).

Connexion à une base de données

Le fichier settings.py contient la configuration de la base de données SQL. Si vous définissez USE_CLOUD_SQL_AUTH_PROXY, le paramètre DATABASES est modifié pour déduire l'utilisation du proxy d'authentification Cloud SQL.

# Use django-environ to parse the connection string
DATABASES = {"default": env.db()}

# If the flag as been set, configure to use proxy
if os.getenv("USE_CLOUD_SQL_AUTH_PROXY", None):
    DATABASES["default"]["HOST"] = "127.0.0.1"
    DATABASES["default"]["PORT"] = 5432

Contenu statique stocké dans le cloud

Le fichier settings.py utilise également django-storages pour intégrer le bucket multimédia Cloud Storage directement au projet :

# Define static storage via django-storages[google]
GS_BUCKET_NAME = env("GS_BUCKET_NAME")
STATIC_URL = "/static/"
DEFAULT_FILE_STORAGE = "storages.backends.gcloud.GoogleCloudStorage"
STATICFILES_STORAGE = "storages.backends.gcloud.GoogleCloudStorage"
GS_DEFAULT_ACL = "publicRead"

app.yaml App Engine

Le fichier app.yaml contient les informations de configuration concernant le déploiement dans l'environnement flexible :

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT mysite.wsgi

beta_settings:
    cloud_sql_instances: PROJECT_ID:REGION:INSTANCE_NAME

runtime_config:
  python_version: 3

Effectuer un nettoyage

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.

Supprimer le projet

  1. Dans la console Google Cloud, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Étapes suivantes