Schnellstart von Functions auf OCI Compute-Instanz

Erfahren Sie, wie Sie mit dieser OCI Functions QuickStart schnell auf einer OCI-Compute-Instanz einrichten und ausführen können.

A. Richten Sie Ihren Mandanten ein

1. Gruppen und Benutzer erstellen

Falls noch keine geeigneten Benutzer und Gruppen vorhanden sind:

  1. Melden Sie sich als Mandantenadministrator bei der Konsole an.
  2. Öffnen Sie das Navigationsmenü , und wählen Sie Identität und Sicherheit aus. Wählen Sie unter Identität die Option Domains aus.
  3. Erstellen Sie eine neue Gruppe, indem Sie Gruppen, Gruppe erstellen auswählen.
    Diese Abbildung zeigt das Dialogfeld "Gruppe erstellen" mit leeren Feldern "Name" und "Beschreibung".
  4. Erstellen Sie einen neuen Benutzer, indem Sie Benutzer, Benutzer erstellen auswählen.
    Diese Abbildung zeigt das Dialogfeld "Benutzer erstellen" mit leeren Feldern "Name", "Beschreibung", "E-Mail" und "E-Mail bestätigen".
  5. Fügen Sie einen Benutzer zu einer Gruppe hinzu, indem Sie Gruppen, den Namen der Gruppe, Benutzer zu Gruppe hinzufügen auswählen.
    Diese Abbildung zeigt das Dialogfeld "Benutzer zu Gruppe hinzufügen" mit einem leeren Feld "Benutzer".

Weitere Informationen finden Sie unter Konfigurationshinweise.

2. Compartment erstellen

Wenn noch kein geeignetes Compartment zum Erstellen von Netzwerkressourcen und OCI Functions-Ressourcen vorhanden ist:

  1. Melden Sie sich als Mandantenadministrator bei der Konsole an.
  2. Öffnen Sie das Navigationsmenü , und wählen Sie Identität und Sicherheit aus. Wählen Sie unter Identität die Option Compartments aus.
  3. Wählen Sie Compartment erstellen aus.
    Diese Abbildung zeigt das Dialogfeld "Compartment erstellen" mit leeren Feldern "Name" und "Beschreibung".

Weitere Informationen finden Sie unter Konfigurationshinweise.

3. VCN und Subnetze erstellen

Wenn noch kein geeignetes VCN zum Erstellen von Netzwerkressourcen vorhanden ist:

  1. Melden Sie sich als Mandantenadministrator bei der Konsole an.
  2. Öffnen Sie das Navigationsmenü , und wählen Sie Networking aus. Wählen Sie dann Virtuelle Cloud-Netzwerke aus.
  3. Wählen Sie VCN-Assistenten starten aus, um ein neues VCN zu erstellen.
  4. Wählen Sie im Dialogfeld VCN-Assistenten starten die Option VCN mit Internetverbindung aus, und wählen Sie VCN-Assistenten starten aus.
    Diese Abbildung zeigt das Dialogfeld "VCN-Assistenten starten", in dem die Option "VCN mit Internetverbindung erstellen" ausgewählt ist.
  5. Geben Sie einen Namen für das neue VCN ein, wählen Sie Weiter aus, und wählen Sie Erstellen aus, um das VCN zusammen mit den zugehörigen Netzwerkressourcen zu erstellen.

Weitere Informationen finden Sie unter Konfigurationshinweise.

4. Policy für Gruppe und Service erstellen

