Jetzt starten mit .NET

Diese Anleitung richtet sich an alle Nutzer, die sich für das Erstellen von Anwendungen in der Cloud interessieren, z. B. Software- oder Webentwickler, die die grundlegenden Konzepte der Anwendungsentwicklung im Zusammenhang mit Google Cloud kennenlernen möchten.

Lernziele

Weitere sprachenspezifische Anleitungen zum Erstellen von Anwendungen finden Sie in den folgenden Ressourcen:

Kosten

In dieser Anleitung werden die folgenden kostenpflichtigen Komponenten von Google Cloud verwendet:

Die Anleitung ist so konzipiert, dass Ihre Ressourcennutzung innerhalb der Limits der Google Cloud-Stufe Immer kostenlos bleibt. Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Nach Abschluss dieser Anleitung können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.

Vorbereitung

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  2. Wählen Sie in der Cloud Console auf der Seite für die Projektauswahl ein Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Mit den folgenden Schritten können Sie eine Firebase-Datenbank im nativen Modus erstellen:
    1. Rufen Sie in der Cloud Console die Seite Firestore-Betrachter auf.
      Zur Seite "Firestore-Betrachter"
    2. Klicken Sie im Bildschirm Firestore-Modus auswählen auf Nativen Modus auswählen.
    3. Wählen Sie einen Standort für Firestore aus. Mit dieser Standorteinstellung legen Sie den Standardspeicherort für Google Cloud-Ressourcen in Ihrem Cloud-Projekt fest. Er wird für Google Cloud-Dienste in Ihrem Cloud-Projekt verwendet, die eine Speicherorteinstellung benötigen. Dabei geht es speziell um Ihren standardmäßigen Cloud Storage-Bucket und Ihre App Engine-Anwendung.
    4. Klicken Sie auf Datenbank erstellen.
  5. Cloud Run, Cloud Storage JSON, Cloud Logging, and Error Reporting APIs aktivieren.

    Aktivieren Sie die APIs

  6. Öffnen Sie den Quellcode der Anwendung in Cloud Shell.
    Zu Cloud Shell

    Cloud Shell bietet Ihnen direkt über den Browser Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.

  7. Klicken Sie auf Weiter, um den Beispielcode herunterzuladen und ins Anwendungsverzeichnis zu wechseln.
  8. Konfigurieren Sie in Cloud Shell das gcloud-Tool, um das neue Google Cloud-Projekt zu verwenden:

    # Configure gcloud for your project
    gcloud config set project PROJECT_ID
    

    Ersetzen Sie PROJECT_ID durch die Google Cloud-Projekt-ID, die Sie mit der Cloud Console erstellt haben.

    Das gcloud-Befehlszeilentool ist die primäre Methode zum Interagieren mit Google Cloud-Ressourcen über die Befehlszeile. In dieser Anleitung verwenden Sie das gcloud-Tool zum Bereitstellen und Verwalten der Anwendung.

Anwendung ausführen

  1. Führen Sie die App aus:
    GOOGLE_CLOUD_PROJECT=PROJECT_ID dotnet run
    
    Ersetzen Sie PROJECT_ID durch die Google Cloud-Projekt-ID, die Sie erstellt haben.
  2. Klicken Sie in Cloud Shell auf Webvorschau und wählen Sie dann Vorschau auf Port 8080 aus. Ein neues Fenster mit der ausgeführten Anwendung wird geöffnet.

Anwendung in Cloud Run bereitstellen

Google Cloud bietet mehrere Optionen zum Ausführen des Codes. In diesem Beispiel verwenden Sie Cloud Run zum Bereitstellen einer skalierbaren Anwendung in Google Cloud. Da Sie keine Server verwalten müssen, können Sie sich mit Cloud Run ganz auf das Programmieren konzentrieren. Außerdem bietet Cloud Run eine automatische Skalierung bei plötzlich auftretenden Trafficspitzen.

Die Dockerfile teilt Cloud Run mit, wie Ihre Anwendung ausgeführt werden soll:

FROM mcr.microsoft.com/dotnet/core/aspnet:2.1
COPY . /app
WORKDIR /app
ENTRYPOINT ["dotnet", "Bookshelf.dll"]

Dockerfiles können umfangreicher sein, aber diese Konfiguration funktioniert für viele Anwendungen.

Cloud Run teilt Ihrer Anwendung mit, welchen Port sie abhören soll, indem die Umgebungsvariable PORT festgelegt wird. Das Program.cs von Bookshelf enthält Code zum Beobachten der Variablen PORT und zum Abhören dieses Ports:

using Google.Cloud.Diagnostics.AspNetCore;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using System;

