Durchführung einer Veranstaltung aus lokaler Quelle
Mit diesem Tutorial führen Sie eine Funktion mit der Code Engine CLI aus dem Code auf Ihrem lokalen System aus
Eine Funktion ist ein zustandsloser Codeausschnitt, der Aufgaben ausführt, wenn er durch HTTP-Anfragen aufgerufen wird. Mit den Funktionen von IBM Code Engine können Sie Ihre Geschäftslogik auf skalierbare und serverlose Weise ausführen. IBM Code Engine funktionen bieten eine optimierte Laufzeitumgebung zur Unterstützung von Szenarien mit geringer Latenz und schneller Skalierung. Ihr Funktionscode kann in einer verwalteten Laufzeitumgebung geschrieben werden, die spezifische Node.js- oder Python-Vers ionen enthält.
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).
Vorbereitende Schritte
- Konfigurieren Sie die Umgebung der Code Engine-Befehlszeilenschnittstelle.
- Erstellen Sie ein Projekt und arbeiten Sie damit.
Alle Code Engine-Benutzer müssen über ein nutzungsabhängiges Konto verfügen. Für Tutorien können Kosten anfallen. Verwenden Sie den Cost Estimator, um einen Kostenvoranschlag auf der Grundlage Ihrer voraussichtlichen Nutzung zu erstellen. Weitere Informationen finden Sie unter Preisstruktur fürCode Engine.
Umgebung einrichten
-
Melden Sie sich bei der IBM Cloud-CLI an.
ibmcloud login -r us-south -
Führen Sie den folgenden Befehl aus, um eine Ressourcengruppe als Ziel festzulegen. Um eine Liste Ihrer Ressourcengruppen zu sehen, führen Sie
ibmcloud resource groups.ibmcloud target -g <resource_group>Beispielausgabe
Targeted resource group default -
Erstellen Sie in Code Engine ein Projekt namens
sample.ibmcloud ce project create --name sampleBeispielausgabe
Creating project 'sample'... ID for project 'sample' is 'abcdabcd-abcd-abcd-abcd-abcd12e3456f7'. Waiting for project 'sample' to be active... Now selecting project 'sample'. OKBeachten Sie, dass Ihr Projekt auch für den Kontext ausgewählt ist, sodass alle nachfolgenden anwendungsbezogenen Befehle im Geltungsbereich dieses neuen
sample-Projekts liegen. -
Machen Sie sich mit Funktionsbefehlen vertraut, indem Sie die Befehlsoptionen anzeigen.
ibmcloud ce fn --help
Quellcode erstellen
Erstellen Sie eine Node.js-Quellendatei namens funhello.js mit dem folgenden Beispielcode.
function main(params) {
var msg = 'You did not tell me who you are.';
if (params.name) {
msg = `Hello, ${params.name}!`
} else {
msg = `Hello, Functions on CodeEngine!`
}
return {
headers: { 'Content-Type': 'text/html; charset=utf-8' },
body: `<html><body><h3>${msg}</h3></body></html>`
}
}
module.exports.main = main;
Erstellen Sie Ihre Funktion
Erstellen Sie die Funktion aus der Datei funhello.js.
ibmcloud ce fn create --name funhello --runtime nodejs --build-source funhello.js
Befehlsausgabe
Preparing function 'funhello' for build push...
Creating function 'funhello'...
Packaging files to upload from source path 'hello.js'...
Submitting build run 'funhello-run-230623-090738611'...
Creating image 'private.stg.icr.io/ce--8a6a0-13c66hbi3rhz/function-funhello:230623-1407-s8kzr'...
Waiting for build run to complete...
Build run status: 'Running'
Build run completed successfully.
Run 'ibmcloud ce buildrun get -n funhello-run-230623-090738611' to check the build run status.
Waiting for function 'funhello' to become ready...
Function 'funhello' is ready.
OK
Run 'ibmcloud ce function get -n funhello' to see more details.
https://funhello.13c66hbi3rhz.us-south.codeengine.appdomain.cloud
Nachdem die Funktionsaufruf URL verfügbar ist, verwenden Sie den folgenden Befehl, um Informationen über die Funktion zu finden.
ibmcloud ce fn get -n funhello
Sehen wir uns den vorherigen Befehl function create genauer an. Beachten Sie, dass die Ausgabe des Befehls function create befehls Informationen über den Verlauf des Build-Laufs liefert,
bevor die Funktion erstellt und bereitgestellt wird.
- Code Engine empfängt eine Anforderung zum Erstellen einer Funktion aus Quellcode.
- Code Engine sucht nach einer IAM-Service-ID und einem API-Schlüssel, die mit dem ausgewählten Projekt verknüpft sind. Diese Service-ID muss zum Lesen und Schreiben auf IBM Cloud Container Registry berechtigt sein. Wenn keine Service-ID vorhanden ist, erstellt Code Engine eine ID für Sie. Beachten Sie, dass diese Service-ID für nachfolgende Code Engine-Build-Anforderungen verwendet wird, die von demselben Projekt ausgeführt werden.
- In diesem Beispiel wird Code aus einer lokalen Quelle (
--build-source) erstellt. Der Quellcode (hello.js) wird in eine Code-Bundle-Datei gepackt und in einen verwalteten Namespace innerhalb der Instanz IBM Cloud Container Registry in Ihrem Konto hochgeladen. Beachten Sie, dass Sie nur IBM Cloud Container Registry für Ihre lokalen Builds verwenden können. Weitere Informationen über IBM Container Registry, einschließlich Informationen über Kontingentgrenzen und Zugriff, finden Sie unter Erste Schritte mit IBM Cloud Container Registry. - Code Engine erstellt Ihren Quellcode in einem Codepaket. Das Quellcode-Bundle wird im gleichen Namensraum wie Ihre Quellarchivdatei erstellt.
- Nach Abschluss des Builds wird Ihre Funktion bereitgestellt. Sie können Ihre Funktion über die bereitgestellte URL aufrufen.
Funktion aufrufen
Rufen Sie die Funktion URL auf, indem Sie sie in ein Browserfenster einfügen. Sie können auch den Befehl curl in der Befehlszeile verwenden.
Hello, Functions on CodeEngine!
Sie haben erfolgreich eine Funktion Code Engine erstellt und aufgerufen!
Geben Sie Parameter für Ihre Funktion an
Rufen Sie die Funktion URL mit einem Parameter auf, indem Sie ?name=Sunshine an das Ende von URL anhängen und in ein Browserfenster einfügen.
https://funhello.13c66hbi3rhz.us-south.codeengine.appdomain.cloud?name=Sunshine
Hello, Sunshine!
Bereinigen
Sie können Ihre Funktion mit dem folgenden Befehl löschen:
ibmcloud ce fn delete -n funhello
Wenn Sie Ihre Funktion löschen, werden auch die zugehörigen Build-Dateien gelöscht.
Löschen Sie abschließend das Code-Bundle, das der Build von IBM Cloud Container Registry erstellt hat.
- Navigieren Sie zu Container Registry> Bilder im IBM Cloud Konsole.
- Wählen Sie die Region im Standort Dropdown-Menü, das Sie bei der Anmeldung ausgewählt haben IBM Cloud.
- Suchen Sie nach dem Namen Ihrer Funktion (z. B.
funhello). - Wählen Sie das Bild aus (z. B.
au.icr.io/ce--27b98-1jp42v8n9n3o/function-funhello@sha256:b53683f47e0e548b4fa1d3fc93404399fdc4008b54ccecc0852794ea88d01538) und wählen Sie Löschen aus dem Auslassungsmenü (...).
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 Ihren Quelltext aktualisieren wollen, um ihn mit Ihrer Funktion zu verwenden, müssen Sie die Option--build-sourcefür denfunction updatebefehl 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 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 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.