Wenn mindestens ein OCI Functions-Benutzer kein Mandantenadministrator ist:

  1. Melden Sie sich als Mandantenadministrator bei der Konsole an.
  2. Öffnen Sie das Navigationsmenü , und wählen Sie Identität und Sicherheit aus. Wählen Sie unter Identität die Option Policys aus.
  3. Wählen Sie Policy erstellen aus, geben Sie einen Namen und eine Beschreibung für die neue Policy an, und wählen Sie das Root Compartment des Mandanten aus.

  4. Erstellen Sie die Policy mit Policy Builder. Wählen Sie in der Liste der Policy-Anwendungsfälle die Option Funktionen aus, und basieren Sie die Policy auf der Policy-Vorlage Erstellen, Bereitstellen und Verwalten von Funktionen und Anwendungen durch Benutzer zulassen.

    Diese Abbildung zeigt das Dialogfeld "Policy erstellen" mit leeren Feldern "Name", "Beschreibung" und "Compartment". Die Vorlage "Erstellen, Bereitstellen und Verwalten von Funktionen und Anwendungen mit Cloud Shell durch Benutzer zulassen" wird im Feld "Allgemeine Policy-Vorlagen" angezeigt. Einige der Policy-Anweisungen werden angezeigt.

    Die Policy-Vorlage umfasst die folgenden Policy-Anweisungen:

    • Allow group <group-name> to use cloud-shell in tenancy
    • Gruppe <group-name> das Verwalten von Repositorys im Mandanten erlauben
    • Allow group <group-name> to read objectstorage-namespaces in tenancy
    • Allow group <group-name> to manage logging-family in tenancy
    • Allow group <group-name> to read metrics in tenancy
    • Allow group <group-name> to manage functions-family in tenancy
    • Allow group <group-name> to use virtual-network-family in tenancy
    • Allow group <group-name> to use apm-domains in tenancy
    • Allow group <group-name> to read vaults in tenancy
    • Allow group <group-name> to use keys in tenancy
    • Allow service faas to use apm-domains in tenancy
    • Allow service faas to read repos in tenancy where request.operation='ListContainerImageSignatures'
    • Allow service faas to {KEY_READ} in tenancy where request.operation='GetKeyVersion'
    • Allow service faas to {KEY_VERIFY} in tenancy where request.operation='Verify'

    Bei Bedarf können Sie diese Policy-Anweisungen nach Compartment einschränken.

Weitere Informationen finden Sie unter Konfigurationshinweise.

B. Anwendung erstellen

1. Erstellen Sie Ihre erste Anwendung
  1. Melden Sie sich als Funktionsentwickler in der Konsole an.
  2. Öffnen Sie das Navigationsmenü , und wählen Sie Entwicklerservices aus. Wählen Sie unter Funktionen die Option Anwendungen aus.
  3. Wählen Sie die Region aus, die Sie mit OCI Functions verwenden.
  4. Klicken Sie auf Anwendung erstellen.
    Diese Abbildung zeigt das Dialogfeld "Neue Anwendung" mit leeren Feldern für Name, VCN und Subnetze.
  5. Geben Sie Folgendes an:
    • helloworld-app als Name für die neue Anwendung. Sie stellen Ihre erste Funktion in dieser Anwendung bereit und geben diese Anwendung beim Aufrufen der Funktion an.
    • Das VCN und das Subnetz, in denen die Funktion ausgeführt werden soll. Beachten Sie, dass für ein öffentliches Subnetz ein Internetgateway im VCN erforderlich ist und für ein privates Subnetz ein Servicegateway im VCN erforderlich ist.
  6. Wählen Sie Erstellen.

Weitere Informationen finden Sie in detaillierte Anweisungen.

C. OCI-Compute-Instanz einrichten

1. Instanz erstellen und OCID abrufen
  1. Melden Sie sich als Mandantenadministrator bei der Konsole an.
  2. Öffnen Sie das Navigationsmenü , und wählen Sie Compute aus. Wählen Sie unter Compute die Option Instanzen aus.
  3. Wählen Sie das Compartment aus, in dem Netzwerkressourcen und OCI Functions-Ressourcen erstellt werden sollen.
  4. Wenn noch keine geeignete Compute-Instanz im Compartment vorhanden ist, wählen Sie Instanz erstellen aus, und gehen Sie wie folgt vor:
    • Compartment, VCN und Subnetze zur Verwendung mit OCI Functions auswählen
    • angeben, dass der neuen Compute-Instanz eine öffentliche IP-Adresse zugewiesen werden soll
    • Wählen Sie die Datei mit dem SSH-Schlüssel für den Zugriff auf die neue Compute-Instanz aus
  5. Kopieren Sie auf der Seite Instanzdetails die OCID und die öffentliche IP-Adresse der Compute-Instanz, die als Entwicklungsumgebung verwendet werden soll.