namespace Bookshelf
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseGoogleDiagnostics(Startup.GetProjectId(), "Bookshelf", "0.01")
                .UseStartup<Startup>().UsePortEnvironmentVariable();
    }

    static class ProgramExtensions
    {
        // Google Cloud Run sets the PORT environment variable to tell this
        // process which port to listen to.
        public static IWebHostBuilder UsePortEnvironmentVariable(
            this IWebHostBuilder builder)
        {
            string port = Environment.GetEnvironmentVariable("PORT");
            if (!string.IsNullOrEmpty(port))
            {
                builder.UseUrls($"http://0.0.0.0:{port}");
            }
            return builder;
        }
    }
}

Stellen Sie die Anwendung in Ihrem Terminalfenster mit dem Tool gcloud für Cloud Run bereit:

  1. Erstellen Sie die Anwendung lokal.
    dotnet publish -c Release
    
  2. Verwenden Sie Cloud Build, um einen Docker-Container zu erstellen und in der Container Registry zu veröffentlichen.
    gcloud builds submit --tag gcr.io/PROJECT_ID/bookshelf \
        bin/Release/netcoreapp2.1/publish
    
  3. Führen Sie den Container mit Cloud Run (vollständig verwaltet) aus.
    gcloud run deploy bookshelf --region us-central1 --platform managed \
        --image gcr.io/PROJECT_ID/bookshelf --allow-unauthenticate
    
    Ihre Anwendung kann jetzt unter der URL angezeigt werden, die in der Ausgabe von gcloud run angezeigt wird:
    Service [bookshelf] revision [bookshelf-00001] has been deployed and is serving traffic at
    https://bookshelf-lwuhslogjlnpofsxugoc.a.run.app
    
  4. Kopieren Sie die URL in Ihren Webbrowser, um die Anwendung anzuzeigen. Startseite der Bookshelf-Anwendung

Weitere Informationen zur Bereitstellung in Cloud Run finden Sie in der Dokumentation zu Cloud Run.

Daten mit Firestore dauerhaft speichern

Sie können keine Informationen auf Ihren Cloud Run-Instanzen speichern, da sie beim Neustart der Instanz verloren gehen und beim Erstellen neuer Instanzen nicht vorhanden sind. Stattdessen verwenden Sie eine Datenbank, aus der Ihre Instanzen lesen bzw. in die sie schreiben.

Google Cloud bietet mehrere Optionen zum Speichern von Daten. In diesem Beispiel verwenden Sie Firestore zum Speichern der Daten für jedes Buch. Firestore ist eine vollständig verwaltete, serverlose NoSQL-Dokumentendatenbank, in der Sie Daten speichern und abfragen können. Firestore skaliert automatisch, um die Anwendungsanforderungen zu erfüllen; wenn Sie die Anwendung nicht nutzen, skaliert Firestore auf null. Fügen Sie jetzt das erste Buch hinzu.

  1. Zum Erstellen eines Buchs für die bereitgestellte Anwendung klicken Sie auf Add book (Buch hinzufügen).

    Buch zur Bookshelf-Anwendung hinzufügen
  2. Geben Sie im Feld Titel Moby Dick ein.
  3. Geben Sie im Feld Autor Herman Melville ein.
  4. Klicken Sie auf Save (Speichern). Die Bookshelf-Anwendung enthält jetzt einen Eintrag.

    Moby-Dick-Eintrag in Bookshelf-Anwendung
  5. Wechseln Sie in der Cloud Console zu Cloud Firestore. Zu Cloud Firestore

    Die Daten werden in Firestore angezeigt. In der Bookshelf-Anwendung wird jedes Buch als Firestore-Dokument mit einer eindeutigen ID gespeichert. All diese Dokumente werden in einer Firestore-Sammlung gespeichert. In dieser Anleitung wird die Sammlung "books" (Bücher) genannt.

    Beispiel für Firestore-Dokument

Firestore speichert die Bücher mithilfe der Firestore-Clientbibliothek. Hier ist ein Beispiel zum Abrufen eines Firestore-Dokuments:

