Fn-Code: Ein Leitfaden für Anfänger

Foto von Luca Bravo auf Unsplash

Das Schreiben von Code ist nicht einfach. Es wird anscheinend auch nicht bereitgestellt, was für Entwickler das letzte sein sollte, wenn sie sich hinsetzen, um eine Lösung zu erstellen.

Es gibt viele Entwicklertools, aber es ist immer schwierig, das Rauschen zu sichten und einen einfachen Einstieg zu finden.

Als jemand, der ständig etwas über Cloud-Technologie lernt, frage ich mich oft, wie alle anderen etwas verstehen, und dennoch bin ich immer und immer wieder in eine virtuelle Wand geraten, wie wenn ich mich in diesem Goldeneye-Spiel für Oddjob entschieden hätte. .? ”(Zu Ihrer Information, diese Analogie wurde aus persönlicher Erfahrung gezogen).

Aus diesem Grund habe ich mich für diesen Leitfaden entschieden, damit andere Anfänger wie ich besser verstehen, welche Entwicklertechnologien es gibt und wie sie diese ausprobieren können.

Serverlos

Das interessiert mich wirklich. Wenn Sie ein erfahrener Entwickler sind und sich mit Ihren Dingen auskennen, hören Sie vielleicht das Wort "Serverless" und sagen, dass das Konzept schon seit Jahren besteht. Nun ja, es ist jedoch so, dass die Microservice-Architektur für Unternehmen, die ihre Geschäftsabläufe auflösen möchten, immer nützlicher wird und Services wie Azure-Funktionen, Oracle-Funktionen und Google Cloud-Funktionen die Automatisierung dieser Geschäftsabläufe erheblich erleichtern - Vielleicht ist es an der Zeit, dass die neue Generation angehender Entwickler sich frühzeitig mit Serverless-Architektur vertraut macht.

In diesem Tutorial erhalten Sie einen Einblick in eine container-native Plattform - Oracle Fnproject - und können Ihre erste HelloWorld-Funktion mit WSL (Windows Sub Linux) aufrufen.

Die Fn-Plattform hilft Ihnen bei der lokalen Entwicklung, ermöglicht Ihnen aber auch die Verwendung einer beliebigen Sprache und das Testen eines serverlosen Ansatzes mit Tonnen verschiedener Softwareanwendungen auf der ganzen Linie - oh, und es ist Open Source.

Nach Abschluss dieser exemplarischen Vorgehensweise werde ich lernen und mitteilen, wie die Fn-Plattform in der öffentlichen Cloud verwendet wird. So können wir überall entwickeln (ideal für zukünftige Entwicklungsprojekte).

Sie können diese kostenlosen Cloud-Credits verwenden, um sich vor unserer nächsten exemplarischen Vorgehensweise daran zu gewöhnen.

Warum Fn?

  • Es ist nicht an einen Cloud-Anbieter gebunden
  • Es kann in jeder Cloud-Umgebung gehostet werden, die Docker unterstützt
  • Sie können die Plattform auf Ihrem lokalen Entwicklungssystem ausführen oder Ihre Funktionen vollständig cloudunabhängig entwickeln
  • Sie testen sie dann auf Ihrem lokalen System, und wenn sie dort ausgeführt werden, können sie auf jedem System ausgeführt werden
  • Es unterstützt jede Programmiersprache

Loslegen

  1. Installieren

Installieren Sie die neueste Version von Docker auf Ihrem Windows-Computer. Sie können dies hier tun.

Als nächstes ist es Zeit, Fn zu installieren.

curl - LSs https://raw.githubusercontent.com/fnproject/cli/master/install | Sch

2. Fn CLI

Wenn Sie sich das ansehen möchten, geben Sie einfach fn ein. Wenn Sie andere Tutorials für Fn verwenden, können einige Befehle möglicherweise nicht ausgeführt werden. Dies liegt daran, dass die CLI kürzlich aktualisiert wurde. Wenn beim Befolgen verschiedener Tutorials Fehlermeldungen angezeigt werden, lesen Sie in diesem Handbuch nach, was sich geändert hat.