Weitere Informationen finden Sie unter Instanz erstellen.

2. Dynamische Gruppe erstellen

Erstellen Sie eine neue dynamische Gruppe, um die Compute-Instanz aufzunehmen:

  1. Ö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.
  2. Erstellen Sie eine neue dynamische Gruppe.
  3. Geben Sie eine Regel ein, die die OCID der Compute-Instanz enthält:

    ANY {instance.id = '<instance-ocid>'}

Weitere Informationen finden Sie unter Dynamische Gruppen verwalten.

3. Policy für dynamische Gruppe erstellen

Erstellen Sie eine Policy, um der neuen dynamischen Gruppe Zugriff auf Funktionsressourcen, Netzwerkressourcen und Oracle Cloud Infrastructure Registry zu erteilen:

  1. Öffnen Sie das Navigationsmenü , und wählen Sie Identität und Sicherheit aus. Wählen Sie unter Identität die Option Policys aus.
  2. Wählen Sie Policy erstellen aus, und erstellen Sie mit dem manuellen Editor von Policy Builder eine neue Policy mit den folgenden Policy-Anweisungen:

    • Allow dynamic-group <dynamic-group-name> to manage functions-family in compartment <compartment-name>
    • Allow dynamic-group <dynamic-group-name> to use virtual-network-family in compartment <compartment-name>
    • Allow dynamic-group <dynamic-group-name> to read repos in tenancy

Weitere Informationen finden Sie unter Policys verwalten.

D. Richten Sie Ihre OCI Compute-Instanz-Entwicklungsumgebung ein

1. Docker installieren und starten

In einem Terminalfenster in Ihrer Entwicklungsumgebung:

  1. Bestätigen Sie die Installation von Docker, indem Sie Folgendes eingeben:
    docker version

    Wenn eine Fehlermeldung angezeigt wird, die besagt, dass Docker nicht installiert ist, müssen Sie Docker installieren, bevor Sie fortfahren. Informationen zu Ihrer Plattform finden Sie in der Docker-Dokumentation (Oracle Linux finden Sie hier).

    Wenn Docker installiert ist, gehen Sie zum Abschnitt "Prerequisites" der Fn-Projekthomepage auf GitHub, und bestätigen Sie, dass die installierte Version von Docker mindestens die dort angegebene Mindestversion ist. Falls nicht, installieren Sie Docker neu, bevor Sie fortfahren.

  2. Starten Sie das standardmäßige Docker-Image "hello-world" als Container, um zu bestätigen, dass Docker ausgeführt wird, indem Sie Folgendes eingeben:
    docker run hello-world

    Wenn eine Fehlermeldung angezeigt wird, die besagt, dass Docker nicht ausgeführt wird, müssen Sie den Docker-Daemon starten, bevor Sie fortfahren. Weitere Informationen finden Sie in der Docker-Dokumentation.

Weitere Informationen finden Sie unter Konfigurationshinweise.

2. Fn-ProjektCLI installieren

In einem Terminalfenster in Ihrer Entwicklungsumgebung:

  1. Installieren Sie die Fn-Projekt-CLI mit den entsprechenden Anweisungen unten für Ihre Umgebung:
    • Linux oder MacOS: Geben Sie Folgendes ein:
      curl -LSs https://raw.githubusercontent.com/fnproject/cli/master/install | sh
    • MacOS mit Homebrew: Geben Sie Folgendes ein:
      brew update && brew install fn
    • Windows: Befolgen Sie die Anweisungen unter Fn-Client auf GitHub installieren.
    • Linux, MacOS oder Windows: Laden Sie die Binärdatei von der Seite Fn-Projektreleases auf GitHub herunter, und führen Sie sie aus.
  2. Prüfen Sie, ob die Fn-Projekt-CLI installiert wurde, indem Sie Folgendes eingeben:
    fn version

