Go-Anwendung in App Engine erstellen

Regions-ID

REGION_ID ist ein abgekürzter Code, den Google anhand der Region zuweist, die Sie beim Erstellen Ihrer Anwendung ausgewählt haben. Der Code bezieht sich nicht auf ein Land oder eine Provinz, auch wenn einige Regions-IDs häufig verwendeten Länder- und Provinzcodes ähneln können. Bei Anwendungen, die nach Februar 2020 erstellt wurden, ist REGION_ID.r in den App Engine-URLs enthalten. Bei Anwendungen, die vor diesem Datum erstellt wurden, ist die Regions-ID in der URL optional.

Hier finden Sie weitere Informationen zu Regions-IDs.

Diese Anleitung hilft Ihnen beim Einstieg in App Engine und beim Entwickeln, Bereitstellen und Verwalten einer Go-Anwendung.

Kosten

Für diesen Leitfaden fallen keine Kosten an. Wenn Sie nur diese Beispielanwendung ausführen, wird Ihr kostenloses Kontingent nicht überschritten.

Entwicklungsumgebung einrichten

Sie können entweder Ihren lokalen Rechner mit den Tools verwenden, mit denen Sie bereits vertraut sind, oder Cloud Shell nutzen. In Cloud Shell ist das Google Cloud CLI bereits installiert, Ihre Umgebung bereits eingerichtet und viele weitere Features auch.

Lokaler Rechner

Installieren Sie Go und richten Sie die gcloud CLI ein.

Cloud Shell

Starten Sie Cloud Shell. Alle Tools, die Sie brauchen, sind in Cloud Shell bereits vorinstalliert:

Cloud Shell öffnen

Google Cloud-Projekt erstellen

Ein Projekt ist für die Verwendung von Google Cloud erforderlich und bildet die Grundlage für die Nutzung aller Google Cloud-Dienste.

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch 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.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. Cloud Build API aktivieren.

    Aktivieren Sie die API

  5. Installieren Sie die Google Cloud CLI.
  6. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  7. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  8. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  9. Cloud Build API aktivieren.

    Aktivieren Sie die API

  10. Installieren Sie die Google Cloud CLI.
  11. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  12. Erstellen Sie Ihre App Engine-Anwendung und die zugehörigen Ressourcen. Sie müssen einen Ort auswählen, der später nicht mehr geändert werden kann.
    gcloud app create

Einfachen Webdienst für App Engine schreiben

Im Folgenden erfahren Sie, wie Sie einen Webdienst programmieren und Laufzeiteinstellungen festlegen.

Dateien strukturieren

Ihr Dienst hat die folgende Dateistruktur:

  • go-app/: Verzeichnis für Ihren Go 1.11-Dienst.
    • app.yaml: die Konfigurationseinstellungen Ihres Dienstes
    • main.go: Ihr Anwendungscode

app.yaml-Datei erstellen

Jedes App Engine-Projekt verfügt über eine app.yaml-Konfigurationsdatei, die die Einstellungen der Laufzeitumgebung Ihres Dienstes enthält. Ohne diese Datei lässt sich der Dienst nicht bereitstellen.

  1. Erstellen Sie einen neuen Ordner mit dem Namen go-app für Ihren Go 1.11-Dienst:

    mkdir go-app

  2. Erstellen Sie in Ihrem go-app/-Ordner eine Datei mit dem Namen app.yaml und fügen Sie die folgenden Inhalte hinzu:

    # Copyright 2019 Google LLC
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #     https://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    
    runtime: go121
    

    Dies ist die einfachste Konfiguration für eine App Engine-Anwendung. Sie zeigt App Engine an, dass Sie die Go 1.11-Laufzeit verwenden. In der Datei app.yaml können auch Netzwerk- und Skalierungseinstellungen festgelegt werden. Weitere Informationen finden Sie in der Referenz zu app.yaml.

main.go-Datei erstellen

In diesem Beispiel wird das Paket net/http verwendet, um einen HTTP-Server zu erstellen, der „Hello, World!“ ausgibt.

