Funktionsworkloads mit Inline-Code erstellen
Sie können Ihre Funktion mit Inline-Code erstellen. Ihr Code wird mit Ihrer Funktion gespeichert. Sie können diesen Funktionstyp über die Konsole oder über die Befehlszeilenschnittstelle erstellen.
Ein Codepaket ist eine Sammlung von Dateien, die Ihren Funktionscode darstellt. Dieses Codepaket wird in den Laufzeitcontainer eingefügt. Ihr Code-Bundle wird von Code Engine erstellt und in der Container-Registry oder in der Funktion gespeichert. Ein Codepaket ist kein OCI-Standard-Container-Image (Open Container Initiative).
Funktion mit integrierter Konsole erstellen
Erstellen Sie über die Konsole eine Funktion mit Inline-Code.
- Öffnen Sie die Code Engine-Konsole.
- Wählen Sie Los geht's aus.
- Funktion auswählen.
- Geben Sie einen Namen für die Funktion ein, z. B.
myfunction
. Verwenden Sie einen Namen für Ihre Funktion, der innerhalb des Projekts eindeutig ist. - Wählen Sie ein Projekt aus der Liste der verfügbaren Projekte aus. Sie können auch ein neues erstellen. Sie müssen ein Projekt auswählen, um eine Funktion zu erstellen.
- Wählen Sie ein Laufzeitimage für Ihren Funktionscode. Weitere Informationen finden Sie unter Laufzeiten.
- Markieren Sie das Kontrollkästchen Code als Inline-Code-Bündel angeben. Wenn Sie diese Option auswählen, wird Ihre Funktion mit einem Beispielcodepaket für die ausgewählte Laufzeit erstellt. Sie können den Mustercode nach der Erstellung der Funktion bearbeiten. Das Codepaket wird online mit der Funktion gespeichert.
- Geben Sie Ihre Ressourceninformationen an, einschließlich CPU-und Speicherkombinationen und Scale-down-Verzögerung.
- Geben Sie optional eine angepasste Domäne oder Umgebungsvariablen an. Sie können diese Optionen später hinzufügen.
- Klicken Sie auf Erstellen.
- Wenn der Funktionsstatus auf Bereit wechselt, können Sie die Funktion testen. Klicken Sie auf Testfunktion und anschließend auf Anforderung senden. Um die Funktion in einer Webseite zu öffnen, klicken Sie auf Funktion URL.
- Sie können Ihren Funktionscode auch im Editorfenster ändern. Wenn Sie Ihre Funktion erneut implementieren, wird der Code inline gespeichert.
Sie können Ihre Funktion aufrufen, indem Sie auf Funktion testen und anschließend auf Anforderung senden klicken.
Sie können den Code abrufen, der zum Erstellen einer integrierten Funktion verwendet wurde, indem Sie den Befehl function get
mit den Optionen --save
ausführen. Zum Beispiel ibmcloud ce function get --name myfunction --save hellofun2.js
.
Funktion mit Inline-Code über die Befehlszeilenschnittstelle erstellen
Erstellen Sie mithilfe des Befehls ibmcloud ce function create
eine Funktion mit Inline-Code über die CLI. Eine vollständige Liste der Optionen finden Sie unter dem ibmcloud ce function create
befehl.
Vorbereitende Schritte
- Konfigurieren Sie die Umgebung der Code Engine-Befehlszeilenschnittstelle.
- Erstellen Sie ein Projekt und arbeiten Sie damit.
In diesem Beispiel wird eine Codedatei mit dem Namen main.js
verwendet. Sie können den folgenden Beispielcode verwenden, um Ihre Datei main.js
zu erstellen, oder Sie können Ihren eigenen Code ersetzen.
/**
* The `main` function is the entry-point into the function.
* It has one optional argument, which carries all the
* parameters the function was invoked with.
*/
async function main(params) {
// log environment variables available to the function
console.log(process.env);
// log Code Engine system headers available to the function
console.log(params.__ce_headers);
// log all parameters for debugging purposes
console.log("params: "+params);
// since functions are invoked through http(s), we return an HTTP response
return {
statusCode: 200,
headers: { 'Content-Type': 'application/json' },
body: params };
}
// this step is necessary, if you gave your main function a different name
// we include it here for documentation purposes only
module.exports.main = main;
Erstellen Sie Ihre Funktion und schließen Sie den Code in den Befehl ein. Verwenden Sie beispielsweise den Befehl ibmcloud ce function create
,
um die Funktion myhellofun
zu erstellen.
ibmcloud ce fn create --name myhellofun --inline-code main.js --runtime nodejs
Beispielausgabe
Creating function 'myhellofun'...
OK
Run 'ibmcloud ce function get -n myhellofun' to see more details.
https://myhellofun.glxo4kabcde.us-south.codeengine.appdomain.cloud
Sie können den Code speichern, der zum Erstellen einer integrierten Funktion verwendet wurde, indem Sie den Befehl function get
mit den Optionen --save
ausführen. Zum Beispiel ibmcloud ce function get --name myhellofun --save hellofun2.js
.
Nächste Schritte
-
Nachdem Ihre Funktion erstellt wurde, können Sie auf Ihre Funktion zugreifen, indem Sie in der Konsole auf "Funktion testen" klicken oder die URL für Ihre Funktion mit dem
function get
befehl. -
Sie können eine angepasste Domänenzuordnung erstellen und sie Ihrer Funktion zuordnen.
-
Nach der Erstellung und Implementierung Ihrer Funktion können Sie die Funktion über die Konsole oder mit dem Befehl
ibmcloud ce function update
aktualisieren, um sie an Ihre Anforderungen anzupassen. Wenn Sie Ihren Quelltext aktualisieren wollen, um ihn mit Ihrer Funktion zu verwenden, müssen Sie die Option--build-source
für denfunction update
befehl angeben.
Nachdem Ihre Funktion erstellt wurde, können Sie Ihre Funktion und den referenzierten Code auf eine der folgenden Arten aktualisieren, unabhängig davon, wie Sie Ihre Funktion erstellt oder zuvor aktualisiert haben:
-
Wenn Sie über ein vorhandenes Code-Bundle verfügen, müssen Sie nur einen Verweis auf das Image angeben, der auf die Position Ihrer Container-Registry verweist, wenn Sie Ihre App implementieren. Weitere Informationen finden Sie unter Funktionsworkloads aus vorhandenen Code-Bundles erstellen.
Wenn Sie Ihre Funktion mit dem Befehl
function create
erstellt und die Option--build-source
angegeben haben, um das Codepaket aus einer lokalen Quelle oder einer Repository-Quelle zu erstellen, und Sie Ihre Funktion so ändern möchten, dass sie auf ein anderes Codepaket verweist, müssen Sie zuerst die Zuordnung des Builds aus Ihrer Funktion entfernen. Führen Sie beispielsweiseibmcloud ce function update -n FUN_NAME --build-clear
aus. Nachdem Sie die Zuordnung des Builds zu Ihrer Funktion entfernt haben, können Sie die Funktion aktualisieren, um auf ein anderes Image zu verweisen. -
Wenn Sie mit Quellcode beginnen, der sich in einem Git Repository befindet, können Sie Code Engine beauftragen, das Code-Bündel aus Ihren Quellen zu erstellen und Ihre Funktion mit einem einzigen Vorgang zu erzeugen. In diesem Szenario lädt Code Engine Ihr Code-Bündel auf IBM Cloud® Container Registry hoch. Weitere Informationen finden Sie unter Funktion aus Repository-Quellcode erstellen.
-
Wenn Sie mit Quellcode beginnen, der sich auf einer lokalen Workstation befindet, können Sie für Code Engine auswählen, das Code-Bundle aus Ihrer Quelle zu erstellen und Ihre Funktion mit einem einzelnen CLI-Befehl zu erstellen. In diesem Szenario lädt Code Engine Ihren Quellcode und Ihr Codepaket in IBM Cloud® Container Registryhoch.
Sie könnten sich beispielsweise dafür entscheiden, dass Code Engine Ihren lokalen Quellcode erstellt, während Sie die Entwicklung Ihres Quellcodes für die Funktion vorantreiben. Nachdem das Codepaket ausgereift ist, können Sie Ihre Funktion so aktualisieren, dass sie auf das gewünschte Codepaket verweist. Sie können diesen Prozess nach Bedarf wiederholen.
Benötigen Sie weitere Codebeispiele? Sehen Sie sich die Beispiele für IBM Cloud Code Engine GitHub repoan.