Django-Apps, die in der flexiblen App Engine-Umgebung ausgeführt werden, werden dynamisch dem Traffic entsprechend skaliert.
In dieser Anleitung wird davon ausgegangen, dass Sie mit der Django-Webentwicklung vertraut sind. Wenn Sie mit der Django-Entwicklung noch nicht vertraut sind, sollten Sie zuerst Ihre erste Django-Anwendung schreiben.
In dieser Anleitung wird insbesondere Django beschrieben. Sie können diesen Bereitstellungsprozess auch mit anderen Django-basierten Frameworks wie Wagtail und Django CMS verwenden.
In dieser Anleitung wird Django 6 verwendet, das mindestens Python 3.12 erfordert. Wir empfehlen dringend, die aktuelle Version dieser Reihe zu verwenden. Die flexible App Engine-Umgebung unterstützt bis zu Python 3.14.
Ziele
In dieser Anleitung wird Folgendes beschrieben:
- Cloud SQL-Datenbank erstellen und verbinden
- Secret-Werte von Secret Manager erstellen und verwenden
Django-App in der flexiblen App Engine-Umgebung bereitstellen
Statische Dateien in Cloud Storage hosten
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud SQL Admin API, Secret Manager, and Cloud Build APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Installieren Sie die gcloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud SQL Admin API, Secret Manager, and Cloud Build APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Installieren Sie die gcloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init - Initialisieren Sie App Engine, falls noch nicht geschehen, und wählen Sie Ihre bevorzugte Region aus:
gcloud app create
Umgebung vorbereiten
Beispielanwendung klonen
Den Code für die Django-Beispielanwendung finden Sie im Repository GoogleCloudPlatform/python-docs-samples auf GitHub.
Sie können entweder das Beispiel als ZIP-Datei herunterladen und entpacken oder das Repository auf Ihren lokalen Computer klonen:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.gitGehen Sie zum Verzeichnis mit dem Beispielcode:
Linux/macOS
cd python-docs-samples/appengine/flexible/django_cloudsqlWindows
cd python-docs-samples\appengine\flexible\django_cloudsql
Python-Einrichtung bestätigen
Diese Anleitung setzt auf Python, um die Beispielanwendung auf Ihrem Computer auszuführen. Der Beispielcode erfordert auch die Installation von Abhängigkeiten.
Weitere Informationen finden Sie im Leitfaden zur Python-Entwicklungsumgebung.
Prüfen Sie, ob Python mindestens Version 3.14 hat.
python -VSie sollten
Python 3.14.0oder höher haben.Erstellen Sie eine virtuelle Python-Umgebung und installieren Sie Abhängigkeiten:
Linux/macOS
python -m venv venv source venv/bin/activate pip install --upgrade pip pip install -r requirements.txtWindows
python -m venv venv venv\scripts\activate pip install --upgrade pip pip install -r requirements.txt
Cloud SQL Auth-Proxy herunterladen, um von Ihrem lokalen Computer aus eine Verbindung zu Cloud SQL herzustellen
Nach der Bereitstellung verwendet die Anwendung den in die flexible App Engine-Umgebung integrierten Cloud SQL Auth-Proxy, um mit der Cloud SQL-Instanz zu kommunizieren. Sie müssen jedoch eine lokale Kopie des Cloud SQL Proxys in Ihrer Entwicklungsumgebung installieren und verwenden, um die Anwendung lokal zu testen. Weitere Informationen finden Sie im Leitfaden für den Cloud SQL Auth-Proxy.
Der Cloud SQL Auth-Proxy verwendet die Cloud SQL API, um mit Ihrer SQL-Instanz zu interagieren. Dazu ist eine Authentifizierung der Anwendung über die gcloud CLI erforderlich.
Authentifizieren und rufen Sie Anmeldedaten für die API ab:
gcloud auth application-default loginLaden Sie den Cloud SQL Auth-Proxy herunter und installieren Sie ihn auf Ihrem lokalen Computer.
Linux 64-Bit
- Laden Sie den Cloud SQL Auth-Proxy herunter:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.linux.amd64
- Machen Sie den Cloud SQL Auth-Proxy ausführbar:
chmod +x cloud-sql-proxy
Linux 32-Bit
- Laden Sie den Cloud SQL Auth-Proxy herunter:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.linux.386
- Wenn der Befehl
curlnicht gefunden wird, führen Siesudo apt install curlaus und wiederholen Sie den Downloadbefehl. - Machen Sie den Cloud SQL Auth-Proxy ausführbar:
chmod +x cloud-sql-proxy
macOS 64-Bit
- Laden Sie den Cloud SQL Auth-Proxy herunter:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.darwin.amd64
- Machen Sie den Cloud SQL Auth-Proxy ausführbar:
chmod +x cloud-sql-proxy
Mac M1
- Laden Sie den Cloud SQL Auth-Proxy herunter:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.darwin.arm64
- Machen Sie den Cloud SQL Auth-Proxy ausführbar:
chmod +x cloud-sql-proxy
Windows 64-Bit
Klicken Sie mit der rechten Maustaste auf https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.x64.exe und wählen Sie Link speichern unter aus, um den Cloud SQL Auth-Proxy herunterzuladen. Benennen Sie die Datei incloud-sql-proxy.exeum.Windows 32-Bit
Klicken Sie mit der rechten Maustaste auf https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.x86.exe und wählen Sie Link speichern unter aus, um den Cloud SQL Auth-Proxy herunterzuladen. Benennen Sie die Datei incloud-sql-proxy.exeum.Docker-Image des Cloud SQL Auth-Proxys
Der Cloud SQL Auth-Proxy hat verschiedene Container-Images, z. B.
distroless,alpineundbuster. Das standardmäßige Cloud SQL Auth-Proxy-Container-Image verwendetdistroless, das keine Shell enthält. Wenn Sie eine Shell oder verwandte Tools benötigen, laden Sie ein aufalpineoderbusterbasierendes Image herunter. Weitere Informationen finden Sie unter Container-Images von Cloud SQL Auth-Proxy.Sie können das neueste Image mithilfe von Docker mit dem folgenden Befehl auf Ihren lokalen Computer übertragen:
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.21.1
Andere Betriebssysteme
Für andere Betriebssysteme, die hier nicht aufgeführt sind, können Sie den Cloud SQL Auth-Proxy aus der Quelle kompilieren.Sie können den Download an einen gemeinsam genutzten Speicherort verschieben, z. B. in einen Speicherort in Ihrem
PATHoder in Ihr Basisverzeichnis. Wenn Sie das tun, müssen Sie beim Starten des Cloud SQL Auth-Proxys später in der Anleitung bei der Verwendung voncloud-sql-proxy-Befehlen auf den ausgewählten Speicherort verweisen.- Laden Sie den Cloud SQL Auth-Proxy herunter:
Sicherungsdienste erstellen
In dieser Anleitung werden verschiedene Google Cloud -Dienste verwendet, um die Datenbank, den Medienspeicher und den Secret-Speicher bereitzustellen, die das bereitgestellte Django-Projekt unterstützen. Diese Dienste werden in einer bestimmten Region bereitgestellt. Zur Steigerung der Effizienz zwischen den Diensten sollten alle Dienste in derselben Region bereitgestellt werden. Weitere Informationen zur nächstgelegenen Region finden Sie unter Produktverfügbarkeit nach Region.
Cloud SQL for PostgreSQL-Instanz einrichten
Django unterstützt offiziell mehrere relationale Datenbanken, bietet aber für PostgreSQL die beste Unterstützung. PostgreSQL wird von Cloud SQL unterstützt. In dieser Anleitung wird daher dieser Datenbanktyp verwendet.
Im folgenden Abschnitt wird das Erstellen einer PostgreSQL-Instanz, einer Datenbank und eines Datenbanknutzers für die Anwendung beschrieben.
Erstellen Sie die PostgreSQL-Instanz:
Console
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
Klicken Sie auf Instanz erstellen.
Klicken Sie auf PostgreSQL auswählen.
Wählen Sie unter SQL-Version die Option „Enterprise“ aus.
Wählen Sie unter Versionsvoreinstellung die Option „Sandbox“ aus.
Geben Sie im Feld Instanz-ID den Wert
INSTANCE_NAMEein.Geben Sie das Passwort für den Postgres-Nutzer ein.
Übernehmen Sie für die anderen Felder die Standardwerte.
Klicken Sie auf Instanz erstellen.
Es dauert einige Minuten, bis die Instanz einsatzbereit ist.
gcloud
Erstellen Sie die PostgreSQL-Instanz:
gcloud sql instances create INSTANCE_NAME \ --project PROJECT_ID \ --database-version POSTGRES_16 \ --tier db-n1-standard-2 \ --region REGION
Dabei gilt:
INSTANCE_NAME: der Name der Cloud SQL-InstanzPROJECT_ID: die Google Cloud Projekt-IDREGION: die Google Cloud -Region
Es dauert einige Minuten, bis die Instanz erstellt und einsatzbereit ist.
Erstellen Sie in der erstellten Instanz eine Datenbank:
Console
- Wechseln Sie auf der Instanzseite zum Tab Datenbanken.
- Klicken Sie auf Datenbank erstellen.
- Geben Sie im Dialogfeld Datenbankname
DATABASE_NAMEein. - Klicken Sie auf Erstellen.
gcloud
Erstellen Sie die Datenbank in der kürzlich erstellten Instanz:
gcloud sql databases create DATABASE_NAME \ --instance INSTANCE_NAMEErsetzen Sie
DATABASE_NAMEdurch einen Namen für die Datenbank in der Instanz.
Erstellen Sie einen Datenbanknutzer:
Console
- Wechseln Sie auf der Instanzseite zum Tab Nutzer.
- Klicken Sie auf Nutzerkonto hinzufügen.
- Im Dialogfeld Authentifizierungstyp auswählen unter „Integrierte Authentifizierung“:
- Geben Sie den Nutzernamen
DATABASE_USERNAMEein. - Geben Sie das Passwort
DATABASE_PASSWORDein. - Klicken Sie auf Add.
gcloud
Erstellen Sie den Nutzer in der kürzlich erstellten Instanz:
gcloud sql users create DATABASE_USERNAME \ --instance INSTANCE_NAME \ --password DATABASE_PASSWORDErsetzen Sie
PASSWORDdurch ein sicheres Passwort.
Cloud Storage-Bucket einrichten
Sie können die enthaltenen statischen Inhalte von Django sowie vom Nutzer hochgeladene Medien in Cloud Storage speichern.
Das Paket django-storages[google] verarbeitet die Interaktion von Django mit diesem Speicher-Backend.
Console
Rufen Sie in der Google Cloud -Console die Seite Cloud Storage auf.
Klicken Sie auf Bucket erstellen.
Geben Sie Folgendes ein (klicken Sie bei Bedarf auf „Weiter“):
- Geben Sie unter Name den Namen „PROJECT_ID_MEDIA_BUCKET“ ein.
- Wählen Sie bei Region die Option REGION aus.
- Behalten Sie für Speicherklasse die Standardeinstellungen bei.
- Entfernen Sie für Öffentlichen Zugriff verhindern das Häkchen bei „Verhinderung des öffentlichen Zugriffs erzwingen“.
- Wählen Sie für Zugriffssteuerung die Option „Detailgenau“ aus.
Übernehmen Sie für die anderen Felder die Standardwerte.
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie einen Cloud Storage-Bucket:
gcloud storage buckets create gs://PROJECT_ID_MEDIA_BUCKET --location=REGIONErsetzen Sie
MEDIA_BUCKETdurch ein Suffix für den media-Bucket. In Kombination mit der Projekt-ID wird dadurch ein eindeutiger Bucket-Name erstellt.
Secret-Werte im Secret Manager speichern
Nachdem die Sicherungsdienste nun konfiguriert sind, benötigt Django Informationen zu diesen Diensten. Anstatt diese Werte direkt in den Django-Quellcode einzufügen, verwendet diese Anleitung Secret Manager, um diese Informationen sicher zu speichern.
Django-Umgebungsdatei als Secret Manager-Secret erstellen
Sie speichern die Einstellungen, die zum Starten von Django erforderlich sind, in einer gesicherten Umgebung.
Die Beispielanwendung verwendet die Secret Manager API, um den Secret-Wert abzurufen, und das Paket django-environ, um die Werte in die Django-Umgebung zu laden. Das Secret ist für den Zugriff durch die flexible App Engine-Umgebung konfiguriert.
Erstellen Sie eine Datei mit dem Namen
.envund definieren Sie den Datenbank-Verbindungsstring, den Namen des Medien-Buckets sowie einen neuenSECRET_KEY-Wert: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) >> .envSpeichern Sie das Secret in Secret Manager:
Console
Rufen Sie in der Google Cloud Console die Seite „Secret Manager“ auf.
Klicken Sie auf Secret erstellen.
Geben Sie im Feld Name
django_settingsein.Fügen Sie im Dialogfeld Secret-Wert den Inhalt Ihrer
.env-Datei ein.Klicken Sie auf Secret erstellen.
Löschen Sie die lokale Datei, um lokale Einstellungsüberschreibungen zu verhindern.
gcloud
Erstellen Sie das neue Secret
django_settingsmit dem Wert der Datei.env:gcloud secrets create django_settings --data-file .envLöschen Sie die lokale Datei, um lokale Einstellungsüberschreibungen zu verhindern:
rm .env
Konfigurieren Sie den Zugriff auf das Secret:
Console
Klicken Sie auf den Tab Berechtigungen.
Klicken Sie auf Zugriff erlauben.
Geben Sie in das Feld Neue Mitglieder
PROJECT_ID@appspot.gserviceaccount.comein und drücken Sie dannEnter.Wählen Sie im Drop-down-Menü Rolle die Option Secret Manager Secret Accessor aus.
Klicken Sie auf Speichern.
gcloud
Gewähren Sie dem flexiblen App Engine-Dienstkonto Zugriff auf das Secret:
gcloud secrets add-iam-policy-binding django_settings \ --member serviceAccount:PROJECT_ID@appspot.gserviceaccount.com \ --role roles/secretmanager.secretAccessor
Achten Sie in der Ausgabe darauf, dass bindings das neue Dienstkonto auflistet.
App auf lokalem Computer ausführen
Nachdem die Sicherungsdienste konfiguriert wurden, können Sie die App jetzt auf Ihrem Computer ausführen. Diese Einrichtung ermöglicht die lokale Entwicklung, das Erstellen eines Superuser und das Anwenden von Datenbankmigrationen.
Starten Sie den Cloud SQL Auth-Proxy in einem separaten Terminal:
Linux/macOS
./cloud-sql-proxy PROJECT_ID:REGION:INSTANCE_NAMEWindows
cloud-sql-proxy.exe PROJECT_ID:REGION:INSTANCE_NAMEDadurch wird eine Verbindung vom lokalen Computer zur Cloud SQL-Instanz hergestellt, sodass lokale Tests durchgeführt werden können. Brechen Sie die Ausführung des Cloud SQL Auth-Proxys nicht ab, solange Sie die Anwendung noch lokal testen. Wenn Sie diesen Prozess in einem separaten Terminal ausführen, können Sie weiter arbeiten, während dieser Prozess ausgeführt wird.
Legen Sie im ursprünglichen Terminal die Projekt-ID lokal fest (von der Secret Manager API verwendet):
Linux/macOS
export GOOGLE_CLOUD_PROJECT=PROJECT_IDWindows
set GOOGLE_CLOUD_PROJECT=PROJECT_IDLegen Sie eine Umgebungsvariable fest, die angibt, dass Sie den Cloud SQL Auth-Proxy verwenden (dieser Wert wird im Code erkannt):
Linux/macOS
export USE_CLOUD_SQL_AUTH_PROXY=trueWindows
set USE_CLOUD_SQL_AUTH_PROXY=trueFühren Sie die Django-Migrationen aus, um die Modelle und Assets einzurichten:
python manage.py makemigrations python manage.py makemigrations polls python manage.py migrate python manage.py collectstaticStarten Sie den Django-Webserver:
python manage.py runserver 8080Rufen Sie in Ihrem Browser http://localhost:8080 auf.
Wenn Sie Cloud Shell verwenden, klicken Sie auf die Schaltfläche Webvorschau und wählen Sie Vorschau auf Port 8080 aus.
Auf der Seite wird der folgende Text angezeigt: "Hello, world. Sie befinden sich im Umfragenindex." Der auf Ihrem Computer ausgeführte Django-Webserver stellt die Beispiel-App-Seiten bereit.
Drücken Sie
Ctrl/Cmd+C, um den lokalen Webserver zu beenden.
Admin-Konsole von Django verwenden
Um sich in der Admin-Konsole von Django anzumelden, müssen Sie einen Superuser erstellen. Da Sie eine lokal zugängliche Verbindung zur Datenbank haben, können Sie Verwaltungsbefehle ausführen:
Erstellen Sie einen Superuser: Sie werden aufgefordert, einen Nutzernamen, eine E-Mail-Adresse und ein Passwort einzugeben.
python manage.py createsuperuserStarten Sie einen lokalen Webserver:
python manage.py runserverWechseln Sie in Ihrem Browser zu http://localhost:8000/admin.
Melden Sie sich mit dem Nutzernamen und dem Passwort an, die Sie beim Ausführen von
createsuperuserverwendet haben.
App in der flexiblen App Engine-Umgebung bereitstellen
Nachdem alle Sicherungsdienste eingerichtet wurden und die Anwendung lokal getestet wurde, können Sie die Anwendung jetzt für die flexible App Engine-Umgebung bereitstellen:
- Öffnen Sie
app.yamlund aktualisieren Sie den Wert voncloud_sql_instancesmit Ihrem Cloud SQL-Instanzstring:... beta_settings: cloud_sql_instances: PROJECT_ID:REGION:INSTANCE_NAME - Laden Sie die Anwendung hoch, indem Sie den folgenden Befehl ausführen, der die Anwendung wie unter
app.yamlbeschrieben bereitstellt und die neu bereitgestellte Version als Standardversion festlegt, sodass der gesamte neue Traffic verarbeitet wird:gcloud app deploy - Bestätigen Sie die Einstellungen, indem Sie „Ja” eingeben, wenn Sie dazu aufgefordert werden.
- Warten Sie auf die Nachricht, dass das Update abgeschlossen ist.
Bereitgestellte Anwendung ausführen
Die Anwendung wurde bereitgestellt und kann jetzt aufgerufen werden:
Öffnen Sie die bereitgestellte Website:
gcloud app browseAlternativ können Sie die URL anzeigen und manuell öffnen:
gcloud app describe --format "value(defaultHostname)"
Ihre Anfrage wird von einem Webserver verarbeitet, der in der flexiblen App Engine-Umgebung ausgeführt wird.
Anwendung aktualisieren
Zum Aktualisieren der Anwendung nehmen Sie die Änderungen am Code vor und führen dann den Befehl gcloud app deploy noch einmal aus.
Bei der Bereitstellung wird eine neue Version der App erstellt und zur Standardversion hochgestuft. Die älteren Versionen der Anwendung und die zugehörigen VM-Instanzen werden beibehalten. Alle diese Anwendungsversionen und VM-Instanzen sind kostenpflichtige Ressourcen. Löschen Sie zur Senkung der Kosten die nicht standardmäßigen Versionen Ihrer App.
Für die Produktion konfigurieren
Sie haben jetzt eine funktionierende Django-Bereitstellung, es können jedoch weitere Schritte ausgeführt werden, damit Ihre Anwendung produktionsbereit ist.
Debugging deaktivieren
Prüfen Sie, ob die Variable DEBUG in mysite/settings.py auf False festgelegt ist. Dadurch werden für Nutzer keine detaillierten Fehlerseiten angezeigt, die Informationen über die Konfigurationen auslesen können.
Berechtigungen für Datenbanknutzer einschränken
Alle Nutzer, die mit Cloud SQL erstellt wurden, haben die Berechtigungen, die der Rolle cloudsqlsuperuser zugeordnet sind: CREATEROLE, CREATEDB und LOGIN.
Erstellen Sie den Nutzer in PostgreSQL manuell, um diese Berechtigungen zu vermeiden. Das interaktive psql-Terminal muss installiert sein oder nutzen Sie Cloud Shell, wo das Tool vorinstalliert ist.
Console
-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Verwenden Sie in Cloud Shell den integrierten
INSTANCE_NAME-Client, um eine Verbindung zur Instanz herzustellen:gcloud sql connect INSTANCE_NAME --user postgresGeben Sie das Nutzerpasswort für Postgres ein.
Sie verwenden jetzt
psql. Diepostgres=>-Eingabeaufforderung sollte nun angezeigt werden.Erstellen Sie einen Nutzer:
CREATE USER DATABASE_USERNAME WITH PASSWORD 'DATABASE_PASSWORD';Ersetzen Sie
PASSWORDdurch ein zufälliges, eindeutiges Passwort.Gewähren Sie dem neuen Nutzer uneingeschränkte Rechte für die neue Datenbank:
GRANT ALL PRIVILEGES ON DATABASE DATABASE_NAME TO DATABASE_USERNAME;Beenden Sie
psql:\q
gcloud
Starten Sie eine Verbindung zur SQL-Instanz:
gcloud sql connect INSTANCE_NAME --user postgresErsetzen Sie
INSTANCE_NAMEdurch die erstellte Cloud SQL-Instanz.Geben Sie das Nutzerpasswort für Postgres ein.
Sie verwenden jetzt
psql. Diepostgres=>-Eingabeaufforderung sollte nun angezeigt werden.Erstellen Sie einen Nutzer:
CREATE USER DATABASE_USERNAME WITH PASSWORD 'DATABASE_PASSWORD';Gewähren Sie dem neuen Nutzer uneingeschränkte Rechte für die neue Datenbank:
GRANT ALL PRIVILEGES ON DATABASE DATABASE_NAME TO DATABASE_USERNAME;Beenden Sie
psql:\q
Den Code verstehen
Beispielanwendung
Die Django-Beispiel-App wurde mit den Django-Standardtools erstellt. Mit den folgenden Befehlen werden das Projekt und die Umfrage-App erstellt:
django-admin startproject mysite
python manage.py startapp polls
Die grundlegenden Ansichten, Modelle und Routenkonfigurationen werden aus Erste Django-Anwendung schreiben (Teil 1 und Teil 2) kopiert.
Secrets aus Secret Manager
Die Datei settings.py enthält Code, der die Secret Manager Python API verwendet, um die neueste Version des benannten Secrets abzurufen und sie mithilfe von django-environ in die Umgebung abzurufen:
Mit dem Secret wurden mehrere Secret-Werte gespeichert, um die Anzahl der verschiedenen Secrets zu reduzieren, die konfiguriert werden mussten.
Lokale Secret-Überschreibungen
Wenn im lokalen Dateisystem eine .env-Datei gefunden wird, wird sie anstelle des Werts aus Secret Manager verwendet. Eine lokale .env-Datei kann bei lokalen Tests hilfreich sein (z. B. bei der lokalen Entwicklung einer SQLite-Datenbank oder anderen lokalen Einstellungen).
Datenbankverbindung
Die Datei settings.py enthält die Konfiguration für Ihre SQL-Datenbank. Dazu wird der env.db()-Helfer aus django-environ verwendet, um den in DATABASE_URL festgelegten Verbindungsstring in die Einstellung DATABASES zu laden.
Wenn Sie die Anwendung lokal ausführen und über den Cloud SQL Auth-Proxy auf die gehostete Datenbank zugreifen, werden mit dem Flag USE_CLOUD_SQL_AUTH_PROXY die Datenbankeinstellungen so angepasst, dass der Proxy verwendet wird.
In der Cloud gespeicherte statische Dateien
Die Datei settings.py verwendet auch django-storages, um den Cloud Storage-Medien-Bucket direkt in das Projekt einzubinden:
App Engine app.yaml
Die Datei app.yaml enthält Konfigurationsinformationen für die Bereitstellung in der flexiblen Umgebung:
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Projekt löschen
- Wechseln Sie in der Google Cloud -Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.