Hinweis: In den nächsten Monaten wird die App Engine-Dokumentationswebsite neu organisiert, um das Auffinden von Inhalten und die bessere Abstimmung mit den anderen Google Cloud-Produkten zu erleichtern. Es werden dieselben Inhalte verfügbar sein, aber die Navigation wird nun den restlichen Cloud-Produkten entsprechen.

Cloud Firestore im Datastore-Modus verwenden

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Firestore ist eine NoSQL-Dokumentdatenbank, die auf Autoscaling, hohe Leistung und einfache Anwendungsentwicklung ausgelegt ist. Es ist die neueste Version von Datastore und bietet einige Verbesserungen.

Da Firestore im Datastore-Modus für Serveranwendungsfälle und für App Engine optimiert ist, empfehlen wir die Verwendung von Firestore im Datastore-Modus für Datenbanken, die hauptsächlich von App Engine-Anwendungen verwendet werden. Firestore im nativen Modus ist besonders nützlich für mobile und Echtzeit-Benachrichtigungs-Anwendungsfälle. Weitere Informationen zu Firestore-Modi finden Sie unter Zwischen nativem Modus und Datastore-Modus wechseln.

In diesem Dokument wird beschrieben, wie Sie mit der Google Cloud-Clientbibliothek Daten in einer Datenbank im Datastore-Modus speichern und abrufen können.

Voraussetzungen und Einrichtung

Folgen Sie der Anleitung unter "Hello, World!" für Ruby in App Engine, um eine Umgebung und ein Projekt einzurichten. Darin erfahren Sie auch mehr über die Strukturierung von Ruby-Anwendungen in App Engine. Notieren Sie sich Ihre Projekt-ID und bewahren Sie sie auf. Sie benötigen diese ID, um die in diesem Dokument beschriebene Beispielanwendung auszuführen.

Repository klonen

Laden Sie das Beispiel herunter bzw. klonen Sie es:

git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples
cd ruby-docs-samples/appengine/datastore

Projektkonfiguration bearbeiten und Abhängigkeiten festlegen

Fügen Sie in Gemfile die google-cloud-Bibliothek ein, die die Funktionen für den Datastore-Modus enthält.

source "https://rubygems.org"

gem "google-cloud-datastore"
gem "sinatra"

Anwendungscode

Mit der Beispielanwendung werden Besucher-IPs geloggt, abgerufen und angezeigt. Ein Logeintrag ist eine einfache Zweifeldklasse, die den visit-Typ erhält und mit dem Befehl save im Datastore-Modus gespeichert wird. Die zehn zuletzt erfolgten Besuche werden mit dem Datastore-Befehl run in absteigender Reihenfolge abgerufen.

require "digest/sha2"
require "sinatra"
require "google/cloud/datastore"

get "/" do
  datastore = Google::Cloud::Datastore.new

  # Save visit in Datastore
  visit = datastore.entity "Visit" do |v|
    v["user_ip"]   = Digest::SHA256.hexdigest request.ip
    v["timestamp"] = Time.now
  end
  datastore.save visit

  # Query the last 10 visits from the Datastore
  query     = datastore.query("Visit").order("timestamp", :desc).limit(10)
  visits    = datastore.run query

  response.write "Last 10 visits:\n"

  visits.each do |visit|
    response.write "Time: #{visit['timestamp']} Addr: #{visit['user_ip']}\n"
  end

  content_type "text/plain"
  status 200
end

index.yaml-Dateien verwenden

Mit der Beispielanwendung werden einfache Abfragen durchgeführt. Für komplexere Abfragen im Datastore-Modus sind ein oder mehrere Indexe erforderlich. Diese müssen Sie in der Datei index.yaml festlegen, die Sie zusammen mit der Anwendung hochladen. Diese Datei kann manuell erstellt oder automatisch generiert werden, wenn Sie Ihre Anwendung lokal testen.

Lokales Testen

Wenn Sie Ihre Anwendung lokal entwickeln und testen müssen, können Sie den Cloud Datastore-Emulator verwenden.

Weitere Informationen

Umfassende Informationen zum Datastore-Modus, einschließlich Optimierungen und Konzepte, finden Sie in der Dokumentation zu Firestore im Datastore-Modus.