using Google.Cloud.Firestore;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Bookshelf.Models
{
    class FirestoreBookStore : IBookStore
    {
        private FirestoreDb _firestore;
        private CollectionReference _books;

        public FirestoreBookStore(string projectId)
        {
            _firestore = FirestoreDb.Create(projectId);
            _books = _firestore.Collection("Books");
        }

Weitere Informationen zum Verwenden von Firestore finden Sie unter Daten in Firestore hinzufügen.

Datei-Uploads in Cloud Storage speichern

Nachdem das Buch hinzugefügt wurde, soll nun auch noch ein Bild des Buchcovers hinzugefügt werden. Dateien können nicht in Instanzen gespeichert werden. Eine Datenbank ist auch nicht der richtige Ort für Bilddateien. Verwenden Sie stattdessen Cloud Storage.

Cloud Storage ist der primäre Blob-Speicher für Google Cloud. Sie können mit Cloud Storage Anwendungs-Assets hosten, die Sie in der Google Cloud freigeben möchten. Zur Verwendung von Cloud Storage müssen Sie einen Cloud Storage-Bucket – einen Basiscontainer für Daten – erstellen.

  1. Wechseln Sie in der Cloud Console zum Cloud Storage-Browser.

    Zum Cloud Storage-Browser

  2. Klicken Sie auf Bucket erstellen.
  3. Geben Sie im Dialogfeld Bucket erstellen einen Namen für den Bucket ein, indem Sie die Google Cloud-Projekt-ID vor dem String _bucket einfügen, sodass der Name YOUR_PROJECT_ID_bucket lautet. Der Name unterliegt den Anforderungen für Bucket-Namen. Bei allen übrigen Feldern können die Standardwerte übernommen werden.
  4. Klicken Sie auf Erstellen.
  5. Nach dem Erstellen des Buckets müssen Objekte öffentlich zugänglich gemacht werden, damit Nutzer sie aufrufen können. Informationen dazu, wie Sie Objekte öffentlich zugänglich machen, finden Sie unter Making Data Public (Daten veröffentlichen).
  6. Klicken Sie auf Edit book (Buch bearbeiten) und wählen Sie ein Bild als Buchcover zum Hochladen aus. Sie können beispielsweise dieses urheberrechtsfreie Bild verwenden:
    Buchcover: Moby Dick
  7. Klicken Sie auf Speichern. Sie werden zur Startseite weitergeleitet, auf der sich ein Eintrag für Ihre Bookshelf-Anwendung befindet.
    Moby Dick-Eintrag in Bookshelf-Anwendung

Die Bookshelf-Anwendung sendet hochgeladene Dateien über die Cloud Storage-Clientbibliothek an Cloud Storage.

using Google.Cloud.Storage.V1;
using Microsoft.AspNetCore.Http;
using System;
using System.Threading.Tasks;
using System.Web;

namespace Bookshelf.Services
{
    public class ImageUploader
    {
        private readonly string _bucketName;
        private readonly StorageClient _storageClient;

        public ImageUploader(string bucketName)
        {
            _bucketName = bucketName;
            _storageClient = StorageClient.Create();
        }

Weitere Informationen zur Verwendung von Cloud Storage finden Sie in der Liste der Anleitungen.

Anwendung mit der Operations-Suite von Google Cloud überwachen

Sie haben Ihre Anwendung bereitgestellt und Bücher erstellt und bearbeitet. Diese Ereignisse können Sie für Ihre Nutzer mit Application Performance Management überwachen.

Logs mit Cloud Logging überwachen

  1. Rufen Sie in der Google Cloud die Loganzeige auf.

    Loganzeige aufrufen

    Hier können Sie die Anwendung in Echtzeit im Blick behalten. Bei Problemen mit Ihrer Anwendung ist dies einer der ersten Anlaufpunkte.

    Stackdriver-Loganzeige
  2. Wählen Sie in der Drop-down-Liste Ressource die Option Überarbeitung in Cloud Run, bookshelf aus.

Fehler mithilfe von Fehlerberichten beobachten

  1. Rufen Sie in der Cloud Console die Seite Error Reporting auf.
    Zur Seite "Error Reporting"
    In Error Reporting werden Fehler und Ausnahmen in der Anwendung aufgezeigt. Sie können auch Benachrichtigungen dazu einrichten.
  2. Wechseln Sie in Ihrem Browser zur URL /Home/Throw in Ihrer Anwendung.
    Wenn Ihre Anwendung beispielsweise unter https://bookshelf-lwuhslogjlnpofsxugoc.a.run.app gehostet wird, gehen Sie zu https://bookshelf-lwuhslogjlnpofsxugoc.a.run.app/Home/Throw.

    Dadurch wird eine neue Testausnahme generiert und an die Operations-Suite von Google Cloud gesendet.

  3. Kehren Sie in der Cloud Console zur Seite Error Reporting zurück. Nach kurzer Zeit ist der neue Fehler zu sehen. Klicken Sie auf Automatische Aktualisierung, damit Sie die Seite nicht manuell aktualisieren müssen.

    Fehlermeldung von Error Reporting

Bereinigen

So vermeiden Sie, dass Ihr Google Cloud Platform-Konto für die in dieser Anleitung genutzten Ressourcen unnötig mit Gebühren belastet wird:

Projekt löschen

  1. Wechseln Sie in der Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite "Ressourcen verwalten"

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen .
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Beenden, um das Projekt zu löschen.

Weitere Informationen