Fn CLI

3. Funktionen

Mit der Fn-Plattform können Sie Funktionen in einer beliebigen Sprache ausführen, und dieser Artikel konzentriert sich auf Java-Funktionen. Mit dem Fn-CLI-Tool können Sie auf einfache Weise eine Standardfunktion und eine Standardkonfigurationsdatei mit dem Namen fn init generieren, die die Erstellung einer neuen Laufzeit-Java-Funktion bewirken

Runtime Java gibt eine Java-Vorlage an, die verwendet werden soll, und ein Maven-Projekt wird generiert.

pom.xml

Außerdem wird eine func.yaml-Datei erstellt, die die Metainformationen enthält.

func.yaml

func.yaml enthält Informationen, die für die Fn-Plattform erforderlich sind, um ein Docker-Image zu erstellen, das Ihre Funktion enthält. Der wichtigste Eintrag in der Datei ist unten zu sehen.

handleRequest

Dieser Eintrag gibt an, dass beim Aufruf der Funktion die Methode handleRequest (in der Klasse com.example.fn.HelloFunction) aufgerufen wird. Der Befehl fn init hat diese Klasse bereits in der Standardvorlage erstellt. Wenn Sie zu / javafn / src / main / java / com / example / fn wechseln und die Datei HelloWorld.java in nano öffnen, können Sie die Java-Klasse anzeigen.

HelloWorld.java

4. Ausführen einer Funktion

Nachdem die Vorlagen eingerichtet wurden, führen wir unsere erste Funktion mit Fn aus.

  • Öffne ein zweites Fenster
  • Geben Sie fn start ein - Die Ausgabe auf dem Bildschirm unten zeigt uns, dass der Fn-Server jetzt ausgeführt wird
Zum Start
  • Überprüfen Sie als Nächstes die Ausgabe von cat func.yaml, um sicherzustellen, dass Sie beim Aufrufen der Funktion den richtigen Namen haben.
  • Kehren Sie zum ursprünglichen Fenster zurück und geben Sie den Befehl demo javafn ein

Dies sollte Ihre Ausgabe sein

fn aufrufen

Es geht los! Sie haben gerade Ihre erste Funktion mit Fn aufgerufen. Ein sehr einfacher Einstieg in unsere Reise, um Entwickler-Tools kennenzulernen.

Einige Extras

Ein Problem, auf das ich gestoßen bin

Es kann keine Verbindung zum Docker-Dämon unter Unix: ///var/run/docker.sock hergestellt werden. Läuft der Docker-Daemon?

Wenn Sie WSL verwenden und die obige Fehlermeldung weiterhin angezeigt wird, vergewissern Sie sich, dass Docker auf Ihrem Windows-System installiert ist, gehen Sie zu Docker-Einstellungen und dann zu Allgemein, und stellen Sie sicher, dass dieses Kontrollkästchen aktiviert ist: „Expose daemon on tcp: // localhost: 2375 ohne TLS ”

Gehen Sie jetzt zurück in die Run-Hello-Welt von Terminal und Trydocker. Das sollten Sie sehen.

Docker-Daemon-Fix

Um dies dauerhaft zu machen, führe den Schritt aus, den ich hier gefunden habe. Exportieren Sie eine Umgebungsvariable, die Docker anweist, wo sich die Host-Engine befindet.

echo "export DOCKER_HOST = 'tcp: //0.0.0.0: 2375'" >> ~ / .bashrc
source ~ / .bashrcReferences

Tritt unserer Community Slack bei und lies unsere wöchentlichen Faunthemen ⬇

Wenn dieser Beitrag hilfreich war, klicken Sie bitte einige Male auf die Schaltfläche zum Klicken ap, um Ihre Unterstützung für den Autor anzuzeigen! ⬇