Einstieg in Cloud Functions

1. Übersicht

Cloud-Functions.png

Mit Cloud Functions schreiben Sie einfache Funktionen, die einem einzigen Zweck dienen und an Ereignisse gebunden sind, die von Ihrer Cloudinfrastruktur und Ihren Diensten ausgegeben werden. Eine Cloud Functions-Funktion wird ausgelöst, wenn ein überwachtes Ereignis initiiert wird. Ihr Code wird in einer vollständig verwalteten Umgebung ausgeführt. Sie müssen keine Infrastruktur bereitstellen und sich auch nicht um die Verwaltung von Servern kümmern.

Cloud Functions-Funktionen können derzeit in JavaScript, Python oder Go geschrieben werden. Im Fall von JavaScript werden sie in einer Node.js-Umgebung auf der Google Cloud Platform ausgeführt. Sie können Cloud Functions-Funktionen in jeder standardmäßigen Node.js-Laufzeit ausführen. Das sorgt für Portabilität und vereinfacht lokales Testen.

Clouddienste verbinden und erweitern

Cloud Functions bietet eine logische Verbindungsschicht, die es Ihnen ermöglicht, Code zum Verbinden und Erweitern von Clouddiensten zu schreiben. So können Sie das Eintreten von Ereignissen überprüfen und darauf reagieren. Hierzu zählen Uploads in Cloud Storage, Log-Änderungen oder eingehende Nachrichten zu einem Cloud Pub/Sub-Thema. Cloud Functions erweitert bestehende Clouddienste und ermöglicht es Ihnen, eine wachsende Vielfalt an Anwendungsfällen mit beliebiger Programmlogik zu bedienen. Außerdem haben Sie damit Zugriff auf die Anmeldedaten des Google-Dienstkontos und sind somit bei den meisten Google Cloud Platform-Diensten authentifiziert, darunter Datastore, Cloud Spanner, die Cloud Translation API oder die Cloud Vision API.

907ffb96feada611.png

Ereignisse und Trigger

Cloudereignisse sind Ereignisse, die in Ihrer Cloudumgebung auftreten.Dabei kann es sich beispielsweise um Änderungen an Daten in einer Datenbank, zu einem Speichersystem hinzugefügte Dateien oder eine neu erstellte Instanz einer virtuellen Maschine handeln.

Ereignisse geschehen, ob Sie darauf reagieren möchten oder nicht. Mit einem Trigger können Sie eine Reaktion auf ein Ereignis erstellen. Sie geben damit an, dass Sie an einem bestimmten Ereignis oder an einer Reihe von Ereignissen interessiert sind. Wenn Sie eine Funktion an einen Trigger binden, können Sie Ereignisse erfassen und darauf reagieren. Weitere Informationen zum Erstellen von Triggern und zum Verknüpfen dieser Trigger mit Funktionen finden Sie unter Ereignisse und Trigger.

Serverlos

Cloud Functions bietet entscheidende Vorteile: Sie müssen weder Server verwalten oder Software konfigurieren noch Frameworks aktualisieren oder Betriebssysteme patchen. Software und Infrastruktur werden vollständig von Google verwaltet, sodass Sie nur noch Code hinzufügen. Außerdem werden Ressourcen automatisch als Reaktion auf Ereignisse bereitgestellt. Das bedeutet, dass eine Funktion ohne jegliches Eingreifen Ihrerseits von wenigen Aufrufen pro Tag bis zu vielen Millionen Aufrufen skalieren kann.

Anwendungsbeispiele

Für asynchrone Arbeitslasten wie schlanke ETL-Vorgänge oder Cloudautomatisierungen wie das Triggern von Build-Prozessen werden keine eigenen Server und keine Entwickler mehr benötigt. Sie implementieren einfach eine Cloud Functions-Funktion, die an das gewünschte Ereignis gebunden ist.

Cloud Functions ist fein abgestuft und bedarfsgesteuert und somit ein perfekter Kandidat für schlanke APIs und Webhooks. Außerdem werden HTTP-Endpunkte beim Implementieren einer HTTP-Funktion automatisch bereitgestellt, sodass im Gegensatz zu einigen anderen Diensten keine komplizierte Konfiguration erforderlich ist.

