App aktualisieren
Eine Anwendung weist mindestens eine Revision auf. Eine Revision stellt eine unveränderliche Version der Konfigurationseigenschaften der Anwendung dar. Bei jeder Aktualisierung einer Konfigurationseigenschaft der Anwendung wird eine neue Revision der Anwendung erstellt.
Wenn Sie eine Anwendung ändern und mit den Änderungen implementieren oder die Anwendung ohne Änderungen an ihren Konfigurationseinstellungen erneut implementieren, implementieren diese Aktionen eine neue Überarbeitung der Anwendung. Wenn Sie eine Anwendungsrevision bereitstellen (oder erneut bereitstellen), verwendet Code Engine alle geänderten Konfigurationseinstellungen und ruft alle aktualisierten Container-Images, geheimen Schlüssel oder Konfigurationszuordnungen ab, die von der Anwendung referenziert werden.
Weitere Informationen zur Bereitstellung von Anwendungen, wie z. B. die Angabe von gültigen vCPU-und Speicherkombinationen, die Definition von Befehlen und Argumenten, Umgebungsvariablen, geheimen Schlüsseln oder Konfigurationszuordnungen, finden Sie unter Optionen für die Bereitstellung einer Anwendung.
Code Engine hat eine Quote für die Anzahl der Apps und App-Revisionen in einem Projekt. Weitere Informationen zu Grenzwerten für Projekte finden Sie unter Projektkontingente. Code Engine behält nur die letzte inaktive Revision Ihrer Anwendung zusätzlich zu Ihrer aktiven App-Revision bei. Ältere Revisionen werden gelöscht.
Sie können Ihre bereitgestellte App aktualisieren und den zugehörigen referenzierten Code auf irgendeine der folgenden Arten verwenden, unabhängig davon, wie Sie Ihre App erstellt oder zuvor aktualisiert haben:
-
Wenn Sie ein Container-Image gemäß dem Standard Open Container Initiative(OCI)haben, müssen Sie nur einen Verweis auf das Image angeben, der auf die Position Ihrer Container-Registry verweist, wenn Sie Ihre App bereitstellen. Sie können Ihre App mit einem Image in einer öffentlichen Registry oder privaten Registry bereitstellen.
Wenn Sie Ihre App mit dem Befehl
app create
erstellt und die Option--build-source
angegeben haben, um das Container-Image aus einer lokalen Quelle oder einer Repository-Quelle zu erstellen, und Sie Ihre App so ändern wollen, dass sie auf ein anderes Container-Image verweist, müssen Sie zuerst die Zuordnung des Builds aus Ihrer App entfernen. Führen Sie beispielsweiseibmcloud ce application update -n APP_NAME --build-clear
aus. Nachdem Sie die Zuordnung des Builds aus Ihrer App entfernt haben, können Sie die App aktualisieren, sodass sie auf ein anderes Image verweist. -
Wenn Sie mit Quellcode beginnen, der sich in einem Git-Repository befindet, können Sie es Code Engine überlassen, das Image aus Ihrer Quelle zu erstellen und die App mit einer einzigen Operation bereitzustellen. In diesem Szenario lädt Code Engine Ihr Image in IBM Cloud® Container Registry hoch. Weitere Informationen finden Sie unter App aus Repository-Quellcode bereitstellen. Wenn Sie mehr Kontrolle über den Build Ihres Image wünschen, können Sie das Image mit Code Engine erstellen, bevor Sie Ihre App implementieren.
-
Wenn Sie mit Quellcode beginnen, der sich auf einer lokalen Workstation befindet, können Sie es Code Engine überlassen, das Image aus Ihrer Quelle zu erstellen und die App mit einem einzelnen CLI-Befehl bereitzustellen. In diesem Szenario lädt Code Engine Ihr Image in IBM Cloud® Container Registry hoch. Weitere Informationen finden Sie unter App aus lokalem Quellcode über die CLI bereitstellen. Wenn Sie mehr Kontrolle über den Build Ihres Image wünschen, können Sie das Image mit Code Engine erstellen, bevor Sie Ihre App implementieren.
Sie könnten beispielsweise festlegen, dass Code Engine den Build Ihrer lokalen Quelle handhaben soll, während Sie Ihre Quelle für die App weiterentwickeln. Nachdem das Image ausgereift ist, können Sie die bereitgestellte App aktualisieren, um auf das gewünschte Image zu verweisen. Sie können diesen Prozess nach Bedarf wiederholen.
Wenn Sie Ihre aktualisierte App bereitstellen, wird die neueste Version Ihres referenzierten Container-Image heruntergeladen und bereitgestellt, sofern kein Tag für das Image angegeben ist. Wenn ein Tag für das Image angegeben wird, wird das mit Tags versehene Image für die Implementierung verwendet.
Was ist, wenn ich meine Anwendung erneut implementieren möchte, ohne die Konfigurationseinstellungen zu ändern?
Sie können Ihre Anwendung jederzeit mit Konfigurationsänderungen bereitstellen, indem Sie einen Konfigurationswert ändern und die Anwendung implementieren.
Es kann jedoch sinnvoll sein, eine Anwendungsüberarbeitung erneut zu implementieren, ohne Ihre Anwendungskonfigurationseinstellungen zu ändern. Möglicherweise wurde Ihr referenziertes Container-Image geändert und Sie möchten, dass Ihre Anwendungsrevision das aktualisierte Container-Image verwendet. Oder vielleicht möchten Sie, dass Ihre Anwendung auf einen geheimen Schlüssel oder eine Konfigurationszuordnung verweist, die aktualisierte Inhaltswerte enthält.
Für diese Szenarien können Sie in der Konsole auf der Registerkarte Konfiguration Ihrer Anwendungsseite auf Erneut bereitstellen klicken, ohne die App-Konfiguration zu ändern. Verwenden Sie in der Befehlszeilenschnittstelle
den Befehl ibmcloud ce app update
.
App in Konsole aktualisieren
Aktualisieren Sie die Anwendung, die Sie mit den Schritten im Abschnitt Anwendung über die Konsole aus einer öffentlichen Registry bereitstellen erstellt haben, um eine Umgebungsvariable hinzuzufügen.
- Navigieren Sie zur Anwendungsseite. Eine Möglichkeit, um zu Ihrer Anwendungsseite zu navigieren, ist wie folgt:
- Suchen Sie die Seite Code Engine Projekte.
- Klicken Sie auf den Namen Ihres Projekts, um die Übersichtsseite zu öffnen.
- Klicken Sie auf Anwendungen, um eine Liste Ihrer Anwendungen zu öffnen. Klicken Sie auf den Namen Ihrer Anwendung, um die Anwendungsseite zu öffnen.
- Auf der Anwendungsseite können Sie Informationen zu den aktiven Instanzen Ihrer Anwendung und ihren Überarbeitungen, Konfigurationsdetails und Endpunkteinstellungen anzeigen. Klicken Sie auf den Namen der Anwendungsrevision, mit der Sie arbeiten wollen, um die Konfigurationszusammenfassung für diese Revision zu öffnen. Alternativ können Sie auch auf die Registerkarte Konfiguration klicken, um die Konfigurationszusammenfassung für die letzte Anwendungsrevision zu öffnen.
- Klicken Sie auf der Registerkarte Konfiguration auf die Registerkarte Umgebungsvariablen.
- Klicken Sie auf Umgebungsvariable hinzufügen. Definieren Sie diese Umgebungsvariable als Literalwert. Geben Sie
TARGET
als Name undStranger
als Wert ein. Klicken Sie auf Hinzufügen. - Klicken Sie auf Implementieren, um Ihre Änderung zu speichern und die Anwendungsrevision zu implementieren.
- Sobald sich der Anwendungsstatus in Bereit geändert hat, können Sie die Anwendungsrevision testen. Klicken Sie auf Anwendung testen und klicken Sie anschließend im Teilfenster 'Anwendung testen' auf Anforderung senden.
Um die Anwendung in einer Webseite zu öffnen, klicken Sie auf Anwendungs-URL. Für diese App wird
Hello Stranger
angezeigt.
In diesem Beispiel haben Sie Umgebungsvariablen für eine App aktualisiert. Sie können auch andere Konfigurationseinstellungen für Ihre App aktualisieren, einschließlich der Referenzierung eines anderen Image oder eines anderen Image-Builds über die Registerkarte Code. Auf der Registerkarte Ressourcen & Skalierung können Sie die Einstellungen für Speicher und Anwendungsskalierung für Ihre App aktualisieren. Auf der Registerkarte Umgebungsvariablen können Sie Umgebungsvariablen für Ihre App hinzufügen oder aktualisieren. Auf der Registerkarte Imagestartoptionen können Sie -Befehle und -Argumente hinzufügen oder aktualisieren, um Einstellungen in Ihrem Container-Image zu überschreiben oder mit Testmonitoren für Aktivität und Bereitschaft zu arbeiten.
App für die Verwendung von reinen Projektendpunkten über die Konsole aktualisieren
Wenn Sie eine App bereitstellen, wird die App standardmäßig so bereitgestellt, dass sie Anforderungen vom öffentlichen Internet, von einem privaten Netz oder von Komponenten innerhalb des Projekts empfangen kann. Ändern Sie die Sichtbarkeit dieser App so, dass sie nur von anderen Code Engine-Ressourcen aufgerufen wird, die in derselben Code Engine-Umgebung ausgeführt werden. Auf der Registerkarte Domänenzuordnungen können Sie die Sichtbarkeit einer App ändern.
-
Navigieren Sie zur Anwendungsseite. Eine Möglichkeit, um zu Ihrer Anwendungsseite zu navigieren, ist wie folgt:
- Suchen Sie die Seite Code Engine Projekte.
- Klicken Sie auf den Namen Ihres Projekts, um die Übersichtsseite zu öffnen.
- Klicken Sie auf Anwendungen, um eine Liste Ihrer Anwendungen zu öffnen. Klicken Sie auf den Namen Ihrer Anwendung, um die Anwendungsseite zu öffnen.
-
Auf der Anwendungsseite können Sie Informationen zu den aktiven Instanzen Ihrer Anwendung und ihren Überarbeitungen, Konfigurationsdetails und Endpunkteinstellungen anzeigen. Klicken Sie auf die Registerkarte Domänenzuordnungen, um die Einstellungen für die Endpunktsichtbarkeit für die Anwendung anzuzeigen.
-
Beachten Sie auf der Registerkarte Domänenzuordnungen die verfügbaren URLs für Ihre Anwendung. Wenn
Public
ausgewählt ist, können Sie die öffentliche und die interne Systemdomänenzuordnung URL für die Anwendung anzeigen. Wenn Keine externe Systemdomänenzuordnung ausgewählt ist, ist diese Anwendung nicht mehr über das öffentliche Internet zugänglich und der Netzzugriff ist nur über Komponenten innerhalb dieses Projekts möglich.Wenn Sie die Sichtbarkeit Ihrer App ändern, wird die Änderung sofort wirksam. Es ist wichtig, die Auswirkungen der Änderung auf Ihre aktiven Benutzer oder Integrationen sowie alle Auswirkungen auf die Sicherheit zu berücksichtigen. Sie können die Sichtbarkeitseinstellung nach Bedarf ändern.
App für die Verwendung privater Endpunkte über die Konsole aktualisieren
Wenn Sie eine App bereitstellen, wird die App standardmäßig so bereitgestellt, dass sie Anforderungen vom öffentlichen Internet, von einem privaten Netz oder von Komponenten innerhalb des Projekts empfangen kann. Ändern Sie die Sichtbarkeit dieser Anwendung so, dass nur andere Code Engine-Ressourcen, die im selben Projekt und vom privaten Netzwerk aus laufen, auf sie zugreifen können, indem Sie virtuelle private Endpunkte verwenden. Auf der Registerkarte Domänenzuordnungen können Sie die Sichtbarkeit einer App ändern.
-
Navigieren Sie zur Anwendungsseite. Eine Möglichkeit, um zu Ihrer Anwendungsseite zu navigieren, ist wie folgt:
- Suchen Sie die Seite Code Engine Projekte.
- Klicken Sie auf den Namen Ihres Projekts, um die Übersichtsseite zu öffnen.
- Klicken Sie auf Anwendungen, um eine Liste Ihrer Anwendungen zu öffnen. Klicken Sie auf den Namen Ihrer Anwendung, um die Anwendungsseite zu öffnen.
-
Auf der Anwendungsseite können Sie Informationen zu den aktiven Instanzen Ihrer Anwendung und ihren Überarbeitungen, Konfigurationsdetails und Endpunkteinstellungen anzeigen. Klicken Sie auf die Registerkarte Domänenzuordnungen, um die Einstellungen für die Endpunktsichtbarkeit für die Anwendung anzuzeigen.
-
Beachten Sie auf der Registerkarte Domänenzuordnungen die verfügbaren URLs für Ihre Anwendung. Wenn
Private
ausgewählt ist, ist diese Anwendung nicht mehr über das öffentliche Internet zugänglich und der Netzzugriff ist nur über Komponenten innerhalb dieses Projekts (clusterlokal) und über das private Netz möglich.Klicken Sie auf Privat, um die Endpunktsichtbarkeit der Anwendung zu ändern. Die verfügbaren URLs für Ihre Endpunktdefinition werden für die privaten URLs und die reinen Projekt-URLs angezeigt.
-
Um über einen virtuellen privaten Endpunkt (Virtual Private Endpoint, VPE) sicher auf Ihre App zuzugreifen, befolgen Sie die Anweisungen in VPE für den Zugriff auf eine App verwenden, um VPE für den Zugriff auf Ihre App einzurichten.
Wenn Sie Ihre Anwendung für visibility = private
festlegen, können Sie Ihre Anwendung nur über den virtuellen privaten Endpunkt aus Ihrer Virtual Private Cloud (VPC) testen.
Wenn Sie die Sichtbarkeit Ihrer App ändern, wird die Änderung sofort wirksam. Es ist wichtig, die Auswirkungen der Änderung auf Ihre aktiven Benutzer oder Integrationen sowie alle Auswirkungen auf die Sicherheit zu berücksichtigen. Sie können die Sichtbarkeitseinstellung nach Bedarf ändern.
App in Befehlszeilenschnittstelle aktualisieren
Mit dem Befehl app update
können Sie Ihre App über die Befehlszeilenschnittstelle aktualisieren. Für diesen Befehl müssen Sie den Namen der App angeben, die Sie aktualisieren wollen, und können außerdem weitere
optionale Argumente verwenden. Eine umfassende Liste der Optionen enthält der Abschnitt über den Befehl ibmcloud ce app update
.
Aktualisieren Sie die Anwendung, die Sie im Abschnitt Anwendung über die Befehlszeilenschnittstelle bereitstellen erstellt haben, um eine Umgebungsvariable hinzuzufügen.
Das Beispielimage icr.io/codeengine/hello
liest die Umgebungsvariable TARGET
und gibt Hello ${TARGET}
aus. Wenn diese Umgebungsvariable leer ist, wird Hello World
zurückgegeben. Im folgenden
Beispiel wird die App durch eine Änderung des Wertes für die Umgebungsvariable TARGET
in Stranger
aktualisiert. Weitere Informationen zu dem Code, der für das vorliegende Beispiel verwendet wird, finden Sie unter
hello
.
-
Führen Sie den Befehl
application update
aus. Beispiel:ibmcloud ce application update -n myapp --env TARGET=Stranger
Beispielausgabe
Updating application 'myapp' to latest revision. [...] Run 'ibmcloud ce application get -n myapp' to check the application status. OK https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
-
Führen Sie den Befehl
application get
aus, um den Status der App anzuzeigen, unter anderem die Informationen zur neuesten Revision.ibmcloud ce application get --name myapp
Beispielausgabe
[...] Name: myapp [...] URL: https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud Cluster Local URL: http://myapp.4svg40kna19.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration Environment Variables: Type Name Value Literal TARGET Stranger Image: icr.io/codeengine/hello Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Revisions: myapp-hc3u8-2: Age: 82s Traffic: 100% Image: icr.io/codeengine/hello (pinned to f0dc03) Running Instances: 1 Runtime: Concurrency: 100 Maximum Scale: 10 Minimum Scale: 0 Timeout: 300 Conditions: Type OK Age Reason ConfigurationsReady true 75s Ready true 62s RoutesReady true 62s Events: Type Reason Age Source Messages Normal Created 2m11s service-controller Created Configuration "myapp" Normal Created 2m11s service-controller Created Route "myapp" Instances: Name Revision Running Status Restarts Age myapp-hc3u8-1-deployment-65cf8cd4f5-jx8b8 myapp-hc3u8-1 1/2 Terminating 0 2m10s myapp-hc3u8-2-deployment-7f98b679d5-2hskr myapp-hc3u8-2 2/2 Terminating 0 85s
In der Ausgabe im Abschnitt Revisions wird die neueste Anwendungsrevision des Service
myapp
angezeigt. Beachten Sie auch, dass für 100 % Datenverkehrs zur Anwendung die neueste Revision der App verwendet wird. -
Rufen Sie die Anwendung auf.
curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
Beispielausgabe
Hello Stranger
Aus der Ausgabe dieses Befehls geht hervor, dass von der aktualisierten App jetzt
Hello Stranger
zurückgegeben wird. -
Verwenden Sie den Befehl
ibmcloud ce revision list
, um alle Überarbeitungen Ihrer App anzuzeigen. Verwenden Sie diese Informationen, um Ihre App-Revisionen als Code Enginezu verwalten, da es e eine Quote für die Anzahl der App-Revisionen in einem Projekt gibt.Beachten Sie in der Ausgabe
revision list
, dass Code Engine nur die letzte inaktive Revision Ihrer Anwendung zusätzlich zu Ihrer aktiven App-Revision beibehält. Ältere Revisionen werden gelöscht.ibmcloud ce revision list
Beispielausgabe
Listing all application revisions... OK Name Application Status URL Latest Tag Traffic Age Conditions Reason myapp-hc3u8-4 myapp Ready 2d15h 3 OK / 4 myapp-hc3u8-5 myapp Ready true 100% 2d8h 3 OK / 4 myapp2-vjfqt-1 myapp2 Ready true 100% 3d 3 OK / 4 myhelloapp-tv368-3 myhelloapp Ready 16d 3 OK / 4 myhelloapp-tv368-4 myhelloapp Ready true 100% 16d 3 OK / 4 newapp-mytest-00008 newapp-mytest Ready 4d17h 3 OK / 4 newapp-mytest-00009 newapp-mytest Ready true 100% 2d20h 3 OK / 4
Sie können Ihre App-Revisionen verwalten, indem Sie den Befehl ibmcloud ce revision get
zum Anzeigen von Details einer App-Revision verwenden
oder mit dem Befehl ibmcloud ce revision delete
Revisionen entfernen, die nicht beibehalten werden sollen. Sie können auch den ibmcloud ce revision logs
, Befehl nutzen, um Protokolle von Anwendungsrevisionsinstanzen anzuzeigen. Verwenden Sie den Befehl ibmcloud ce revision events
, um Systemereignisse
von Anwendungsrevisionsinstanzen anzuzeigen.
App für die Verwendung von reinen Projektendpunkten mit der CLI aktualisieren
Wenn Sie eine App bereitstellen, wird die App standardmäßig so bereitgestellt, dass sie Anforderungen vom öffentlichen Internet, von einem privaten Netz oder von Komponenten innerhalb des Projekts empfangen kann. Um die Sichtbarkeit Ihrer App
so zu ändern, dass nur von anderen Code Engine-Ressourcen, die in demselben Projekt ausgeführt werden, darauf zugegriffen wird, verwenden Sie die Option --visibility=project
mit dem Befehl ibmcloud ce app update
oder ibmcloud ce app create
.
Aktualisieren Sie in diesem Szenario die Anwendung, die Sie in Anwendung über die CLI bereitstellen erstellt haben, um die Sichtbarkeit der App für die Verwendung eines Projektendpunkts zu ändern.
-
Führen Sie den Befehl
application update
aus. Beispiel:ibmcloud ce application update -n myapp --visibility=project
Beispielausgabe
Updating application 'myapp' to latest revision. [...] Run 'ibmcloud ce application get -n myapp' to check the application status. OK http://myapp.4svg40kna19.svc.cluster.local
-
Führen Sie den Befehl
application get
aus, um den Status der App anzuzeigen, unter anderem die Informationen zur neuesten Revision.ibmcloud ce application get --name myapp
Beispielausgabe
[...] Name: myapp [...] URL: http://myapp.4svg40kna19.svc.cluster.local Cluster Local URL: http://myapp.4svg40kna19.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration Environment Variables: Type Name Value Literal TARGET Stranger Image: icr.io/codeengine/hello Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Revisions: myapp-hc3u8-2: Age: 82s Traffic: 100% Image: icr.io/codeengine/hello (pinned to f0dc03) Running Instances: 1 Runtime: Concurrency: 100 Maximum Scale: 10 Minimum Scale: 0 Timeout: 300 Conditions: Type OK Age Reason ConfigurationsReady true 75s Ready true 62s RoutesReady true 62s Events: Type Reason Age Source Messages Normal Created 2m11s service-controller Created Configuration "myapp" Normal Created 2m11s service-controller Created Route "myapp" Instances: Name Revision Running Status Restarts Age myapp-hc3u8-1-deployment-65cf8cd4f5-jx8b8 myapp-hc3u8-1 1/2 Terminating 0 2m10s myapp-hc3u8-2-deployment-7f98b679d5-2hskr myapp-hc3u8-2 2/2 Terminating 0 85s
In der Ausgabe im Abschnitt Revisions wird die neueste Anwendungsrevision des Service
myapp
angezeigt. Beachten Sie auch, dass für 100 % Datenverkehrs zur Anwendung die neueste Revision der App verwendet wird.
Nachdem Sie nun --visibility=project
für Ihre Anwendung festgelegt haben, ist diese Anwendung nicht mehr über das öffentliche Internet zugänglich und der Netzzugriff ist nur über Komponenten innerhalb dieses Projekts (clusterlokal)
möglich.
App für die Verwendung privater Endpunkte über die CLI aktualisieren
Wenn Sie eine App bereitstellen, wird die App standardmäßig so bereitgestellt, dass sie Anforderungen vom öffentlichen Internet, von einem privaten Netz oder von Komponenten innerhalb des Projekts empfangen kann. Sie können die Endpunktsichtbarkeit für Ihre App so festlegen, dass sie mit einem privaten Endpunkt bereitgestellt wird. Das Festlegen eines privaten Endpunkts bedeutet, dass Ihre App nicht über das öffentliche Internet zugänglich ist und dass der Netzzugriff nur über andere IBM Cloud-Services von virtuellen privaten Endpunkten (VPC) oder Code Engine-Komponenten möglich ist, die in demselben Projekt (cluster-local) ausgeführt werden.
Verwenden Sie die Option --visibility=private
mit dem Befehl ibmcloud ce app update
oder ibmcloud ce app create
,
um die Sichtbarkeit Ihrer App so zu ändern, dass nur mit einem privaten Endpunkt darauf zugegriffen wird.
Sie können Ihr VPE nur verwenden, um mit einem privaten Endpunkt auf Ihre App zuzugreifen, wenn Ihr ausgewähltes Projekt private Sichtbarkeit von Anwendungen unterstützt. Um zu bestätigen, ob das Projekt die private Sichtbarkeit von Anwendungen unterstützt, verwenden Sie den Befehl ibmcloud ce project get
,
um zu überprüfen, ob die Ausgabe für Application Private Visibility Supported
auf true
festgelegt ist.
Aktualisieren Sie in diesem Szenario die Anwendung, die Sie in Anwendung über die CLI bereitstellen erstellt haben, um die Sichtbarkeit der App für die Verwendung eines privaten Endpunkts zu ändern.
-
Stellen Sie sicher, dass das vorhandene Projekt Anwendungen mit privater Sichtbarkeit unterstützt. Überprüfen Sie mit dem Befehl
ibmcloud ce project get
, ob die Ausgabe fürApplication Private Visibility Supported
auftrue
festgelegt ist. Wenn der Wertfalse
ist, kontaktieren Sie den IBM Support, um diese Funktion in Ihrem vorhandenen Projekt zu aktivieren.ibmcloud ce project get -n myproject
Beispielausgabe
Getting project 'myproject'... OK Name: myproject ID: abcdabcd-abcd-abcd-abcd-f1de4aab5d5d Status: active Enabled: true Application Private Visibility Supported: true Selected: true Region: us-south Resource Group: default Service Binding Service ID: ServiceId-1234abcd-abcd-abcd-1111-1a2b3c4d5e6f Age: 52d Created: Tue, 28 Sep 2021 05:12:16 -0500 Updated: Tue, 28 Sep 2021 05:12:19 -0500 Quotas: Category Used Limit App revisions 1 60 Apps 1 20 Build runs 1 100 Builds 2 100 Configmaps 2 100 CPU 0 64 Ephemeral storage 0 256G Instances (active) 0 250 Instances (total) 0 2500 Job runs 0 100 Jobs 0 100 Memory 0 256G Secrets 6 100 Subscriptions (cron) 0 100 Subscriptions (IBM Cloud Object Storage) 0 100 Subscriptions (Kafka) 0 100
-
Wenn
Application Private Visibility Supported
auftrue
festgelegt ist, können Sie Ihre App für die Verwendung privater Endpunkte aktualisieren. Führen Sie den Befehlapplication update
aus. Beispiel:ibmcloud ce application update -n myapp --visibility=private
Beispielausgabe
Updating application 'myapp' to latest revision. [...] Run 'ibmcloud ce application get -n myapp' to check the application status. OK https://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
-
Führen Sie den Befehl
application get
aus, um den Status der App anzuzeigen, unter anderem die Informationen zur neuesten Revision.ibmcloud ce application get --name myapp
Beispielausgabe
[...] Name: myapp [...] URL: https://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud Cluster Local URL: http://myapp.4svg40kna19.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration Environment Variables: Type Name Value Literal TARGET Stranger Image: icr.io/codeengine/hello Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Revisions: myapp-hc3u8-2: Age: 82s Traffic: 100% Image: icr.io/codeengine/hello (pinned to f0dc03) Running Instances: 1 Runtime: Concurrency: 100 Maximum Scale: 10 Minimum Scale: 0 Timeout: 300 Conditions: Type OK Age Reason ConfigurationsReady true 75s Ready true 62s RoutesReady true 62s Events: Type Reason Age Source Messages Normal Created 2m11s service-controller Created Configuration "myapp" Normal Created 2m11s service-controller Created Route "myapp" Instances: Name Revision Running Status Restarts Age myapp-hc3u8-1-deployment-65cf8cd4f5-jx8b8 myapp-hc3u8-1 1/2 Terminating 0 2m10s myapp-hc3u8-2-deployment-7f98b679d5-2hskr myapp-hc3u8-2 2/2 Terminating 0 85s
In der Ausgabe im Abschnitt Revisions wird die neueste Anwendungsrevision des Service
myapp
angezeigt. Beachten Sie auch, dass für 100 % Datenverkehrs zur Anwendung die neueste Revision der App verwendet wird. -
Richten Sie Ihr VPE ein, um auf Ihre App mit einem privaten Endpunkt zuzugreifen.
App aktualisieren, um auf ein anderes Image zu verweisen
Sie können Ihre App aktualisieren, um auf ein anderes Image zu verweisen.
Das Image, das Ihrer speziellen Anwendungsrevision zugeordnet ist, hat einen eindeutigen Container-Registry-Digest und Code Engine verwendet diesen Digest für die Lebensdauer Ihrer Anwendungsrevision. Wenn Sie eine neuere Version eines Image mit demselben Tag wie das ursprüngliche Image erstellen, wird das ursprüngliche Image in der Container-Registry überschrieben und nicht mit Tags versehen. Das neuere Image ist mit Tags versehen und dieses neuere Image hat einen anderen Digest. Ihre Anwendung Code Engine verwendet dieses neuere Image nicht, weil das neuere Image einen anderen Digest als das Image hat, das von der Anwendungsrevision referenziert wird. Code Engine kann weiterhin neue Instanzen der Anwendungsrevision erstellen, solange das Image ohne Tags, auf das ursprünglich verwiesen wurde, noch vorhanden ist. Weitere Informationen hierzu finden Sie unter Warum kann Code Engine kein Image extrahieren?
App zum Referenzieren eines anderen Images in Container Registry über die Konsole aktualisieren
Mit der Code Engine-Konsole können Sie eine Anwendung so aktualisieren, dass ein anderes Image in einer Container-Registry referenziert wird.
Im folgenden Beispiel soll die App helloapp
, die Sie mit den Schritten im Abschnitt Anwendung, die ein Image in einer Container-Registry referenziert, über die Konsole bereitstellen erstellt haben, so aktualisiert werden, dass sie ein anderes Image referenziert. Die aktualisierte App referenziert das Image helloworld_repo
im Namensbereich mynamespace2
in Container Registry. In den folgenden
Schritten ist beschrieben, wie Sie während der Aktualisierung einer App den Zugriff auf eine Registry hinzufügen.
Weitere Informationen zum Hinzufügen eines Images zu Container Registry finden Sie in Einführung in IBM Cloud Container Registry.
-
Navigieren Sie zur Anwendungsseite. Eine Möglichkeit, um zu Ihrer Anwendungsseite zu navigieren, ist wie folgt:
- Suchen Sie die Seite Code Engine Projekte.
- Klicken Sie auf den Namen Ihres Projekts, um die Übersichtsseite zu öffnen.
- Klicken Sie auf Anwendungen, um eine Liste Ihrer Anwendungen zu öffnen. Klicken Sie auf den Namen Ihrer Anwendung, um die Anwendungsseite zu öffnen.
-
Klicken Sie auf die Registerkarte Konfiguration, um die Konfigurationsdetails für die letzte Anwendungsrevision zu öffnen.
-
Klicken Sie auf der Registerkarte Konfiguration auf die Registerkarte Code.
-
Klicken Sie für die Ausführung des Image auf Configure image (Image konfigurieren), um den Dialog zum Konfigurieren des Image zu öffnen. Aktualisieren Sie bei diesem Beispiel die App so, dass eine vorhandene Registry namens
ibmcregistry
referenziert wird, wählen Sie den Namensbereichmynamespace2
aus, wählen Sie das Imagehelloworld-repo
aus und wählen Sie1
als Wert fürtag
aus. Führen Sie ausgehend von der Seite 'Image konfigurieren' Folgendes aus:- Falls sich das Image, das Sie verwenden möchten, in demselben Container Registry-Konto befindet, wählen Sie den Zugriff für die Registry aus.
- Falls sich das Image, das Sie verwenden möchten, in einem anderen Container-Registry-Konto befindet, können Sie den Registry-Zugriff für diese Registry auswählen. Wenn der Registry-Zugriff nicht vorhanden ist, müssen Sie zuerst Ihren IAM-API-Schlüssel erstellen und anschließend den Registry-Zugriff zu Code Engine hinzufügen.
Wenn Sie nur den Registry-Zugriff auf Ihr Image aktualisieren wollen, können Sie diese Änderung vornehmen, ohne auf Image konfigurieren zu klicken, um den Dialog 'Image konfigurieren' zu öffnen und das Menü 'Registry-Zugriff' zu verwenden, um einen vorhandenen Registry-Zugriff auszuwählen oder einen Registry-Zugriff auf Code Engine für das Image zu erstellen, auf das Ihre Anwendung verweist.
-
Klicken Sie auf Fertig. Hiermit haben Sie Ihr Image in der Registry als Referenz für die App ausgewählt.
-
Klicken Sie auf Bereitstellen, um Ihre Änderung zu speichern und die App-Revision bereitzustellen.
-
Sobald sich der Anwendungsstatus in Bereit geändert hat, können Sie die App-Revision testen. Klicken Sie auf Anwendung testen und klicken Sie anschließend im Teilfenster 'Anwendung testen' auf Anforderung senden. Um die Anwendung in einer Webseite zu öffnen, klicken Sie auf Anwendungs-URL. Für diese App wird
Hello World from Code Engine
angezeigt.
App zum Referenzieren eines anderen Image in Container Registry über die Befehlszeilenschnittstelle aktualisieren
Mit der Container Registry-Befehlszeilenschnittstelle können Sie eine Anwendung so aktualisieren, dass ein anderes Image in Code Engine referenziert wird.
Aktualisieren Sie bei diesem Beispiel die App myhelloapp
, die Sie im Abschnitt Anwendung mit Referenz auf ein Image in einer Container-Registry über die Befehlszeilenschnittstelle bereitstellen erstellt haben, um ein anderes Image in einem anderen Namensbereich in demselben Konto zu referenzieren. Die aktualisierte App referenziert dann das Image helloworld_repo
im Namensbereich mynamespace2
von Container
Registry.
-
Fügen Sie ein weiteres Image zu Container Registry hinzu. Fügen Sie für dieses Beispiel das Image
helloworld_repo
im Namensbereichmynamespace2
in Container Registryhinzu. Weitere Informationen zum Hinzufügen eines Images zu Container Registry finden Sie in Einführung in IBM Cloud Container Registry. -
Fügen Sie den Registry-Zugriff zu Code Engine hinzu. Da sich das Image
helloworld_repo
in demselben Konto befindet, verwenden Sie für dieses Beispiel den zuvor definierten Registry-Zugriffmyregistry
. -
Aktualisieren Sie Ihre App und referenzieren Sie das Image in Container Registry unter Verwendung des Zugriffs
myregistry
. Aktualisieren Sie beispielsweise die Appmyhelloapp
zur Referenzierung vonus.icr.io/mynamespace2/helloworld_repo
mithilfe der Zugriffsinformationen vonmyregistry
.ibmcloud ce app update --name myhelloapp --image us.icr.io/mynamespace2/helloworld_repo:1 --registry-secret myregistry
Der Name des Images für diese Anwendung hat das Format
REGISTRY/NAMESPACE/REPOSITORY:TAG
, wobei Angaben fürREGISTRY
undTAG
optional sind. WirdREGISTRY
nicht angegeben, istdocker.io
der Standardwert. WirdTAG
nicht angegeben, istlatest
der Standardwert. -
Nachdem Ihre App aktualisiert wurde, können Sie auf die App zugreifen. Um die URL Ihrer App abzurufen, führen Sie den Befehl
ibmcloud ce app get --name myhelloapp --output url
aus. Wenn Sie 'curl' für die Appmyhelloapp
ausführen, gibt die AppHello World from Code Engine
zurück. Dies zeigt, dass die App jetzt das Imagehelloworld_repo
verwendet.
App zum Referenzieren eines aus Quellcode erstellten Image über die Konsole aktualisieren
In diesem Abschnitt ist beschrieben, wie Sie eine Anwendung in der Code Engine-Konsole so aktualisieren, dass sie ein aus Quellcode erstelltes Image referenziert.
Bei diesem Beispiel aktualisieren Sie die App helloapp
, die Sie im Abschnitt Anwendung mit Referenz auf ein Image in einer Container-Registry über die Konsole bereitstellen erstellt haben, um ein Image zu referenzieren, das aus Ihrem Quellcode erstellt wurde.
Weitere Informationen zum Erstellen einer Buildkonfiguration über die Konsole finden Sie unter Build erstellen.
- Navigieren Sie zur Anwendungsseite. Eine Möglichkeit, um zu Ihrer Anwendungsseite zu navigieren, ist wie folgt:
- Suchen Sie die Seite Code Engine Projekte.
- Klicken Sie auf den Namen Ihres Projekts, um die Übersichtsseite zu öffnen.
- Klicken Sie auf Anwendungen, um eine Liste Ihrer Anwendungen zu öffnen. Klicken Sie auf den Namen Ihrer Anwendung, um die Anwendungsseite zu öffnen.
- Klicken Sie auf die Registerkarte Konfiguration, um die Konfigurationsdetails für die letzte Anwendungsrevision zu öffnen.
- Klicken Sie auf der Registerkarte Konfiguration auf die Registerkarte Code.
- Ausgehend von der Registerkarte Code können Sie einen Image-Build erstellen oder einen vorhandenen Image-Build erneut ausführen, der von Ihrer Anwendung referenziert wird. Klicken Sie zum Erstellen eines Image-Builds auf Image aus Quelle erstellen, um einen Image-Build auszuführen. Die Seite 'Builddetails angeben' wird geöffnet, in der Sie die Details Ihres Builds eingeben können, um Ihre App aus Quellcode bereitzustellen. Klicken Sie auf Fertig, nachdem Sie die Aktualisierungen für die Builddetails angegeben haben.
- Klicken Sie auf Bereitstellen, um Ihre Änderungen zu speichern, den Build auszuführen und die App-Revision bereitzustellen.
- Sobald sich der Anwendungsstatus in Bereit geändert hat, können Sie die App-Revision testen. Klicken Sie auf Anwendung testen und klicken Sie anschließend im Teilfenster 'Anwendung testen' auf Anforderung senden. Um die Anwendung in einer Webseite zu öffnen, klicken Sie auf Anwendungs-URL.
- Um diese Anwendung erneut zu aktualisieren, sodass sie auf ein aktualisiertes Build-Image verweist, klicken Sie auf der Registerkarte Code auf Build erneut ausführen und geben Sie einen eindeutigen Image-Tag für das aktualisierte Build-Image an. Wenn Sie weitere Änderungen an den Builddetails vornehmen möchten, klicken Sie auf Builddetails bearbeiten. Die Seite 'Builddetails angeben' wird geöffnet, in der Sie die Details Ihres Builds eingeben können, um Ihre App aus Quellcode bereitzustellen. Klicken Sie auf Fertig, nachdem Sie die Aktualisierungen für die Builddetails angegeben haben.
- Klicken Sie auf Bereitstellen, um Ihre Änderungen zu speichern, den Build mit Ihren Änderungen auszuführen und die App-Revision bereitzustellen.
- Sobald sich der Anwendungsstatus in Bereit geändert hat, können Sie die App-Revision testen. Klicken Sie auf Anwendung testen und klicken Sie anschließend im Teilfenster 'Anwendung testen' auf Anforderung senden. Um die Anwendung in einer Webseite zu öffnen, klicken Sie auf Anwendungs-URL.
App zum Referenzieren eines aus Quellcode erstellten Image über die Befehlszeilenschnittstelle aktualisieren
In diesem Abschnitt ist beschrieben, wie Sie eine Anwendung in der Code Engine-Befehlszeilenschnittstelle so aktualisieren, dass sie ein aus Quellcode erstelltes Image referenziert.
Bei diesem Beispiel wird jetzt die App myhelloapp
, die Sie im Abschnitt App zum Referenzieren eines anderen Image in der Container-Registry über die Befehlszeilenschnittstelle aktualisieren aktualisiert haben, so geändert, dass sie ein anderes, aus Ihrem Quellcode erstelltes Image referenziert.
Als Ergebnis des vorherigen Beispiels referenziert die App myhelloapp
mithilfe der Zugriffsinformationen us.icr.io/mynamespace2/helloworld_repo
das Image myregistry
. Im Folgenden erstellen Sie nun eine
Buildkonfiguration, führen den Build aus und aktualisieren die App myhelloapp
so, dass sie das aus Quellcode erstellte Image referenziert.
-
Erstellen Sie die Buildkonfiguration. Der folgende
build create
-Befehl erstellt beispielsweise eine Buildkonfiguration mit dem Namenhelloworld-build
. Diese Konfiguration erstellt aus dem öffentlichen Git-Repositoryhttps://github.com/IBM/CodeEngine
, verwendet diedockerfile
-Strategie und die Buildgrößemedium
und speichert das Image inus.icr.io/mynamespace/codeengine-helloworld
unter Verwendung des geheimen Image-Registryschlüssels, der inmyregistry
definiert ist.ibmcloud ce build create --name helloworld-build --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry --source https://github.com/IBM/CodeEngine --commit main --context-dir /hello --strategy dockerfile --size medium
-
Führen Sie den Build aus. In diesem Beispiel wird ein Build namens
helloworld-build-run
ausgeführt, der die Buildkonfigurationhelloworld-build
verwendet.ibmcloud ce buildrun submit --build helloworld-build --name helloworld-build-run
Die folgende Ausgabe zeigt die Details der Buildausführung, die mit dem Befehl
ibmcloud ce buildrun get
abgerufen werden.Beispielausgabe
Getting build run 'helloworld-build-run'... [...] OK Name: helloworld-build-run ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 21m Created: 2021-09-30T14:50:13-05:00 Summary: Succeeded Status: Succeeded Reason: All Steps have completed executing Image: us.icr.io/mynamespace/codeengine-helloworld
Weitere Informationen zum Erstellen einer Buildkonfiguration über die Befehlszeilenschnittstelle finden Sie unter Build erstellen.
-
Der folgende Befehl aktualisiert die App
myhelloapp
so, dass sie das von Ihnen erstellte Image referenziert und den geheimen Registryschlüsselmyregistry
verwendet.ibmcloud ce app update --name myhelloapp --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry
-
Der folgende Befehl zeigt Informationen zur aktualisierten App an, um zu bestätigen, dass als Image das von Ihnen erstellte Image referenziert wird.
ibmcloud ce app get --name myhelloapp
Beispielausgabe
[...] OK Name: myhelloapp ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2m4s Created: 2021-09-09T14:01:02-04:00 URL: https://myhelloapp.abcdabcdabc.us-south.codeengine.appdomain.cloud Cluster Local URL: http://myhelloapp.abcdabcdabc.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myhelloapp/configuration Status Summary: Application deployed successfully Environment Variables: Type Name Value Literal CE_API_BASE_URL https://api.us-south.codeengine.cloud.ibm.com Literal CE_APP myhelloapp Literal CE_DOMAIN us-south.codeengine.appdomain.cloud Literal CE_PROJECT_ID abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Literal CE_REGION us-south Literal CE_SUBDOMAIN abcdabcdab Image: us.icr.io/mynancesnamespace/codeengine-helloworld Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Registry Secrets: myregistry Revisions: helloapp-00003: Age: 2m46s Latest: true Traffic: 100% Image: us.icr.io/mysnamespace/codeengine-helloworld (pinned to eeca2b) Running Instances: 1 [...]