HTTP-Cloud Run Functions-Funktion mit .NET erstellen und bereitstellen
In dieser Anleitung erfahren Sie, wie Sie mit der .NET-Laufzeitsprache C# eine Cloud Run Functions-Funktion schreiben. Es gibt zwei Arten von Cloud Run Functions-Funktionen:
- Eine HTTP-Funktion, die Sie über Standard-HTTP-Anfragen aufrufen.
- Eine ereignisgesteuerte Funktion, die durch Ereignisse in Ihrer Cloud-Infrastruktur ausgelöst wird, z. B. Nachrichten in einem Pub/Sub-Thema oder Änderungen in einem Cloud Storage-Bucket.
Weitere Informationen finden Sie unter HTTP-Funktionen schreiben und Ereignisgesteuerte Funktionen schreiben.
Vorbereitung
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions, Cloud Build, Artifact Registry, Cloud Run, and Cloud Logging APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions, Cloud Build, Artifact Registry, Cloud Run, and Cloud Logging APIs.
- Installieren und initialisieren Sie das Google Cloud SDK.
- Aktualisieren und installieren Sie
gcloud
-Komponenten mit dem folgenden Befehl.gcloud components update
-
Bereiten Sie die Entwicklungsumgebung vor.
Funktion erstellen
In diesem Abschnitt wird beschrieben, wie Sie eine .NET-Funktion manuell erstellen. Alternativ können Sie die Functions Framework-Vorlagen verwenden, um Ihre Funktion zu erstellen.
So erstellen Sie eine Funktion:
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
Erstellen Sie eine
Function.cs
-Datei im Verzeichnishelloworld
mit folgendem Inhalt:
Abhängigkeiten angeben
Cloud Run Functions-Funktionen benötigen eine Reihe von Bibliotheken, die als Functions-Framework bezeichnet werden. Führen Sie die folgenden Schritte aus, um das Functions-Framework für Ihren Build verfügbar zu machen:
Wechseln Sie in das Verzeichnis
helloworld
, das Sie gerade erstellt haben:cd ~/helloworld
Erstellen Sie eine
HelloWorld.csproj
-Datei im Verzeichnishelloworld
mit folgendem Inhalt:
Weitere Informationen dazu, wie Sie andere Bibliotheken für Ihren Build verfügbar machen, entweder über Projektdateien oder innerhalb des Codes durch Abhängigkeitsinjektion, finden Sie unter Anpassung über Functions-Startklassen.
Funktion lokal erstellen und testen
Erstellen und führen Sie die Funktion mit dem folgenden Befehl lokal aus:
dotnet run
Testen Sie die Funktion. Rufen Sie dazu
http://localhost:8080
in einem Browser auf oder führen Siecurl localhost:8080
in einem anderen Fenster aus. Wenn Sie Cloud Shell verwenden, klicken Sie auf das Symbol und wählen Sie Vorschau auf Port 8080 aus, um die Funktionsausgabe aufzurufen.Weitere Informationen finden Sie unter Anfragen an lokale Funktionen senden.
Funktion bereitstellen
Führen Sie den Befehl im Verzeichnis helloworld
aus, um die Funktion bereitzustellen:
gcloud functions deploy csharp-http-function \
--gen2 \
--entry-point=HelloWorld.Function \
--runtime=dotnet6 \
--region=REGION \
--source=. \
--trigger-http \
--allow-unauthenticated
Ersetzen Sie REGION durch den Namen der Google Cloud-Region, in der Sie die Funktion bereitstellen möchten (z. B. us-west1
).
csharp-http-function
ist der registrierte Name, mit dem die Funktion in der Google Cloud Console identifiziert wird. --entry-point
gibt den vollständig qualifizierten Klassennamen (FQN) der Funktion an.
Mit dem optionalen Flag --allow-unauthenticated
können Sie die Funktion ohne Authentifizierung aufrufen.
Bereitgestellte Funktion testen
Beachten Sie nach dem Bereitstellen der Funktion das Attribut
uri
in der Ausgabe des Befehlsgcloud functions deploy
oder rufen Sie es mit dem folgenden Befehl ab:gcloud functions describe csharp-http-function \ --region=REGION
Ersetzen Sie REGION durch den Namen der Google Cloud-Region, in der Sie die Funktion bereitgestellt haben (z. B.
us-west1
).Testen Sie die Funktion. Rufen Sie dazu
http://localhost:8080
in einem Browser auf oder führen Siecurl localhost:8080
in einem anderen Fenster aus.Weitere Informationen finden Sie unter Anfragen an lokale Funktionen senden.
Logs der Funktion ansehen
Logs mit dem Befehlszeilentool ansehen
Sie können die Logs Ihrer Funktion über die Cloud Logging-UI oder die Google Cloud CLI prüfen.
Wenn Sie mit der gcloud CLI Logs für Ihre Funktion aufrufen möchten, verwenden Sie den Befehl logs read
:
gcloud functions logs read \
--gen2 \
--limit=10 \
--region=REGION \
csharp-http-function
Ersetzen Sie REGION durch den Namen der Google Cloud-Region, in der Sie die Funktion bereitgestellt haben (z. B. us-west1
).
Die Ausgabe sollte in etwa so aussehen:
LEVEL: I
NAME: my-first-function
TIME_UTC: 2023-06-01 12:47:42.221
LOG: Request finished HTTP/1.1 GET http://my-first-function-l5vqvupfzq-uw.a.run.app/favicon.ico - - - 404 0 - 0.9393ms
LEVEL: I
NAME: my-first-function
TIME_UTC: 2023-06-01 12:47:42.220
LOG: Request starting HTTP/1.1 GET http://my-first-function-l5vqvupfzq-uw.a.run.app/favicon.ico - -
Logs mit dem Logging-Dashboard ansehen
Um die Logs für Ihre Funktion mit dem Logging-Dashboard aufzurufen, öffnen Sie die Übersichtsseite zu Cloud Run Functions. Klicken Sie in der Liste auf den Namen Ihrer Funktion und dann auf den Tab Logs.
Funktion mit dem Vorlagenpaket erstellen
Anhand dieser Anleitung haben Sie eine einfache Funktion erstellt. In der Praxis verwenden Sie wahrscheinlich lieber die Functions Framework-Vorlagen, um Ihre Funktionen zu erstellen.
So erstellen und testen Sie eine Funktion mithilfe von Functions Framework-Vorlagen:
Installieren Sie das .NET SDK. Wenn Sie Cloud Shell verwenden, können Sie diesen Schritt überspringen.
Installieren Sie das Vorlagenpaket:
dotnet new install Google.Cloud.Functions.Templates
Erstellen Sie ein Verzeichnis für Ihr Projekt und eine leere HTTP-Funktion:
mkdir HelloFunctions cd HelloFunctions dotnet new gcf-http
Dadurch werden
HelloFunctions.csproj
undFunction.cs
im aktuellen Verzeichnis erstellt. Öffnen SieFunction.cs
, um den Code zu prüfen, und geben Sie bei Bedarf eine benutzerdefinierte Nachricht ein.Optional können Sie der Anleitung oben folgen, um die Funktion lokal zu erstellen und zu testen.
Führen Sie den folgenden
gcloud deploy
-Befehl aus, um die Funktion bereitzustellen:gcloud functions deploy HelloFunctions.Function \ --gen2 \ --entry-point=HelloWorld.Function \ --runtime=dotnet6 \ --region=REGION \ --source=. \ --trigger-http \ --allow-unauthenticated
Ersetzen Sie REGION durch den Namen der Google Cloud-Region, in der Sie die Funktion bereitgestellt haben (z. B.
us-west1
).
Weitere Informationen zum Functions-Framework finden Sie in der Dokumentation zum Functions-Framework.