Weitere Informationen finden Sie unter Konfigurationshinweise.

3. Fn-Projekt-CLI-Kontextprovider einrichten -oracle-ip

In einem Terminalfenster in Ihrer Entwicklungsumgebung:

  1. Erstellen Sie einen neuen Fn-Projekt-CLI-Kontext, indem Sie Folgendes eingeben:
    fn create context <my-context> --provider oracle-ip

    Beachten Sie, dass Sie --provider oracle-ip angeben, um die Authentifizierung und Autorisierung mit Instanz-OCIDs, dynamischen Gruppen und Policys, die diesen dynamischen Gruppen Berechtigungen erteilen, zu aktivieren.

  2. Geben Sie an, dass die Fn-Projekt-CLI den neuen Kontext verwenden soll. Geben Sie dazu Sie Folgendes ein:
    fn use context <my-context>

Weitere Informationen finden Sie unter Konfigurationshinweise.

4. Vollständige Fn-Projekt-CLI-Kontextkonfiguration

In einem Terminalfenster in Ihrer Entwicklungsumgebung:

  1. Konfigurieren Sie den neuen Fn-Projekt-CLI-Kontext mit der OCID des Compartments, für das Sie bereitgestellte Funktionen besitzen möchten
    fn update context oracle.compartment-id <compartment-ocid>
  2. Konfigurieren Sie den neuen Kontext mit dem API-URL-Endpunkt, der beim Aufrufen der OCI-API verwendet werden soll. Geben Sie dazu Folgendes ein:
    fn update context api-url <api-endpoint>

    Dabei ist <api-endpoint> einer der Endpunkte in der Liste der Functions-Endpunkte in der Functions-API im Format https://functions.<region-identifier>.oci.oraclecloud.com. Beispiel:

    fn update context api-url https://functions.us-phoenix-1.oci.oraclecloud.com
  3. Konfigurieren Sie den Fn-Projekt-CLI-Kontext mit der Oracle Cloud Infrastructure Registry-Adresse in der aktuellen Region und dem aktuellen Mandanten, die Sie mit OCI Functions verwenden möchten:

    fn update context registry <region-key>.ocir.io/<tenancy-namespace>/<repo-name-prefix>

    Dabei ist <repo-name-prefix> ein Präfix Ihrer Wahl für das Oracle Cloud Infrastructure Registry-Repository, in dem Images für die Funktion gespeichert werden sollen. Beispiel:

    fn update context registry phx.ocir.io/ansh81vru1zp/acme-repo
  4. Konfigurieren Sie den Fn-Projekt-CLI-Kontext mit der OCID des Compartments für Repositorys, an die und von denen OCI Functions Funktionsimages übertragen und abrufen soll, indem Sie Folgendes eingeben:

    fn update context oracle.image-compartment-id <compartment-ocid>

    Beispiel:

    fn update context oracle.image-compartment-id ocid1.compartment.oc1..aaaaaaaaquqe______z2q

    Wenn Sie keinen Wert für oracle.image-compartment-id angeben, überträgt und ruft OCI Functions Images in und aus Repositorys im Root Compartment ab.

Weitere Informationen finden Sie unter Konfigurationshinweise.

5. Generieren Sie das Authentifizierungstoken
  1. Melden Sie sich als Funktionsentwickler in der Konsole an.
  2. Wählen Sie im Navigationsmenü das Menü Profil Symbol für Profilmenü aus, und wählen Sie je nach der angezeigten Option Benutzereinstellungen oder Mein Profil aus.
  3. Wählen Sie auf der Seite Authentifizierungstoken die Option Token generieren aus.
  4. Geben Sie im Dialogfeld Token generieren eine aussagekräftige Beschreibung für das Authentifizierungstoken ein, und wählen Sie Token generieren aus. Das neue Authentifizierungstoken wird angezeigt.
  5. Kopieren Sie das Authentifizierungstoken sofort in einen sicheren Speicherort, aus dem Sie es später abrufen können, da das Authentifizierungstoken nicht mehr in der Konsole angezeigt wird.
  6. Schließen Sie das Dialogfeld Token generieren.

