Ihre erste Funktion: .NET

In dieser Anleitung erfahren Sie, wie Sie mit der .NET-Laufzeitsprache C# eine Cloud Functions-Funktion schreiben. Es gibt zwei Arten von Cloud Functions-Funktionen:

  • Eine durch HTTP ausgelöste Funktion, die Sie über Standard-HTTP-Anfragen aufrufen.
  • Eine durch ein Ereignis ausgelöste Funktion, mit der Sie Ereignisse aus Ihrer Cloud-Infrastruktur verarbeiten können, z. B. Nachrichten in einem Cloud Pub/Sub-Thema oder Änderungen in einem Cloud Storage-Bucket.

Inhaltsverzeichnis

  1. GCP-Projekt mit dem Cloud SDK erstellen
  2. Funktion erstellen
  3. Abhängigkeiten angeben
  4. Funktion bereitstellen
  5. Bereitgestellte Funktion testen
  6. Logs ansehen
  7. Functions Framework verwenden

GCP-Projekt mit dem Cloud SDK erstellen

  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 Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Cloud Functions and Cloud Build APIs aktivieren.

    Aktivieren Sie die APIs

  5. Installieren und initialisieren Sie das Cloud SDK.
  6. Aktualisieren und installieren Sie gcloud-Komponenten:
    gcloud components update
  7. Benötigen Sie eine Eingabeaufforderung? Dazu steht die Google Cloud Shell zur Verfügung. Google Cloud Shell ist eine Befehlszeilenumgebung, in der das Google Cloud SDK bereits enthalten ist und daher nicht installiert werden muss. Das Google Cloud SDK ist außerdem auf den virtuellen Maschinen von Google Compute Engine vorinstalliert.

  8. Bereiten Sie die Entwicklungsumgebung vor.

    Einrichtungsleitfaden für .NET aufrufen

Funktion erstellen

In diesem Abschnitt wird beschrieben, wie Sie eine neue Funktion manuell erstellen. Alternativ können Sie die Vorlagen verwenden, die vom Vorlagenpaket bereitgestellt werden.

So erstellen Sie eine Funktion:

  1. Erstellen Sie in Ihrem lokalen System ein Verzeichnis für den Funktionscode:

    Windows

    mkdir %HOMEPATH%\helloworld
    cd %HOMEPATH%\helloworld
    

    Linux oder MacOS X

    mkdir ~/helloworld
    cd ~/helloworld
    
  2. Erstellen Sie eine Datei mit dem Namen Function.cs und folgendem Inhalt:

    using Google.Cloud.Functions.Framework;
    using Microsoft.AspNetCore.Http;
    using System.Threading.Tasks;
    
    namespace HelloWorld
    {
        public class Function : IHttpFunction
        {
            public async Task HandleAsync(HttpContext context)
            {
                await context.Response.WriteAsync("Hello World!");
            }
        }
    }

    Diese Beispielfunktion gibt die Begrüßung „Hello World!“ aus.

Abhängigkeiten angeben

Im nächsten Schritt werden die Abhängigkeiten eingerichtet: In C# Cloud Functions können Sie zwei verschiedene Arten von Abhängigkeiten einrichten:

  • Das Functions Framework zur Verfügung stellen. Das ist die Aufgabe, die Sie in diesem Abschnitt ausführen.
  • Andere Bibliotheken in Form von Projektdateien und innerhalb des Codes durch Abhängigkeitsinjektion zur Verfügung stellen. Weitere Informationen finden Sie unter Anpassung über Functions-Startklassen.

Damit Sie das Functions Framework zur Verfügung stellen können, wechseln Sie zum Verzeichnis helloworld, das Sie oben erstellt haben:

     cd ~/helloworld

Erstellen Sie dann eine Datei mit dem Namen HelloWorld.csproj und folgendem Inhalt:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Google.Cloud.Functions.Hosting" Version="1.0.0-beta04" />
  </ItemGroup>
</Project>

Funktion bereitstellen

Führen Sie den folgenden Befehl im Verzeichnis helloworld aus, um die Funktion mit einem HTTP-Trigger bereitzustellen:

gcloud functions deploy my-first-function --entry-point HelloWorld.Function --runtime dotnet3 --trigger-http --allow-unauthenticated

Dabei ist my-first-function der registrierte Name, mit dem die Funktion in der Cloud Console identifiziert wird, und --entry-point der vollständig qualifizierter Klassennamen (FQN) der Funktion.

Bereitgestellte Funktion testen

  1. Notieren Sie sich nach der Bereitstellung der Funktion das Attribut von httpsTrigger.url oder suchen Sie es mit diesem Befehl:

    gcloud functions describe my-first-function
    

    Dies sollte so aussehen:

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/my-first-function
  2. Rufen Sie diese URL in Ihrem Browser auf: Die Meldung Hello World! sollte angezeigt werden.

Logs ansehen

Befehlszeilentool verwenden

Logs für Cloud Functions-Funktionen können über die Cloud Logging-UI und das gcloud-Befehlszeilentool aufgerufen werden.

Wenn Sie mit dem Tool gcloud Logs für Ihre Funktion aufrufen möchten, verwenden Sie den Befehl logs read, gefolgt vom Namen der Funktion:

gcloud functions logs read my-first-function

Die Ausgabe sollte in etwa so aussehen:

LEVEL  NAME               EXECUTION_ID  TIME_UTC                 LOG
D      my-first-function  k2bqgroszo4u  2020-07-24 18:18:01.791  Function execution started
D      my-first-function  k2bqgroszo4u  2020-07-24 18:18:01.958  Function execution took 168 ms, finished with status code: 200
...

Logging-Dashboard verwenden

Sie können Logs für Cloud Functions auch über die Cloud Console aufrufen.

Vorlagenpaket verwenden

In den obigen Abschnitten erfahren Sie, wie Sie manuell eine Funktion erstellen. In Zukunft verwenden Sie Vorlagen, um neue Funktionen zu erstellen.

So erstellen und testen Sie eine Funktion mithilfe der Vorlagen:

  1. Installieren Sie das .NET Core SDK 3.1.

  2. Installieren Sie das Vorlagenpaket:

    dotnet new -i Google.Cloud.Functions.Templates::1.0.0-beta04
    
  3. Erstellen Sie dann ein Verzeichnis für Ihr Projekt und verwenden Sie dotnet new, um eine neue HTTP-Funktion zu erstellen:

    mkdir HelloFunctions
    cd HelloFunctions
    dotnet new gcf-http
    

    Dadurch werden HelloFunctions.csproj und Function.cs im aktuellen Verzeichnis erstellt. Öffnen Sie Function.cs, um den Code zu prüfen, und geben Sie bei Bedarf eine benutzerdefinierte Nachricht ein.

  4. So erstellen Sie die Funktion lokal:

    dotnet run
    
  5. Sobald der Server ausgeführt wird, wechseln Sie zu http://localhost:8080, um die Funktion aufzurufen. Drücken Sie in der Konsole „Strg + C“, um den Server anzuhalten.

    Diese Funktion zeigt die Nachricht „Hello Functions Framework“ an.

Alternativ können Sie Anfragen mit curl von einem anderen Terminalfenster aus an diese Funktion senden:

curl localhost:8080
# Output: Hello Functions Framework