Rails 5 in der flexiblen App Engine-Umgebung ausführen

Erste Schritte mit der Entwicklung von Ruby on Rails-Anwendungen, die in der flexiblen App Engine-Umgebung ausgeführt werden Die von Ihnen erstellten Anwendungen werden auf derselben Infrastruktur ausgeführt, auf der alle Google-Produkte basieren. So können Sie sicher sein, dass sie für alle Nutzer skaliert werden können, unabhängig davon, ob es sich um wenige oder Millionen von ihnen handelt.

In dieser Anleitung wird davon ausgegangen, dass Sie mit der Rails-Webentwicklung vertraut sind. Es wird darin gezeigt, wie Sie eine neue Rails-Anwendung erstellen.

Für diese Anleitung ist Ruby 2.6 oder 2.7 erforderlich.

Hinweis

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Install the Google Cloud CLI.
  7. To initialize the gcloud CLI, run the following command:

    gcloud init

Lokale Umgebung für Rails einrichten

So richten Sie Ihre lokale Umgebung für die Rails-Entwicklung ein:

  1. Installieren Sie Ruby 2.6 oder 2.7.

  2. Installieren Sie das Gem Rails 5.

  3. Installieren Sie das Gem Bundler.

Alternativ können Sie Cloud Shell verwenden. Dort sind Ruby, Schienen und die Google Cloud CLI bereits installiert.

Weitere Informationen zur Installation von Rails und dessen Abhängigkeiten finden Sie im offiziellen Leitfaden Erste Schritte mit Rails.

Nachdem Sie die Voraussetzungen erfüllt haben, können Sie eine Rails-Anwendung erstellen und bereitstellen. In den folgenden Abschnitten erfahren Sie, wie Sie eine Anwendung konfigurieren, ausführen und bereitstellen.

Neue App erstellen

  1. Erstellen Sie eine neue Rails-Beispiel-App.

    rails new appengine_example
    
  2. Gehen Sie zum Verzeichnis mit dem Beispielcode.

    cd appengine_example
    

Anwendung lokal ausführen

So führen Sie die neue Rails-Anwendung lokal auf Ihrem Computer aus:

  1. Installieren Sie die Abhängigkeiten mit Bundler:

     bundle install
    
  2. Starten Sie einen lokalen Webserver:

     bundle exec rails server
    
  3. Rufen Sie in einem Browser http://localhost:3000/ auf.

Die Meldung Yay! Sie sind auf Rails!"der Beispiel-Anwendung, die auf der Seite angezeigt wird.

Screenshot of new Rails app running

Einfache Seite hinzufügen

Sie fügen der erzeugten Rails-Anwendung nun eine Begrüßungsseite hinzu.

  1. Erstellen Sie zum Generieren des Gerüsts für eine neue Seite einen neuen Rails-Controller mit dem Namen WelcomeController und der Aktion index.

    bundle exec rails generate controller Welcome index
    
  2. Öffnen Sie die Datei app/views/welcome/index.html.erb, um den folgenden Standard-HTML-Code zu sehen.

    <h1>Welcome#index</h1>
    <p>Find me in app/views/welcome/index.html.erb</p>
  3. Ändern Sie die Datei nach Belieben ab. Sie können zum Beispiel folgenden Inhalt verwenden:

    <h1>Welcome</h1>
    <p>This is a home page for a new Rails App on Google Cloud Platform!</p>
  4. Legen Sie die Controller-Aktion index als Stammaktion für Rails fest. Wenn ein Nutzer dann die Rails-Anwendung aufruft, wird die Begrüßungsseite angezeigt.

  5. Öffnen Sie die Datei config/routes.rb, um die folgenden generierten Inhalte zu sehen.

    Rails.application.routes.draw do
      get 'welcome/index'
    
      # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
    end
  6. Fügen Sie root 'welcome#index' hinzu, um diese Datei zu ändern.

    Rails.application.routes.draw do
      get 'welcome/index'
    
      # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
      root 'welcome#index'
    end
  7. Speichern Sie die Datei und schließen Sie sie. Testen Sie die Rails-Anwendung wie zuvor.

Anwendung in der flexiblen App Engine-Umgebung bereitstellen

Die flexible App Engine-Umgebung verwendet eine Datei mit dem Namen app.yaml. zur Konfiguration der Erstellung einer Anwendung. Wenn diese Datei nicht vorhanden ist, versucht die gcloud-Befehlszeile, die Bereitstellungskonfiguration zu erraten. Es ist aber besser, die Datei zur Verfügung zu stellen, da von Rails in einer Produktionsumgebung ein geheimer Schlüssel benötigt wird.

Erstellen Sie eine neue Datei mit dem Namen app.yaml im Stammverzeichnis der Beispielanwendung und fügen Sie die nachstehenden Informationen hinzu, um die Beispielanwendung für die Bereitstellung in App Engine zu konfigurieren:

entrypoint: bundle exec rackup --port $PORT
env: flex
runtime: ruby

