Funktion über ein Sample mit Codeeditor erstellen
Erfahren Sie, wie Sie mit dem Codeeditor eine neue Funktion in OCI Functions basierend auf einer Beispielfunktion erstellen.
Mit dem Codeeditor können Sie eine neue Funktion in OCI Functions basierend auf einer Beispielfunktion erstellen. Oracle stellt eine Reihe nützlicher Beispielfunktionen bereit, die in verschiedenen Sprachen geschrieben sind. Nachdem Sie eine Beispielfunktion 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 Beispielfunktion 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 der Beispielfunktion
oci-list-compartments-pythonerstellen. Wenn Sie eine Funktion aus einer anderen Beispielfunktion erstellen, gelten einige der Anweisungen nicht.
Weitere Informationen zu den Funktionen und Funktionen des Codeeditors finden Sie unter Codeeditor.
Funktion mit dem Codeeditor aus einem Beispiel erstellen
So erstellen Sie mit dem Codeeditor eine neue Funktion in OCI Functions basierend auf einer Beispielfunktion:
- 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, und geben Sie:
- Ein Name für die neue Anwendung. Beispiel:
samples-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 Beispielfunktion:
- 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:
samples-app. - Wenn der Anwendungsname markiert ist, wählen Sie im Kontextmenü die Option Funktion erstellen....
- Wählen Sie in der Menüleiste des Codeeditors im Eingabefeld die Erstellungsmethode Aus einem Beispiel erstellen.
- Wählen Sie eine Funktion aus der Beispielfunktionsliste aus, und drücken Sie die Eingabetaste. Beispiel: Wählen Sie oci-list-compartments-python aus.
- Geben Sie in der Menüleiste des Codeeditors einen Namen für die neue Funktion in das Eingabefeld ein, und drücken Sie die Eingabetaste. Der eingegebene Name muss mit dem Namen in der Datei func.yaml der Beispielfunktion übereinstimmen. In den meisten Fällen ist dies der Name in der Liste der Beispielfunktionen im vorherigen Schritt. Beispiel:
oci-list-compartments-python.Geben Sie in der Menüleiste des Codeeditors einen Namen für die neue Funktion in das Eingabefeld ein, und drücken Sie die Eingabetaste. Der eingegebene Name muss mit dem Namen der ausgewählten Beispielfunktion in der Liste übereinstimmen. Beispiel:
oci-list-compartments-python. - 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/oci-list-compartments-python,Wenn Sie die neue Funktion auf der Beispielfunktion
oci-list-compartments-pythonbasieren, enthält das Verzeichnis Folgendes:- func.yaml
- func.py
- README.md
- requirments.txt
- ein /images-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/oci-list-compartments-python - Konvertieren Sie das nicht versionierte Verzeichnis (z.B.
oci-list-compartments-python) 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: Geben Sie Folgendes ein:
Adds sample 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/list-compartments-sample-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/list-compartments-sample-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 samples-app
-
-
Einige Beispielfunktionen haben bestimmte Voraussetzungen, wie bestimmte IAM-Policys. Diese Voraussetzungen werden in der Datei
README.mdder Beispielfunktion beschrieben. Beispiel: Für eine Funktion, die auf der Beispielfunktionoci-list-compartments-pythonbasiert, gibt die DateiREADME.mdan, dass die Funktion nur ein Mitglied einer dynamischen Gruppe ist.Wenn die neue Funktion auf der Beispielfunktion
oci-list-compartments-pythonbasiert, befolgen Sie die folgenden Anweisungen, um die Funktion einer dynamischen Gruppe hinzuzufügen:- Öffnen Sie das Navigationsmenü , und wählen Sie Identität und Sicherheit aus. Wählen Sie unter Identität die Option Domains aus. Wählen Sie unter Identitätsdomain die Option Dynamische Gruppen aus.
- Befolgen Sie die Anweisungen unter So erstellen Sie eine dynamische Gruppe, und geben Sie der dynamischen Gruppe einen Namen (z.B.
sample-func-dyn-grp). -
Wenn Sie eine Regel für die dynamische Gruppe angeben, geben Sie eine Regel wie die folgende ein, um alle Funktionen in dem Compartment hinzuzufügen, in dem Sie die neue Funktion erstellt haben, zur dynamischen Gruppe:
ALL {resource.type = 'fnfunc', resource.compartment.id = '<compartment-ocid>'}Dabei ist
<compartment-ocid>die OCID des Compartments, in dem Sie die Anwendung erstellt haben.Beispiel:
ALL {resource.type = 'fnfunc', resource.compartment.id = 'ocid1.compartment.oc1..aaaaaaaa23______smwa'} - Wählen Sie Dynamische Gruppe erstellen aus.
- 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 samples-app oci-list-compartments-pythonWenn 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 Sie die in der Datei
README.mdder Funktion angegebenen Voraussetzungen erfüllt haben, gibt die Funktion eine Antwort zurück.Beispiel: Wenn Sie die neue Funktion auf der Beispielfunktion
oci-list-compartments-pythonbasieren und die Funktion einer dynamischen Gruppe hinzugefügt haben (wie zuvor beschrieben), gibt die Funktion wie folgt eine Liste aller Compartments im Mandanten zurück:{"compartments": [["<compartment-ocid>", "<compartment-name>"], ["<compartment-ocid>", "<compartment-name>"]… }
- 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 der Beispielfunktion
oci-list-compartments-pythonbasieren, wird in diesem optionalen Schritt beschrieben, wie Sie die Beispielfunktion anpassen, indem Sie einen Teil des Textes der Meldung ändern, der 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.-
Wählen Sie im Bereich "Codeeditor Oracle Cloud Infrastructure" unter der gerade erstellten Funktion
oci-list-compartments-pythondie Dateifunc.pyaus, und ändern Sie die Zeile:resp = {"compartments": compartments}zum Lesen:
resp = {"compartments in tenancy": compartments} - 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.
Adds-in-tenancy), 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 samples-app -
Rufen Sie im Terminalfenster des Code Editors die Funktion auf, indem Sie Folgendes eingeben:
fn invoke <application-name> <function-name>Beispiel:
fn invoke samples-app oci-list-compartments-pythonDie folgende Meldung wird angezeigt:
{"compartments in tenancy": [["<compartment-ocid>", "<compartment-name>"], ["<compartment-ocid>", "<compartment-name>"]… }
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.
-