So richten Sie die Datei main.go ein:

  1. Erstellen Sie im Ordner go-app/ eine main.go-Datei.

  2. Fügen Sie die Anweisung package main hinzu, um Ihren Code als ausführbares Programm zu verarbeiten:

    package main
    

    Damit ein Dienst in der Go 1.11-Laufzeit erfolgreich bereitgestellt werden kann, muss am Anfang von mindestens einer Ihrer Go-Quelldateien eine package main-Anweisung im selben Verzeichnis wie die Datei app.yaml Ihres Dienstes definiert sein.

  3. Importieren Sie die folgenden Pakete:

    import (
    	"fmt"
    	"log"
    	"net/http"
    	"os"
    )
    
  4. Definieren Sie den HTTP-Handler:

    
    // indexHandler responds to requests with our greeting.
    func indexHandler(w http.ResponseWriter, r *http.Request) {
    	if r.URL.Path != "/" {
    		http.NotFound(w, r)
    		return
    	}
    	fmt.Fprint(w, "Hello, World!")
    }
    

    Der http.ResponseWriter stellt die HTTP-Serverantwort zusammen. Wenn Sie in dieses Objekt schreiben, werden Daten an den Browser gesendet. Der http.Request ist eine Datenstruktur für die eingehende HTTP-Anfrage.

  5. HTTP-Handler registrieren:

    
    func main() {
    	http.HandleFunc("/", indexHandler)
    
    	port := os.Getenv("PORT")
    	if port == "" {
    		port = "8080"
    		log.Printf("Defaulting to port %s", port)
    	}
    
    	log.Printf("Listening on port %s", port)
    	if err := http.ListenAndServe(":"+port, nil); err != nil {
    		log.Fatal(err)
    	}
    }
    

    Die main-Funktion ist der Einstiegspunkt des ausführbaren Programms, also startet sie die Anwendung. Als Erstes wird die http.HandleFunc-Funktion aufgerufen, die das http-Paket anweist, alle Anfragen an das Webstammverzeichnis ("/") mit der indexHandler-Funktion zu verarbeiten.

    Wenn die Umgebungsvariable PORT nicht festgelegt ist, wird Port 8080 als Standard verwendet. Wenn Ihre Anwendung in App Engine ausgeführt wird, wird die Umgebungsvariable PORT für Sie festgelegt. Beim lokalen Testen Ihrer Anwendung können Sie den PORT auf einen beliebigen bevorzugten Wert setzen.

Webdienst in App Engine bereitstellen

  1. Stellen Sie in Ihrem go-app-Verzeichnis, in dem sich Ihre app.yaml-Datei befindet, Ihren Webdienst mithilfe des folgenden Befehls in App Engine bereit:

    gcloud app deploy

  2. Führen Sie den folgenden Befehl aus, um Ihren Browser zu starten und unter https://PROJECT_ID.REGION_ID.r.appspot.com auf Ihren Webdienst zuzugreifen:

    gcloud app browse

Das wars! Sie haben jetzt einen Dienst erstellt und in App Engine bereitgestellt.

Dienste und Versionen

Der erste Dienst, den Sie für Ihre Anwendung bereitstellen, ist der Standarddienst. Sie können den Namen Ihres Dienstes in der Datei app.yaml angeben. Wenn Sie den Namen jedoch weglassen, wird er als default behandelt. Sie können neben dem Standarddienst noch mehrere andere Dienste bereitstellen.

Sie können Ihren Dienst jederzeit mit dem Befehl gcloud app deploy aktualisieren. Bei jeder Bereitstellung wird eine neue Version erstellt und der Traffic wird automatisch an die neueste Version weitergeleitet.

So bestätigen Sie die Erstellung von Diensten und die Bereitstellung der Version:

  1. Rufen Sie Ihre App Engine-Dienste in der Google Cloud Console auf:

    Dienste aufrufen

    Sie sollten einen Dienst mit dem Namen default sehen. Der Standarddienst ist unter der folgenden URL öffentlich zugänglich:

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

  2. Rufen Sie die Versionen auf:

    Versionen aufrufen

    Sie sollten eine Version mit Zeitstempel sehen, die Ihrer Bereitstellung entspricht.

Informationen zum Senden von Anfragen an bestimmte Dienste und Versionen finden Sie unter Anfragerouting.

Weitere Informationen

Das wars! Sie haben Ihre Webanwendung nun auf App Engine eingerichtet und bereitgestellt.

Sie können der Anwendung nun noch weitere Features hinzufügen. Informationen dazu finden Sie auf folgenden Seiten: