Funktionen aktualisieren
Informieren Sie sich über die Aktualisierung von Funktionen.
Wenn Sie zuvor eine Funktionsdefinition auf dem OCI Functions-Server erstellt haben, können Sie einige, aber nicht alle Funktionseigenschaften ändern. Beispiel: Sie können die maximale Zeitdauer ändern, über die eine Funktion ausgeführt werden darf. Den Namen der Funktion können Sie jedoch nicht ändern.
Sie können das Docker-Image ändern, auf dem eine Funktion basiert. Wenn Sie das Image ändern möchten, muss das Ersatzimage für eine Verwendung mit OCI Functions geeignet und bereits in die Docker-Registry übertragen wurde. Mit dem Ersatzimage in der Docker-Registry können Sie anschließend die Definition einer Funktion aktualisieren, sodass sie auf dem Ersatzimage basiert, wie in diesem Thema beschrieben. Falls das Ersatzimage denselben Namen und dasselbe Tag wie das Image hat, auf dem die Funktion ursprünglich basierte, lesen Sie Hinweise zu Image-Digests.
Sie können Funktionen mit der Konsole, der Fn-Projekt-CLI und der API aktualisieren. Siehe Funktion aktualisieren.
Hinweise zu Image-Digests
Images in einer Docker-Registry werden durch Repository, Name und Tag identifiziert. Außerdem gibt Docker jeder Version eines Images einen eindeutigen alphanumerischen Digest. Wenn Sie ein aktualisiertes Docker-Image übertragen, sollten Sie das aktualisierte Image vorzugsweise durch ein neues Tag identifizieren, anstatt ein vorhandenes Tag wiederzuverwenden. Selbst wenn Sie ein aktualisiertes Image übertragen und diesem den Namen und das Tag einer früheren Version geben, hat die neu übertragene Version einen anderen Digest als die frühere Version.
Wenn Sie eine Funktion mit OCI Functions erstellen, geben Sie den Namen und das Tag einer bestimmten Version eines Images an, auf dem die Funktion basieren soll. Um spätere Inkonsistenzen zu vermeiden, zeichnet OCI Functions auch den eindeutigen Digest dieser bestimmten Version des Images auf.
Wenn Sie eine aktualisierte Version eines Images mit demselben Namen und Tag wie die ursprüngliche Version des Images, auf dem eine Funktion basiert, in die Docker-Registry übertragen, verwendet OCI Functions standardmäßig weiterhin den ursprünglichen Digest, um die ursprüngliche Version des Images abzurufen. Dies könnte das gewünschte Verhalten sein. Wenn OCI Functions jedoch die spätere Version des Images abrufen soll, können Sie den Digest, mit dem OCI Functions die abzurufende Version des Images identifiziert, mit einer der folgenden Methoden explizit ändern:
-
Verwenden Sie den Befehl
fn update function
, und geben Sie den Originalnamen und das Originaltag der Version des Images an, auf dem die Funktion basieren soll. Beispiel:fn update function acmeapp acme-func --image phx.ocir.io/ansh81vru1zp/acme-repo/acme-func:0.0.4 --annotation oracle.com/oci/imageDigest=\"\"
OCI Functions aktualisiert den Digest, der für das Image aufgezeichnet wurde, auf dem die Funktion basiert, in den Digest des Images in der Docker-Registry mit dem von Ihnen angegebenen Namen und Tag.
-
Verwenden Sie den Befehl
fn update function
, und geben Sie den Digest der Version des Images an, auf dem die Funktion basieren soll. Beispiel:fn update function acmeapp acme-func –-annotation oracle.com/oci/imageDigest='"sha256:8af7cb8d7______c498c0"'
OCI Functions aktualisiert den Digest, der für das Image aufgezeichnet wurde, auf dem die Funktion basiert, in den von Ihnen angegebenen Digest.
- Wählen Sie in der Konsole auf der Registerkarte Details der Funktion die Option Bearbeiten aus, wählen den ursprünglichen Namen und das ursprüngliche Tag des Images aus der Version des Images, auf dem die Funktion derzeit basiert, und klicken Sie auf Änderungen speichern. OCI Functions aktualisiert den Digest, den für das Image aufgezeichnet wurde, auf dem die Funktion basiert.
- Verwenden Sie die Oracle Cloud Infrastructure-API oder ein Oracle Cloud Infrastructure-SDK (weitere Informationen finden Sie unter REST-APIs und SDKs und die CLI).