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

Cloud-Ereignisse finden in Ihrer Cloud-Umgebung statt.Dazu können Änderungen an Daten in einer Datenbank, Dateien, die einem Speichersystem hinzugefügt wurden, oder eine neu erstellte VM-Instanz gehören.

Ereignisse geschehen unabhängig davon, ob Sie darauf reagieren. Mit einem Trigger erstellen Sie eine Antwort auf ein Ereignis. 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 für das selbstbestimmte 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 ein Konto 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 in diesem Codelab später als PROJECT_ID bezeichnet.

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

Dieses Codelab sollte möglichst wenig kosten. Folgen Sie der Anleitung im Abschnitt „Bereinigen“, . Hier erfahren Sie, wie Sie Ressourcen herunterfahren, damit Ihnen über dieses Tutorial hinaus keine Kosten entstehen. Neue Google Cloud-Nutzer können an einem kostenlosen Testzeitraum mit 300$Guthaben teilnehmen.

Google Cloud Shell

Sie können Google Cloud und Cloud Functions auch per Fernzugriff von Ihrem Laptop aus bedienen. In diesem Codelab verwenden wir jedoch Google Cloud Shell, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.

Diese Debian-basierte virtuelle Maschine verfügt über alle erforderlichen Entwicklungstools. Es bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und wird in Google Cloud ausgeführt. Dadurch werden die Netzwerkleistung und die Authentifizierung erheblich verbessert. Für dieses Codelab benötigen Sie also nur einen Browser – ja, er funktioniert auf Chromebooks.

  1. Klicken Sie einfach auf Cloud Shell aktivieren fEbHefbRynwXpq1vj2wJw6Dr17O0np8l-WOekxAZYlZQIORsWQE_xJl-cNhogjATLn-YxLVz8CgLvIW1Ncc0yXKJsfzJGMYgUeLsVB7zSwz7p6ItNgx4tXqQjag7BfWPcZN5kP-X3Q, um Cloud Shell über die Cloud Console zu aktivieren. Die Bereitstellung und Verbindung mit der Umgebung dauert einen Moment.

I5aEsuNurCxHoDFjZRZrKBdarPPKPoKuExYpdagmdaOLKe7eig3DAKJitIKyuOpuwmrMAyZhp5AXpmD_k66cBuc1aUnWlJeSfo_aTKPY9aNMurhfegg1CYaE11jdpSTYNNIYARe01A

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

Sobald Sie mit Cloud Shell verbunden sind, sollten Sie sehen, dass Sie bereits authentifiziert sind und dass das Projekt bereits auf Ihre PROJECT_ID eingestellt ist.

gcloud auth list

Befehlsausgabe

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

Befehlsausgabe

[core]
project = <PROJECT_ID>

Sollte das Projekt aus irgendeinem Grund nicht eingerichtet sein, geben Sie einfach den folgenden Befehl ein:

gcloud config set project <PROJECT_ID>

Du suchst dein Gerät (PROJECT_ID)? Sehen Sie nach, welche ID Sie bei den Einrichtungsschritten verwendet haben, oder rufen Sie sie im Dashboard der Cloud Console auf:

R7chO4PKQfLC3bvFBNZJALLTUiCgyLEq_67ECX7ohs_0ZnSjC7GxDNxWrJJUaoM53LnqABYamrBJhCuXF-J9XBzuUgaz7VvaxNrkP2TAn93Drxccyj2-5zz4AxL-G3hzxZ4PsM5HHQ

Cloud Shell legt außerdem standardmäßig einige Umgebungsvariablen fest, die bei der Ausführung zukünftiger Befehle nützlich sein können.

echo $GOOGLE_CLOUD_PROJECT

Befehlsausgabe

<PROJECT_ID>
  1. Legen Sie schließlich 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 Konsole auf das Navigationsmenü > Cloud Functions.

fe64222954f5f372.png

  • Klicken Sie auf FUNKTION ERSTELLEN. :

7adca9640ca2e5a6.png

  • Benennen Sie die Funktion mit GCFunction und behalten Sie die anderen Standardeinstellungen bei : Arbeitsspeicherzuweisung, HTTP als Trigger, Inline-Editor, Standardlaufzeit und Standardbeispielcode.

795f1fedc0f039bb.png

  • In der Funktion „Funktion erstellen“ klicken Sie 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. Falls Probleme auftreten, erhalten Sie eine Benachrichtigung mit einem roten Symbol und einem Link zu den Protokollen, anhand derer Sie nachvollziehen können, was schiefgelaufen ist (wahrscheinlich ein Problem mit Ihrem Code).

8331b1b4906657.png

Fertig! Ihre Funktion ist jetzt live und kann über HTTP ausgelöst werden.

4. Funktion testen

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

74e310ee6663bb3c.png

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

Im Feld Ausgabe sollten Sie die Meldung „Success: Hello World!“ sehen.

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

a876def9cbf24a45.png

5. Funktionslogs ansehen

Klicken Sie auf den blauen Pfeil, um zur Übersichtsseite von Cloud Functions zurückzukehren :

8917a2bfa4fb9502.png

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

e97e6ec1fc17dfd7.png

Hier ist ein Beispiel für den Protokollverlauf :

d91a00cf4457fa84.png

Beachten Sie, dass Sie Logs nach Funktion und Schweregrad filtern und über ein Label oder Freitext suchen können.

Ihre Anwendung wurde bereitgestellt und getestet und Sie konnten die Logs aufrufen.

6. Ressourcen bereinigen

Da es sich um serverloses Computing handelt, müssen Sie eigentlich keine Ressourcen bereinigen. Die Skalierung auf null bedeutet auch, dass die Kosten auf null skaliert werden. Wenn Ihre Funktion also keinen Traffic empfängt, fallen keine Kosten an. Außerdem sind die ersten 2 Millionen Aufrufe von Cloud Functions-Funktionen pro Monat kostenlos. Weitere Informationen finden Sie in der Preisübersicht.

Wenn Sie die Funktion löschen möchten, wechseln Sie einfach zur Übersichtsseite, 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 erwarten. Sehen Sie sich andere Codelabs, die Produktseite und die zugehörige Dokumentation an.

Sie sollten sich auch Folgendes ansehen :