IBM Cloud Docs
Funktionsworkloads mit Inline-Code erstellen

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.

  1. Öffnen Sie die Code Engine-Konsole.
  2. Wählen Sie Los geht's aus.
  3. Funktion auswählen.
  4. 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.
  5. 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.
  6. Wählen Sie ein Laufzeitimage für Ihren Funktionscode. Weitere Informationen finden Sie unter Laufzeiten.
  7. 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.
  8. Geben Sie Ihre Ressourceninformationen an, einschließlich CPU-und Speicherkombinationen und Scale-down-Verzögerung.
  9. Geben Sie optional eine angepasste Domäne oder Umgebungsvariablen an. Sie können diese Optionen später hinzufügen.
  10. Klicken Sie auf Erstellen.
  11. 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.
  12. 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

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 den function 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 beispielsweise ibmcloud 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.