IBM Cloud Docs
App aktualisieren

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

  1. 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.
  2. 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.
  3. Klicken Sie auf der Registerkarte Konfiguration auf die Registerkarte Umgebungsvariablen.
  4. Klicken Sie auf Umgebungsvariable hinzufügen. Definieren Sie diese Umgebungsvariable als Literalwert. Geben Sie TARGET als Name und Stranger als Wert ein. Klicken Sie auf Hinzufügen.
  5. Klicken Sie auf Implementieren, um Ihre Änderung zu speichern und die Anwendungsrevision zu implementieren.
  6. 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.

  1. 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.
  2. 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.

  3. 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.

  1. 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.
  2. 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.

  3. 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.

  4. 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.

  1. 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    
    
  2. 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.

  3. 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.

  4. 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.

  1. 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   
    
  2. 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.

  1. 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ür Application Private Visibility Supported auf true festgelegt ist. Wenn der Wert false 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
    
  2. Wenn Application Private Visibility Supported auf true festgelegt ist, können Sie Ihre App für die Verwendung privater Endpunkte aktualisieren. Führen Sie den Befehl application 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
    
  3. 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.

  4. 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.

  1. 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.
  2. Klicken Sie auf die Registerkarte Konfiguration, um die Konfigurationsdetails für die letzte Anwendungsrevision zu öffnen.

  3. Klicken Sie auf der Registerkarte Konfiguration auf die Registerkarte Code.

  4. 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 Namensbereich mynamespace2 aus, wählen Sie das Image helloworld-repo aus und wählen Sie 1 als Wert für tag 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.

  5. Klicken Sie auf Fertig. Hiermit haben Sie Ihr Image in der Registry als Referenz für die App ausgewählt.

  6. Klicken Sie auf Bereitstellen, um Ihre Änderung zu speichern und die App-Revision bereitzustellen.

  7. 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.

  1. Fügen Sie ein weiteres Image zu Container Registry hinzu. Fügen Sie für dieses Beispiel das Image helloworld_repo im Namensbereich mynamespace2 in Container Registryhinzu. Weitere Informationen zum Hinzufügen eines Images zu Container Registry finden Sie in Einführung in IBM Cloud Container Registry.

  2. 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-Zugriff myregistry.

  3. Aktualisieren Sie Ihre App und referenzieren Sie das Image in Container Registry unter Verwendung des Zugriffs myregistry. Aktualisieren Sie beispielsweise die App myhelloapp zur Referenzierung von us.icr.io/mynamespace2/helloworld_repo mithilfe der Zugriffsinformationen von myregistry.

    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ür REGISTRY und TAG optional sind. Wird REGISTRY nicht angegeben, ist docker.io der Standardwert. Wird TAG nicht angegeben, ist latest der Standardwert.

  4. 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 App myhelloapp ausführen, gibt die App Hello World from Code Engine zurück. Dies zeigt, dass die App jetzt das Image helloworld_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.

  1. 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.
  2. Klicken Sie auf die Registerkarte Konfiguration, um die Konfigurationsdetails für die letzte Anwendungsrevision zu öffnen.
  3. Klicken Sie auf der Registerkarte Konfiguration auf die Registerkarte Code.
  4. 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.
  5. Klicken Sie auf Bereitstellen, um Ihre Änderungen zu speichern, den Build auszuführen und die App-Revision bereitzustellen.
  6. 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.
  7. 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.
  8. Klicken Sie auf Bereitstellen, um Ihre Änderungen zu speichern, den Build mit Ihren Änderungen auszuführen und die App-Revision bereitzustellen.
  9. 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.

  1. Erstellen Sie die Buildkonfiguration. Der folgende build create-Befehl erstellt beispielsweise eine Buildkonfiguration mit dem Namen helloworld-build. Diese Konfiguration erstellt aus dem öffentlichen Git-Repository https://github.com/IBM/CodeEngine, verwendet die dockerfile-Strategie und die Buildgröße medium und speichert das Image in us.icr.io/mynamespace/codeengine-helloworld unter Verwendung des geheimen Image-Registryschlüssels, der in myregistry 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
    
  2. Führen Sie den Build aus. In diesem Beispiel wird ein Build namens helloworld-build-run ausgeführt, der die Buildkonfiguration helloworld-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.

  3. Der folgende Befehl aktualisiert die App myhelloapp so, dass sie das von Ihnen erstellte Image referenziert und den geheimen Registryschlüssel myregistry verwendet.

    ibmcloud ce app update --name myhelloapp --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry
    
  4. 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
    [...]