Bereitstellung und Verbindung einer Cloud Databases-Instanz
Ziele
Dieses Tutorial führt Sie durch den Prozess der Bereitstellung einer Cloud Databases und deren Verbindung mit einem Web-Frontend, indem Sie eine Webseite erstellen, die es Besuchern ermöglicht, ein Wort und dessen Definition einzugeben. Diese Werte werden dann in einer Datenbank gespeichert, die auf Cloud Databases läuft. Sie installieren die Datenbankinfrastruktur mithilfe von Terraform und Ihre Webanwendung verwendet das beliebte Express-Framework. Die Anwendung kann dann lokal oder mit Hilfe von Docker ausgeführt werden.
Produktiv werden
Installieren Sie zunächst einige unverzichtbare Produktivitätswerkzeuge, um mit der Bereitstellung zu beginnen:
- Sie benötigen eine E-Mail-Adresse: IBM Cloud Konto.
- Node.js und npm- zur Installation von Paketen aus öffentlichen npm-Registries
- Terraform- zur Kodifizierung und Bereitstellung der Infrastruktur
- Optionales Docker- um Ihre Anwendung nicht lokal auszuführen
Beantragen Sie einen API-Schlüssel, um Infrastruktur in Ihrem Konto bereitzustellen
Folgen Sie diesen Schritten, um einen IBM Cloud API-Schlüssel zu erstellen, der es Terraform ermöglicht, die Infrastruktur in Ihrem Konto bereitzustellen. Sie können bis zu 20 API-Schlüssel erstellen.
Aus Sicherheitsgründen kann der API-Schlüssel nur zum Zeitpunkt seiner Erstellung kopiert oder heruntergeladen werden. Wenn der API-Schlüssel verloren geht, müssen Sie einen neuen API-Schlüssel erzeugen.
Das Projekt klonen
Klonen Sie das Projekt aus dem Cloud Databases Hello World-Projekt GitHub.
git clone https://github.com/IBM-Cloud/clouddatabases-helloworld-examples.git
Infrastruktur installieren
In diesem Schritt stellen Sie eine Instanz des zu verwendenden Datenbankdienstes bereit. Das GitHub enthält Ordner für verschiedene Cloud Databases Ressourcen.
-
Navigieren Sie vom Hauptordner des GitHub in den
terraformIhrer Wahl, zum Beispielmysql/terraform. -
Erstellen Sie auf Ihrem Rechner ein Dokument mit dem Namen
terraform.tfvarsund den folgenden Feldern:ibmcloud_api_key = "<YOUR_API_KEY_FROM_STEP_1>" region = "<YOUR_REGION>" admin_password = "<CREATE_15_CHARACTER_PASSWORD>"Das Dokument „
terraform.tfvars“ enthält Variablen, die Sie möglicherweise geheim halten möchten, weshalb es vom Repository „ GitHub “ ignoriert wird. -
Installieren Sie die Infrastruktur mit dem folgenden Befehl:
terraform init terraform apply --auto-approveDas Terraform-Skript gibt Konfigurationsdaten aus, die für die Ausführung der Anwendung benötigt werden, also kopieren Sie es in den Stammordner:
terraform output -json >../config.json
Führen Sie Ihre App lokal aus
-
Um sich von Ihrem lokalen Rechner aus mit der Datenbank zu verbinden, vergewissern Sie sich, dass Sie sich in Ihrem Dienstordner befinden, installieren Sie dann die Knotenabhängigkeiten und führen Sie den Dienst mit den folgenden Befehlen aus:
npm installnpm run startBei Erfolg zeigt die Ausgabe, dass Sie verbunden sind:
#Connected! #Server is listening on port 8080 -
Öffnen Sie einen Browser und besuchen Sie http://localhost:8080 Sie werden von einer Willkommensseite mit einem Datenbanklogo begrüßt, das in Ihrem Browserfenster angezeigt wird.
-
Um die Schnittstelle zu testen, geben Sie ein Wort und seine Definition ein. Das Datenpaar wird der Datenbank hinzugefügt und erscheint in einer Liste unten auf der Seite.
Führen Sie die App von einem Docker-Container aus (optional)
Der erste Schritt zum Hosting Ihrer Anwendung über einen Dienst wie Code Engine besteht darin, den Anwendungscode in einem Docker zu containerisieren und von dort aus auszuführen.
-
Stellen Sie sicher, dass Sie bei Ihrem Docker angemeldet sind. Geben Sie im Dienstordner der gewählten Datenbank den folgenden Befehl ein:
docker build -t database-hello-world:1.0 . docker run -p 8080:8080 database-hello-world:1.0 -
Öffnen Sie einen Browser und besuchen Sie http://localhost:8080, um die gleiche Willkommensseite wie in Schritt 4 zu sehen.
Herzlichen Glückwunsch, Sie haben eine Anwendung mit einem Frontend erstellt, das Daten in Ihre Cloud Databases Bereitstellung einspeist!