Kurzanleitung: Go-Web-App in Cloud Run erstellen und bereitstellen

Hier erfahren Sie, wie Sie mit einem einzigen Befehl eine „Hello World“-Webanwendung aus einem Codebeispiel in Google Cloudmit Cloud Run erstellen und bereitstellen.

Wenn Sie die Schritte in dieser Kurzanleitung ausführen, erstellt Cloud Run automatisch ein Dockerfile für Sie, wenn Sie aus dem Quellcode bereitstellen.

Hinweise

  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. Install the Google Cloud CLI.

  3. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  4. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  5. Create or select 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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Wenn Sie für diese Anleitung ein vorhandenes Projekt verwenden, prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Wenn Sie ein neues Projekt erstellt haben, haben Sie bereits die erforderlichen Berechtigungen.

  7. Verify that billing is enabled for your Google Cloud project.

  8. Install the Google Cloud CLI.

  9. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

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

    gcloud init
  11. Create or select 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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Wenn Sie für diese Anleitung ein vorhandenes Projekt verwenden, prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Wenn Sie ein neues Projekt erstellt haben, haben Sie bereits die erforderlichen Berechtigungen.

  13. Verify that billing is enabled for your Google Cloud project.

  14. So legen Sie das Standardprojekt für Ihren Cloud Run-Dienst fest:
     gcloud config set project PROJECT_ID
    Ersetzen Sie PROJECT_ID durch Ihre Google Cloud Projekt-ID.
  15. Wenn Sie einer Domaineinschränkung zur Organisation nicht eingeschränkter Aufrufe für Ihr Projekt unterliegen, müssen Sie auf Ihren bereitgestellten Dienst zugreifen, wie unter Private Dienste testen beschrieben.

  16. Enable the Cloud Run Admin API 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 the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable run.googleapis.com cloudbuild.googleapis.com

    Nachdem die Cloud Run Admin API aktiviert wurde, wird das Compute Engine-Standarddienstkonto automatisch erstellt.

  17. Cloud Run-Preise ansehen oder Kosten mit dem Preisrechner schätzen
  18. Erforderliche Rollen

    Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen dieser Kurzanleitung benötigen:

    Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

    Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

    Cloud Build-Dienstkonto Zugriff auf Ihr Projekt gewähren

    Cloud Build verwendet automatisch das Compute Engine-Standarddienstkonto als Cloud Build-Standarddienstkonto, um Ihren Quellcode und Ihre Cloud Run-Ressource zu erstellen, sofern Sie dieses Verhalten nicht überschreiben.

    Damit Cloud Build Ihre Quellen erstellen kann, weisen Sie dem Cloud Build-Dienstkonto die Rolle Cloud Run Builder (roles/run.builder) für Ihr Projekt zu:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:SERVICE_ACCOUNT_EMAIL_ADDRESS \
        --role=roles/run.builder

    Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID und SERVICE_ACCOUNT_EMAIL_ADDRESS durch die E-Mail-Adresse des Cloud Build-Dienstkontos. Google CloudWenn Sie das Compute Engine-Standarddienstkonto als Cloud Build-Dienstkonto verwenden, verwenden Sie das folgende Format für die E-Mail-Adresse des Dienstkontos:

    PROJECT_NUMBER-compute@developer.gserviceaccount.com

    Ersetzen Sie PROJECT_NUMBER durch die Projektnummer Ihres Google Cloud-Projekts.

    Eine detaillierte Anleitung zum Ermitteln der Projekt-ID und der Projektnummer finden Sie unter Projekte erstellen und verwalten.

    Es dauert einige Minuten, bis die Zuweisung der Rolle „Cloud Run Builder“ übertragen wurde.

    Beispielanwendung schreiben

    So schreiben Sie eine Anwendung in Go:

    1. Erstellen Sie ein neues Verzeichnis mit dem Namen helloworld und ersetzen Sie das aktuelle Verzeichnis durch dieses Verzeichnis:

      mkdir helloworld
      cd helloworld
      
    2. Initialisieren Sie eine go.mod-Datei aus dem Projektverzeichnis, um das Go-Modul zu deklarieren:

      go mod init github.com/GoogleCloudPlatform/golang-samples/run/helloworld
      
    3. Erstellen Sie eine neue Datei mit dem Namen main.go und fügen Sie den folgenden Code in diese ein:

      
      // Sample run-helloworld is a minimal Cloud Run service.
      package main
      
      import (
      	"fmt"
      	"log"
      	"net/http"
      	"os"
      )
      
      func main() {
      	log.Print("starting server...")
      	http.HandleFunc("/", handler)
      
      	// Determine port for HTTP service.
      	port := os.Getenv("PORT")
      	if port == "" {
      		port = "8080"
      		log.Printf("defaulting to port %s", port)
      	}
      
      	// Start HTTP server.
      	log.Printf("listening on port %s", port)
      	if err := http.ListenAndServe(":"+port, nil); err != nil {
      		log.Fatal(err)
      	}
      }
      
      func handler(w http.ResponseWriter, r *http.Request) {
      	name := os.Getenv("NAME")
      	if name == "" {
      		name = "World"
      	}
      	fmt.Fprintf(w, "Hello %s!\n", name)
      }
      

      Mit diesem Code wird ein einfacher Webserver erstellt, der den von der Umgebungsvariable PORT definierten Port überwacht.

    Die Anwendung ist fertig und kann bereitgestellt werden.

    Für Cloud Run aus Quelle bereitstellen

    Wichtig: In dieser Kurzanleitung wird davon ausgegangen, dass Sie Inhaber- oder Bearbeiterrollen in dem Projekt haben, das Sie für die Kurzanleitung verwenden. Andernfalls finden Sie die erforderlichen Berechtigungen für die Bereitstellung einer Cloud Run-Ressource aus der Quelle unter Rolle „Cloud Run-Quellenentwickler“.

    Beim Bereitstellen aus dem Quellcode wird automatisch ein Container-Image aus dem Quellcode erstellt und bereitgestellt.

    So stellen Sie aus der Quelle bereit:

    1. Stellen Sie in Ihrem Quellcodeverzeichnis mit dem folgenden Befehl den aktuellen Ordner bereit:

      gcloud run deploy --source .
      1. Wenn Sie zur Eingabe des Dienstnamens aufgefordert werden, drücken Sie die Eingabetaste, um den Standardnamen zu akzeptieren, z. B. helloworld.

      2. Wenn Sie aufgefordert werden, zusätzliche APIs für das Projekt zu aktivieren, z. B. die Artifact Registry API, antworten Sie durch Drücken von y.

      3. Wenn Sie zur Eingabe der Region aufgefordert werden, wählen Sie die Region Ihrer Wahl aus, zum Beispiel europe-west1.

      4. Wenn Sie aufgefordert werden, ein Repository in der angegebenen Region zu erstellen, antworten Sie durch Drücken von y.

      5. Wenn Sie aufgefordert werden, öffentlichen Zugriff zuzulassen, antworten Sie mit y. Diese Eingabeaufforderung wird möglicherweise nicht angezeigt, wenn eine Organisationsrichtlinie zur Domaineinschränkung dies verhindert. Weitere Informationen finden Sie im Abschnitt Vorbereitung.

      Warten Sie dann einige Sekunden, bis die Bereitstellung abgeschlossen ist. Bei Erfolg wird in der Befehlszeile die Dienst-URL angezeigt.

    2. Rufen Sie den bereitgestellten Service auf. Dazu öffnen Sie in einem Webbrowser die Dienst-URL.

    Cloud Run-Standorte

    Cloud Run ist regional. Die Infrastruktur, in der die Cloud Run-Dienste ausgeführt werden, befindet sich demnach in einer bestimmten Region. Aufgrund der Verwaltung durch Google sind die Anwendungen in allen Zonen innerhalb dieser Region redundant verfügbar.

    Bei der Auswahl der Region, in der Ihre Cloud Run-Dienste ausgeführt werden, ist vorrangig, dass die Anforderungen hinsichtlich Latenz, Verfügbarkeit oder Langlebigkeit erfüllt werden. Sie können im Allgemeinen die Region auswählen, die Ihren Nutzern am nächsten ist. Sie sollten dabei jedoch auch den Standort der anderen Google Cloud-Produkte berücksichtigen, die der Cloud Run-Dienst verwendet. Die gemeinsame Nutzung von Google Cloud Produkten an mehreren Standorten kann sich auf die Latenz und die Kosten des Dienstes auswirken.

    Cloud Run ist in diesen Regionen verfügbar:

    Unterliegt Preisstufe 1

    Unterliegt Preisstufe 2

    • africa-south1 (Johannesburg)
    • asia-east2 (Hongkong)
    • asia-northeast3 (Seoul, Südkorea)
    • asia-southeast1 (Singapur)
    • asia-southeast2 (Jakarta)
    • asia-south2 (Delhi, Indien)
    • australia-southeast1 (Sydney)
    • australia-southeast2 (Melbourne)
    • europe-central2 (Warschau, Polen)
    • europe-west10 (Berlin)Blattsymbol Niedriger CO2-Ausstoß
    • europe-west12 (Turin)
    • europe-west2 (London, Vereinigtes Königreich) Blattsymbol Niedriger CO2-Ausstoß
    • europe-west3 (Frankfurt, Deutschland)
    • europe-west6 (Zürich, Schweiz) Blattsymbol Niedriger CO2-Ausstoß
    • me-central1 (Doha)
    • me-central2 (Dammam)
    • northamerica-northeast1 (Montreal) Blattsymbol Niedriger CO2-Ausstoß
    • northamerica-northeast2 (Toronto) Blattsymbol Niedriger CO2-Ausstoß
    • southamerica-east1 (Sao Paulo, Brasilien) Blattsymbol Niedriger CO2-Ausstoß
    • southamerica-west1 (Santiago, Chile) Blattsymbol Niedriger CO2-Ausstoß
    • us-west2 (Los Angeles)
    • us-west3 (Salt Lake City)
    • us-west4 (Las Vegas)

    Wenn Sie bereits einen Cloud Run-Dienst erstellt haben, können Sie dessen Region im Cloud Run-Dashboard der Google Cloud Console aufrufen.

    Bereinigen

    Löschen Sie alle Ressourcen, die Sie mit dieser Kurzanleitung bereitgestellt haben, um zusätzliche Gebühren für Ihr Google Cloud -Konto zu vermeiden.

    Repository löschen

    Für Cloud Run fallen keine Kosten an, wenn Ihr bereitgestellter Dienst nicht verwendet wird. Möglicherweise fallen jedoch Kosten für das Speichern des Container-Images in Artifact Registry an. Wenn Sie Artifact Registry-Repositories löschen möchten, folgen Sie der Anleitung unter Repositories löschen in der Artifact Registry-Dokumentation.

    Service löschen

    Für Cloud Run-Dienste fallen erst Kosten an, wenn sie Anfragen empfangen. So löschen Sie Ihren Cloud Run-Dienst:

    Konsole

    So löschen Sie einen Dienst:

    1. Rufen Sie in der Google Cloud Console Cloud Run auf:

      Zu Cloud Run

    2. Klicken Sie in der Übersicht das Kästchen des zu löschenden Dienstes an.

    3. Klicken Sie auf Löschen. Dadurch werden alle Überarbeitungen des Dienstes gelöscht.

    gcloud

    Führen Sie den folgenden Befehl aus, um einen Dienst zu löschen:

    gcloud run services delete SERVICE --region REGION

    Ersetzen Sie Folgendes:

    • SERVICE: Name Ihres Dienstes.
    • REGION: Google Cloud Region des Dienstes.

    Testprojekt löschen

    Wenn Sie Ihr Google Cloud -Projekt löschen, wird die Abrechnung für alle Ressourcen in diesem Projekt beendet. So geben Sie alle Google Cloud Ressourcen in Ihrem Projekt frei:

      Delete a Google Cloud project:

      gcloud projects delete PROJECT_ID

    Nächste Schritte

    Weitere Informationen dazu, wie Sie einen Container aus Quellcode erstellen und diesen mithilfe eines Push-Vorgangs in ein Repository übertragen, finden Sie unter: