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 „ Mit der Erstellung beginnen “.
- 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 „ Funktion “ aus.
- Geben Sie einen Namen für die Funktion ein, zum Beispiel „
myfunction“. Wählen Sie für Ihre Funktion einen Namen, der innerhalb des Projekts eindeutig ist. - Wählen Sie ein Laufzeitimage für Ihren Funktionscode. Weitere Informationen finden Sie unter Laufzeiten.
- Wählen Sie diese Option aus, um Ihren Code als Inline-Code-Bundle anzugeben. 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.
- Sobald der Funktionsstatus auf „Bereit“ wechselt, können Sie die Funktion testen. Klicken Sie auf Testfunktion und anschließend auf Anforderung senden. Um die Funktion auf 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 getbefehl. -
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 updateaktualisieren, um sie an Ihre Anforderungen anzupassen. Wenn Sie Ihre Quelle für die Verwendung mit Ihrer Funktion aktualisieren möchten, müssen Sie die Option „--build-source“ imfunction updateBefehl angeben.
Nachdem Sie Ihre Funktion erstellt haben, können Sie diese sowie den darin referenzierten Code auf eine der folgenden Weisen 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 createerstellt und die Option--build-sourceangegeben 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-clearaus. 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 arbeiten, der sich in einem „ Git “-Repository befindet, können Sie Code Engine nutzen, um das Code-Bundle aus Ihrem Quellcode zu erstellen und Ihre Funktion in einem einzigen Schritt zu generieren. In diesem Szenario lädt Code Engine Ihr Code-Bundle 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, „ Code Engine “ zu verwenden, um Ihren lokalen Quellcode zu erstellen, während Sie die Entwicklung Ihres Quellcodes für die Funktion weiter 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? Schaut euch die Beispiele im Repository „ IBM Cloud Code Engine “ unter GitHub an.