Funktion über eine Vorlage mit Codeeditor erstellen
Erfahren Sie, wie Sie mit dem Codeeditor eine neue Funktion in OCI Functions basierend auf einer Vorlagenfunktion erstellen.
Mit dem Codeeditor können Sie eine neue Funktion in OCI Functions basierend auf einer Vorlagenfunktion erstellen. Oracle stellt eine Reihe von Helloworld-Vorlagenfunktionen bereit, die in verschiedenen Sprachen geschrieben sind. Nachdem Sie eine Vorlagenfunktion func.yaml und Quellcodedateien in einem nicht versionierten Verzeichnis erstellt haben, konvertieren Sie das Verzeichnis mit dem Codeeditor in ein lokales Git-Repository, das Sie dann an ein Remote-Git-Repository übergeben können. Mit den Dateien im Remote-Git-Repository können Sie die Funktion dann mit dem Codeeditor in OCI Functions bereitstellen und dann die Funktion aufrufen.
Beachten Sie Folgendes, wenn Sie Code Editor zum Erstellen und Aktualisieren von Funktionen verwenden:
- Das Remote-Git-Repository muss eine gültige Datei func.yaml auf der obersten Ebene enthalten.
- Der Name einer Funktion, die Sie mit dem Codeeditor erstellen, muss mit dem Funktionsnamen übereinstimmen, der in der Datei func.yaml im Remotecode-Repository angegeben ist. Wenn die Namen unterschiedlich sind, können Sie die Funktion nicht aufrufen.
- Wenn Sie eine Funktion in OCI Functions bereitstellen, rufen Sie den letzten Commit aus dem Remote-Git-Repository ab. Nicht festgeschriebene Änderungen und Commits im lokalen Repository werden ignoriert. Bevor Sie eine neue oder aktualisierte Funktion in OCI Functions bereitstellen können, müssen Sie daher immer neue und geänderte Dateien im lokalen Git-Repository festschreiben und die Änderungen dann an das Remote-Git-Repository übergeben.
In diesem Thema wird erläutert, wie Sie mit Code Editor:
- Neue Funktion aus einer Vorlagenfunktion erstellen
- Konvertieren Sie das nicht versionierte Verzeichnis mit den func.yaml- und Quellcodedateien der Funktion in ein lokales Git-Repository, das Sie dann in ein Remote-Git-Repository übertragen können
- Funktion in OCI Functions bereitstellen
- Funktion aufrufen
- optional die Funktion aktualisieren, erneut bereitstellen und erneut aufrufen
Bevor Sie beginnen:
- Sie müssen die Schritte in Functions QuickStart in Cloud Shell abgeschlossen haben.
- Um die Schritte in diesem Thema zu befolgen, benötigen Sie Zugriff auf ein leeres Remote-Git-Repository (z.B. in GitHub), oder Sie können ein solches Repository erstellen.
- Der Einfachheit halber gehen die Beispiele in diesem Thema davon aus, dass Sie eine Funktion aus einer Java-Vorlage erstellen. Wenn Sie eine Funktion aus einer anderen Vorlage erstellen, gelten einige der Anweisungen nicht.
Weitere Informationen zu den Funktionen und Funktionen des Codeeditors finden Sie unter Codeeditor.
Helloworld-Funktion mit dem Codeeditor aus einer Vorlage erstellen
So erstellen Sie mit dem Codeeditor eine neue Funktion in OCI Functions basierend auf einer Vorlagenfunktion:
- Bestätigen Sie, dass Sie die Schritte in Functions QuickStart on Cloud Shell ausgeführt haben, um:
- Richten Sie Ihren Mandanten mit Gruppen und Benutzern ein, erstellen Sie ein Compartment, in dem OCI Functions-Ressourcen erstellt werden, erstellen Sie ein VCN und Subnetze, und erstellen Sie eine IAM-Policy.
- Richten Sie die Cloud Shell-Entwicklungsumgebung mit dem Fn-Projekt-CLI-Kontext ein, rufen Sie ein Authentifizierungstoken ab, und melden Sie sich bei der Docker-Registry an, die für den Fn-Projekt-CLI-Kontext angegeben ist.
- Melden Sie sich als Funktionsentwickler in der Konsole an.
-
Erstellen Sie mit der Konsole eine neue Anwendung in OCI Functions:
- Öffnen Sie das Navigationsmenü , und wählen Sie Entwicklerservices aus. Wählen Sie unter Funktionen die Option Anwendungen aus.
- Wählen Sie die Region aus, die Sie für OCI Functions verwenden möchten.
Es wird empfohlen, dass Sie dieselbe Region wie die Docker-Registry verwenden, die im Fn-Projekt-CLI-Kontext angegeben ist (siehe Fn-Projekt-CLI-Kontext für die Verbindung mit Oracle Cloud Infrastructure erstellen).
-
Wählen Sie das Compartment aus, das im Fn-Projekt-CLI-Kontext angegeben wurde (siehe Fn-Projekt-CLI-Kontext für die Verbindung mit Oracle Cloud Infrastructure erstellen).
Auf der Seite Anwendungen werden die bereits im Compartment definierten Anwendungen angezeigt.
-
Wählen Sie Anwendung erstellen aus, und geben Sie Folgendes an:
- Ein Name für die neue Anwendung. Beispiel:
helloworld-java-app -
VCN und Subnetz (bzw. Subnetze, bis zu drei sind möglich), in denen die Funktion ausgeführt werden soll. Es wird empfohlen, dass sich die Subnetze in derselben Region wie die Docker-Registry befinden sollten, die im Fn-Projekt-CLI-Kontext angegeben ist (siehe Fn-Projekt-CLI-Kontext für die Verbindung mit Oracle Cloud Infrastructure erstellen).
Weitere Informationen zu den anderen Optionen für die Anwendungserstellung finden Sie unter Anwendung erstellen.
- Ein Name für die neue Anwendung. Beispiel:
- Wählen Sie Erstellen aus, um die Anwendung zu erstellen.
-
Starten Sie den Codeeditor auf eine der folgenden Arten:
- Auf der Listenseite Anwendungen wählen Sie die Anwendung, in der Sie die Funktion erstellen möchten. Wählen Sie auf der Seite "Anwendungsdetails" Funktionen aus. Wählen Sie auf der Registerkarte Funktionen die Option In Codeeditor erstellen aus. Mit dieser Methode wird der Code Editor in der gerade erstellten Anwendung geöffnet.
- Wählen Sie die Option "Codeeditor" aus der Schaltfläche "Entwicklerwerkzeuge" in der Symbolleiste der Konsole aus.
- Erstellen Sie eine neue Funktion aus einer Vorlage:
- Navigieren Sie im Bereich "Codeeditor - Oracle Cloud Infrastructure" zu der Anwendung, die Sie gerade in dem im Fn-Projekt-CLI-Kontext angegebenen Compartment erstellt haben. Beispiel:
helloworld-java-app. - Wenn der Anwendungsname markiert ist, wählen Sie im Kontextmenü die Option Funktion erstellen....
- Wählen Sie die Erstellungsmethode Aus Vorlage erstellen im Eingabefeld in der Menüleiste des Codeeditors aus.
- Wählen Sie eine Sprache aus der Sprachliste aus, und drücken Sie die Eingabetaste. Beispiel: Wählen Sie Java aus.
- Geben Sie in der Menüleiste des Codeeditors einen Namen für die neue helloworld-Funktion in das Eingabefeld ein, und drücken Sie die Eingabetaste. Beispiel:
helloworld-func-java. - Wählen Sie OK, um das Dialogfeld zu bestätigen, in dem Sie darüber informiert werden, dass Änderungen festgeschrieben und an eine Remoteverzweigung übertragen werden müssen, bevor die Funktion bereitgestellt werden kann.
Ein nach der Funktion benanntes Verzeichnis wird im Verzeichnis
/home/<username>/oci-ide-plugins/faas-artifacts/<app-ocid>/erstellt. Beispiel: In/home/jdoe/oci-ide-plugins/faas-artifacts/ocid1.fnapp.oc1.iad.aaaaaa______76nf/helloworld-func-java,Wenn Sie die neue Funktion auf der Java-Vorlagenfunktion basieren, enthält das Verzeichnis:
- func.yaml
- pom.xml
- ein /src-Verzeichnis
- Navigieren Sie im Bereich "Codeeditor - Oracle Cloud Infrastructure" zu der Anwendung, die Sie gerade in dem im Fn-Projekt-CLI-Kontext angegebenen Compartment erstellt haben. Beispiel:
- Speichern Sie die Funktion in einem lokalen Git-Repository:
- Öffnen Sie ein Terminalfenster des Codeeditors, indem Sie in der Menüleiste des Codeeditors im Fenster Terminal die Option Neues Terminal auswählen.
- Ändern Sie im Terminalfenster des Codeeditors das Verzeichnis in das neu erstellte Verzeichnis, das die Datei func.yaml und die Quelldateien der Funktion enthält, indem Sie Folgendes eingeben:
cd /home/<oci-username>/oci-ide-plugins/faas-artifacts/<application-OCID>/<function-name>Beispiel:
cd /home/jdoe/oci-ide-plugins/faas-artifacts/ocid1.fnapp.oc1.iad.aaaaaaaa______76nf/helloworld-func-java - Konvertieren Sie das nicht versionierte Verzeichnis (z.B.
helloworld-func-java) in ein lokales Git-Repository, indem Sie Folgendes eingeben:git init - Fügen Sie die Dateien im Verzeichnis der Staging Area hinzu, indem Sie Folgendes eingeben:
git add . - Speichern Sie den Inhalt der Staging Area im lokalen Git-Repository, indem Sie Folgendes eingeben:
git commit - Wenn Sie dazu aufgefordert werden, geben Sie eine Commit-Nachricht ein:
- Drücken Sie die i-Taste auf der Tastatur, um Text einzufügen.
- Geben Sie eine Commit-Nachricht ein. Beispiel:
Adds hello-world files. - Drücken Sie die Esc-Taste, geben Sie : w q ein, und drücken Sie die Eingabetaste.
- Erstellen Sie ein neues Remote-Git-Repository. Beispiel: In GitHub als
https://github.com/jdoe/template-java-helloworld-repo. - Funktion an das Remote-Git-Repository übergeben:
- Verbinden Sie im Terminalfenster des Codeeditors im Verzeichnis mit der Datei func.yaml und den Funktionsquelldateien das lokale Git-Repository mit dem soeben erstellten Remote-Git-Repository, indem Sie Folgendes eingeben:
git remote add origin <remote-repository-url>Beispiel:
git remote add origin https://github.com/jdoe/template-java-helloworld-repo.git - Erstellen Sie eine neue Verzweigung namens "main" im lokalen Git-Repository, indem Sie Folgendes eingeben:
git branch -M main - Senden Sie Dateien an die
main-Verzweigung im Remote-Git-Repository, indem Sie Folgendes eingeben:git push -u origin main - Geben Sie bei entsprechender Aufforderung den Git-Benutzernamen und das Kennwort für das Remote-Git-Repository ein.
Beachten Sie im Fall von GitHub, dass das Kennwort das persönliche Zugriffstoken GitHub ist.
- Verbinden Sie im Terminalfenster des Codeeditors im Verzeichnis mit der Datei func.yaml und den Funktionsquelldateien das lokale Git-Repository mit dem soeben erstellten Remote-Git-Repository, indem Sie Folgendes eingeben:
- Funktion in OCI Functions bereitstellen:
-
Melden Sie sich im Terminalfenster des Codeeditors im Verzeichnis mit der Datei func.yaml und den Funktionsquelldateien bei der im Fn-Projekt-CLI-Kontext angegebenen Docker-Registry an. Wenn die Docker-Registry Oracle Cloud Infrastructure Registry ist, verwenden Sie den folgenden Befehl:
docker login -u '<tenancy-namespace>/<user-name>' <region-key>.ocir.ioBeispiel:
docker login -u 'ansh81vru1zp/jdoe@acme.com' phx.ocir.io - Wenn Sie zur Eingabe eines Kennworts aufgefordert werden, geben Sie Ihr OCI-Authentifizierungstoken ein.
- Stellen Sie im Terminalfenster des Codeeditors die Funktion in OCI Functions bereit, indem Sie Folgendes ausführen:
fn -v deploy --app <application-name>Beispiel:
fn -v deploy --app helloworld-java-app
-
- Rufen Sie die soeben bereitgestellte Funktion auf:
- Rufen Sie im Terminalfenster des Codeeditors im Verzeichnis mit der Datei func.yaml und den Funktionsquelldateien die Funktion auf, indem Sie Folgendes ausführen:
fn invoke <application-name> <function-name>Beispiel:
fn invoke helloworld-java-app helloworld-func-javaWenn eine Meldung zurückgegeben wird, in der die Funktion nicht gefunden wird, liegt eine mögliche Ursache in einer Unstimmigkeit zwischen dem Namen der Funktion, die Sie im Codeeditor erstellt haben, und dem Namen der Funktion, die in func.yaml angegeben ist. Wiederholen Sie die vorherigen Schritte, um eine Funktion im Codeeditor zu erstellen, die denselben Namen hat wie in der Datei func.yaml im Remote-Git-Repository angegeben.
Wenn die neue Funktion auf der Java-Vorlagenfunktion basiert, wird die folgende Meldung angezeigt:
Hello World !
- Rufen Sie im Terminalfenster des Codeeditors im Verzeichnis mit der Datei func.yaml und den Funktionsquelldateien die Funktion auf, indem Sie Folgendes ausführen:
-
(Optional) Wenn Sie die neue Funktion in den vorherigen Schritten auf einer Java-Vorlagenfunktion namens
helloworld-func-javabasieren, wird in diesem optionalen Schritt beschrieben, wie Sie den Text der Meldung ändern, die beim Aufrufen der Funktion angezeigt wird. Sie aktualisieren den Nachrichtentext im lokalen Git-Repository, übertragen das Update in das Remote-Git-Repository und stellen die Funktion dann bereit und rufen sie auf.- Im Bereich "Codeeditor Oracle Cloud Infrastructure" unter der soeben erstellten Funktion
helloworld-func-java:- Klicken Sie auf die Datei
/src/main/java/com/example/fn/HelloFunction.java, und ändern Sie die Zeile:return "Hello, " + name + "!";zum Lesen:return "Hi, " + name + "!"; - Wählen Sie in der Datei
/test/java/com/example/fn/HelloFunctionTest.javaaus, und ändern Sie die Zeile:assertEquals("Hello, world!", result.getBodyAsString());zum Lesen:assertEquals("Hi, world!", result.getBodyAsString());
- Klicken Sie auf die Datei
- Wählen Sie im Codeeditor-Navigator das Quellsteuerelement aus, klicken Sie auf die Schaltfläche "Weitere Aktionen", und wählen Sie im Menü Festschreiben die Option Festschreiben.
- Wenn Sie zur Bereitstellung von Änderungen aufgefordert werden, wählen Sie Ja aus.
- Geben Sie eine Commit-Nachricht ein (z.B.
Changes-Hello-to-Hi), und drücken Sie die Eingabetaste. - Wählen Sie die Schaltfläche "Weitere Aktionen", und wählen Sie im Menü Abrufen, Push die Option Push aus.
- Geben Sie bei entsprechender Aufforderung den Git-Benutzernamen und das Kennwort für das Remote-Git-Repository ein.
Beachten Sie im Fall von GitHub, dass das Kennwort das persönliche Zugriffstoken GitHub ist.
- Wenn ein Dialogfeld mit der Meldung "Möchten Sie, dass der Codeeditor regelmäßig "Git fetch" ausführt?" angezeigt wird, wählen Sie Später fragen aus.
-
Stellen Sie im Terminalfenster des Codeeditors im Verzeichnis mit der Datei func.yaml und den Funktionsquelldateien die Funktion in OCI Functions bereit, indem Sie Folgendes eingeben:
fn -v deploy --app <application-name>Beispiel:
fn -v deploy --app helloworld-java-app -
Rufen Sie im Terminalfenster des Code Editors die Funktion auf, indem Sie Folgendes eingeben:
fn invoke <application-name> <function-name>Beispiel:
fn invoke helloworld-java-app helloworld-func-javaDie folgende Meldung wird angezeigt:
Hi World !
Die aktualisierte Nachricht bestätigt, dass Sie den Funktionsquellcode im lokalen Git-Repository erfolgreich geändert, das Update in das Remote-Git-Repository übertragen und die Funktion dann bereitgestellt und aufgerufen haben.
- Im Bereich "Codeeditor Oracle Cloud Infrastructure" unter der soeben erstellten Funktion