Geheimen Schlüssel für Rails konfigurieren

Wenn Sie eine Rails-Anwendung in der Produktionsumgebung bereitstellen, legen Sie die Umgebungsvariable SECRET_KEY_BASE auf einen geheimen Schlüssel fest. Mit diesem werden die Sitzungsdaten von Nutzern geschützt. Diese Umgebungsvariable wird in der Datei config/secrets.yml gelesen.

  1. Erzeugen Sie einen neuen geheimen Schlüssel.

    bundle exec rails secret
    
  2. Kopieren Sie den generierten geheimen Schlüssel. Der geheime Schlüssel wird im nächsten Schritt benötigt.

  3. Öffnen Sie die zuvor erstellte Datei app.yaml und fügen Sie den Abschnitt env_variables hinzu. env_variables legt Umgebungsvariablen in der production - Umgebung in der flexiblen App Engine-Umgebung fest. Ihr app.yaml sollte wie im folgenden Beispiel aussehen, wobei [SECRET_KEY] durch Ihren kopierten geheimen Schlüssel ersetzt wird.

    entrypoint: bundle exec rackup --port $PORT
    env: flex
    runtime: ruby
    
    env_variables:
      SECRET_KEY_BASE: [SECRET_KEY]

App in einer flexiblen App Engine-Umgebung einrichten

Wenn Sie zum ersten Mal eine Anwendung bereitstellen, müssen Sie eine Anwendung in der flexiblen App Engine-Umgebung erstellen, um die Region auszuwählen, in der die Rails-Anwendung ausgeführt werden soll. Weitere Informationen zu Regionen und Zonen

  1. Erstellen Sie eine App Engine-Anwendung. Mit dem folgenden Befehl werden standardmäßig zwei Instanzen erstellt:

    gcloud app create
    
  2. Wählen Sie eine Region aus, die die flexible App Engine-Umgebung für Ruby-Anwendungen unterstützt.

In flexibler App Engine-Umgebung bereitstellen

Stellen Sie die Beispiel-App bereit, indem Sie den folgenden Befehl ausführen:

gcloud app deploy

Warten Sie auf die Nachricht, dass das Update abgeschlossen ist. Dieser Vorgang kann einige Minuten dauern.

Auf die bereitgestellte Rails-App zugreifen

  1. Führen Sie gcloud info aus, um Ihre Projekt-ID abzurufen.

  2. Geben Sie im Webbrowser die folgende URL ein:

    https://PROJECT_ID.REGION_ID.r.appspot.com

    Ersetzen Sie Folgendes:

Der folgende Inhalt wird angezeigt.

Screenshot of new Rails app running

Dieses Mal wird Ihre Anfrage von der Rails-Anwendung in der flexiblen App Engine-Umgebung bearbeitet.

Mit diesem Befehl wird die Anwendung wie unter app.yaml beschrieben bereitgestellt und die neu bereitgestellte Version als Standardversion festgelegt. Dadurch wird der gesamte neue Traffic verarbeitet. Bei Bereitstellung der Anwendung werden Ihnen u. U. mehrere wiederholte Nachrichten angezeigt, während die Plattform prüft, ob die Anwendung arbeitet. Dies ist normal. Warten Sie auf die Nachricht, dass das Update der Anwendung abgeschlossen ist.

Wenn Sie die App aktualisieren, können Sie die aktualisierte Version mit demselben Befehl bereitstellen, den Sie bei der ersten Bereitstellung der App verwendet haben. Bei der neuen Bereitstellung wird eine neue Version der Anwendung erstellt und zur Standardversion hochgestuft. Die älteren Versionen der Anwendung und die zugehörigen VM-Instanzen werden beibehalten. Beachten Sie, dass alle diese Anwendungsversionen und VM-Instanzen kostenpflichtige Ressourcen sind.

App Engine-Logs lesen

Wenn Sie nach der Erstellung der Rails-Anwendung die Logs aufrufen möchten, Sie können die Anwendungslogs mit dem Log-Explorer in der Google Cloud Console oder mit gcloud app logs read lesen. Weitere Informationen finden Sie unter Logs über die gcloud CLI lesen.

Ressourcen bereinigen

Nachdem Sie die Anleitung abgeschlossen haben, können Sie die erstellten Ressourcen bereinigen, damit sie keine Kontingente mehr nutzen und keine Gebühren mehr anfallen. In den folgenden Abschnitten erfahren Sie, wie Sie diese Ressourcen löschen oder deaktivieren.

Projekt löschen

Am einfachsten vermeiden Sie weitere Kosten, wenn Sie das zum Ausführen der Anleitung erstellte Projekt löschen.

So löschen Sie das Projekt:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

App Engine-Version löschen

So löschen Sie eine Anwendungsversion:

  1. In the Google Cloud console, go to the Versions page for App Engine.

    Go to Versions

  2. Select the checkbox for the non-default app version that you want to delete.
  3. Klicken Sie zum Löschen der Anwendungsversion auf Löschen.

Weitere Informationen