Weitere Informationen finden Sie unter Konfigurationshinweise.

6. Bei Registrierung anmelden

In einem Terminalfenster in Ihrer Entwicklungsumgebung:

  1. Geben Sie folgenden Befehl ein:

    docker login -u '<tenancy-namespace>/<user-name>' <region-key>.ocir.io

    Beispiel:

    docker login -u 'ansh81vru1zp/jdoe@acme.com' phx.ocir.io

    Wenn Ihr Mandant mit Oracle Identity Cloud Service föderiert wird, unterscheidet sich das Format geringfügig. Beispiel:

    docker login -u 'ansh81vru1zp/oracleidentitycloudservice/jdoe@acme.com' phx.ocir.io
  2. Wenn Sie zur Eingabe eines Kennworts aufgefordert werden, geben Sie das Oracle Cloud Infrastructure-Authentifizierungstoken ein, das Sie zuvor erstellt und kopiert haben. Beispiel: 6aN...6MqX

    Sie können jetzt mit dem Erstellen, Bereitstellen und Aufrufen von Funktionen beginnen.

Weitere Informationen finden Sie unter Konfigurationshinweise.

E. Erstellen Sie Ihre Funktion, stellen Sie sie bereit, und rufen Sie sie auf

1. Erstellen Sie Ihre erste Funktion

Im Terminalfenster:

  1. Erstellen Sie eine helloworld-java-Funktion, indem Sie Folgendes eingeben:

    fn init --runtime java hello-java

    Es wird ein Verzeichnis namens hello-java erstellt, das Folgendes enthält:

    • eine Funktionsdefinitionsdatei mit dem Namen func.yaml
    • ein/src-Verzeichnis mit Quelldateien und Verzeichnissen für die helloworld-Funktion
    • eine Maven-Konfigurationsdatei mit dem Namen pom.xml, in der die zum Kompilieren der Funktion erforderlichen Abhängigkeiten angegeben sind

    Java ist nur eine von mehreren unterstützten Sprachen.

    Weitere Informationen finden Sie in detaillierte Anweisungen.

2. Erste Funktion bereitstellen

Im Terminalfenster:

  1. Wechseln Sie in das im vorherigen Schritt erstellte Verzeichnis hello-java:
    cd hello-java
  2. Geben Sie den folgenden einzelnen Fn-Projektbefehl ein, um die Funktion und ihre Abhängigkeiten als Docker-Image mit dem Namen "hello-java" zu erstellen, das Image in die angegebene Docker-Registry zu übertragen und die Funktion in OCI Functions in der zuvor erstellten Anwendung "helloworld-app" bereitzustellen:
    fn -v deploy --app helloworld-app
  3. (Optional) Bestätigen Sie, dass die Funktion in OCI Functions bereitgestellt wurde, indem Sie auf der Detailseite für die helloworld-app-Anwendung unter Ressourcen die Option Funktionen auswählen und feststellen, dass die hello-java-Funktion jetzt angezeigt wird.

Weitere Informationen finden Sie in detaillierte Anweisungen.

3. Rufen Sie die erste Funktion auf

Im Terminalfenster:

  1. Rufen Sie die hello-java-Funktion auf, indem Sie Folgendes eingeben:

    fn invoke helloworld-app hello-java

    Die Meldung "Hello world!" wird angezeigt.

  2. Rufen Sie die hello-java-Funktion mit dem Parameter 'John' auf, indem Sie Folgendes eingeben:

    echo -n 'John' | fn invoke helloworld-app hello-java

    Die Meldung "Hello John!" wird angezeigt.

Herzlichen Glückwunsch! Sie haben gerade Ihre erste Funktion mit OCI Functions erstellt, bereitgestellt und aufgerufen.

Weitere Informationen finden Sie in detaillierte Anweisungen.

4. Nächste Schritte

Nachdem Sie eine Funktion erstellt, bereitgestellt und aufgerufen haben, lernen Sie Folgendes:

Sie sind fertig!