In diesem Lab erfahren Sie, wie Sie mithilfe der Google Cloud Console eine Cloud Functions-Funktion erstellen, implementieren und testen. Sie werden :

  • Cloud Functions-Funktion erstellen
  • Funktion implementieren und testen
  • Logs ansehen

2. Einrichtung und Anforderungen

Umgebung zum selbstbestimmten Lernen einrichten

  1. Melden Sie sich in der Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes Projekt. Wenn Sie noch kein Gmail- oder G Suite-Konto haben, müssen Sie eines erstellen.

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLGQdkuzGp4rsQTan7F01iePL5DtqQ

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

Notieren Sie sich die Projekt-ID, also den projektübergreifend nur einmal vorkommenden Namen eines Google Cloud-Projekts. Der oben angegebene Name ist bereits vergeben und kann leider nicht mehr verwendet werden. Sie wird später in diesem Codelab als PROJECT_ID bezeichnet.

  1. Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Google Cloud-Ressourcen verwenden zu können.

Die Durchführung dieses Codelabs sollte keine oder nur geringe Kosten verursachen. Folgen Sie bitte der Anleitung im Abschnitt „Bereinigen“, in der Sie erfahren, wie Sie Ressourcen herunterfahren können, damit nach Abschluss dieser Anleitung keine Gebühren anfallen. Neue Nutzer von Google Cloud kommen für das Programm für den kostenlosen Testzeitraum mit einem Guthaben von 300$ infrage.

Google Cloud Shell

Während Sie Google Cloud und Cloud Functions von Ihrem Laptop aus per Fernzugriff nutzen können, wird in diesem Codelab Google Cloud Shell verwendet, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.

Diese Debian-basierte virtuelle Maschine verfügt über alle Entwicklungstools, die Sie benötigen. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud, was die Netzwerkleistung und Authentifizierung erheblich verbessert. Für dieses Codelab benötigen Sie also nur einen Browser (es funktioniert auch auf einem Chromebook).

  1. Klicken Sie zum Aktivieren von Cloud Shell in der Cloud Console einfach auf Cloud Shell aktivieren fEbHefbRynwXpq1vj2wJw6Dr17O0np8l-WOekxAZYlZQIORsWQE_xJl-cNhogjATLn-YxLVz8CgLvIW1Ncc0yXKJsfzJGMYgUeLsVB7zSwz7p6ItNgx4tXqQjag7BfWPcZN5kP-X3Q. Die Bereitstellung und Verbindung mit der Umgebung sollte nur wenige Augenblicke dauern.

I5aEsuNurCxHoDFjZRZrKBdarPPKPoKuExYpdagmdaOLKe7eig3DAKJitIKyuOpuwmrMAyZhp5AXpmD_k66cBuc1aUnWlJeSfo_aTKPY9aNMurhfegg1CYaE11jdpSTYNNIYARe01A

Screen Shot 2017-06-14 at 10.13.43 PM.png

Sobald die Verbindung mit der Cloud Shell hergestellt ist, sehen Sie, dass Sie bereits authentifiziert sind und für das Projekt schon Ihre PROJECT_ID eingestellt ist.

gcloud auth list

Befehlsausgabe

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
gcloud config list project

Befehlsausgabe

[core]
project = <PROJECT_ID>

Wenn das Projekt aus irgendeinem Grund nicht festgelegt ist, führen Sie einfach den folgenden Befehl aus:

gcloud config set project <PROJECT_ID>

Suchst du nach deinem PROJECT_ID? Sehen Sie nach, welche ID Sie in den Einrichtungsschritten verwendet haben, oder suchen Sie sie im Cloud Console-Dashboard:

R7chO4PKQfLC3bvFBNZJALLTUiCgyLEq_67ECX7ohs_0ZnSjC7GxDNxWrJJUaoM53LnqABYamrBJhCuXF-J9XBzuUgaz7VvaxNrkP2TAn93Drxccyj2-5zz4AxL-G3hzxZ4PsM5HHQ

In Cloud Shell werden auch einige Umgebungsvariablen standardmäßig festgelegt, die für zukünftige Befehle nützlich sein können.

echo $GOOGLE_CLOUD_PROJECT

Befehlsausgabe

<PROJECT_ID>
  1. Legen Sie zum Schluss die Standardzone und die Projektkonfiguration fest.
gcloud config set compute/zone us-central1-f

Sie können verschiedene Zonen auswählen. Weitere Informationen finden Sie unter Regionen und Zonen.

3. Funktion erstellen

In diesem Schritt erstellen Sie in der Konsole eine Cloud Functions-Funktion.

  • Klicken Sie in der Console auf das Navigationsmenü > Cloud Functions.

fe64222954f5f372.png

  • Klicken Sie auf „FUNKTION ERSTELLEN“:

7adca9640ca2e5a6.png

  • Geben Sie Ihrer Funktion den Namen GCFunction und behalten Sie die anderen Standardeinstellungen bei : Speicherzuweisung, HTTP als Trigger, Inline-Editor, Standardlaufzeit und Standardbeispielcode.

795f1fedc0f039bb.png

  • Klicken Sie im Dialogfeld „Funktion erstellen“ unten auf „Erstellen“, um die Funktion bereitzustellen:

b68c3647b771e6f9.png

Nachdem Sie auf „Erstellen“ geklickt haben, werden Sie in der Console zur Übersichtsseite von Cloud Functions weitergeleitet.

Während die Funktion implementiert wird, ist daneben ein kleines Wartesymbol zu sehen. Nach der Implementierung wird hier ein grünes Häkchen angezeigt. Bei Problemen werden Sie mit einem roten Symbol und einem Link zu den Protokollen benachrichtigt, damit Sie nachvollziehen können, was schiefgelaufen ist (wahrscheinlich ein Problem in Ihrem Code).

3ec684b1b4906657.png

Geschafft! Ihre Funktion ist jetzt aktiv und kann über HTTP ausgelöst werden.

4. Funktion testen

Rufen Sie auf der Übersichtsseite von Cloud Functions das Menü für die Funktion auf und klicken Sie auf Funktion testen :

74e310ee6663bb3c.png

Geben Sie in das Feld „Auslösendes Ereignis“ folgenden Text zwischen den Klammern {} ein und klicken Sie auf Funktion testen.

Im Feld Ausgabe sollte die Meldung „Erfolg: Hello World!“ angezeigt werden.

Im Feld Logs wird ein erfolgreicher Test mit dem Statuscode 200 angezeigt. Es kann eine Minute dauern, bis die Logs angezeigt werden.

a876def9cbf24a45.png

5. Funktionslogs ansehen

Klicken Sie auf den blauen Pfeil, um zur Seite „Cloud Functions – Übersicht“ zurückzukehren :

8917a2bfa4fb9502.png

Rufen Sie das Menü für Ihre Funktion auf und klicken Sie auf Logs ansehen :

e97e6ec1fc17dfd7.png

Hier ein Beispiel für den Protokollverlauf :

d91a00cf4457fa84.png

Sie können Logs nach Funktion und Schweregrad filtern und über ein Label oder Freiformtext suchen.

Sie haben Ihre Anwendung bereitgestellt und getestet und konnten sich die Logs ansehen.

6. Ressourcen bereinigen

Sie müssen keine Ressourcen bereinigen, da es sich um serverloses Computing handelt. Das Skalieren auf null bedeutet auch, dass die Kosten auf null skaliert werden. Wenn Ihre Funktion also keinen Traffic erhält, fallen auch keine Kosten an. Außerdem sind die ersten 2 Millionen Cloud Functions-Aufrufe pro Monat kostenlos. Weitere Informationen finden Sie auf der Preisseite.

Wenn Sie die Funktion löschen möchten, rufen Sie einfach die Übersichtsseite auf, wählen Sie die Funktion aus und klicken Sie auf „LÖSCHEN“:

4fe11e1b41b32ba2.png

7. Nächste Schritte

Cloud Functions hat noch viel mehr zu bieten. Weitere Codelabs und die Produktseite mit der Dokumentation finden Sie hier.

Außerdem sollten Sie Folgendes beachten :