Aggiornamento della tua app

Un'applicazione contiene una o più revisioni. Una revisione rappresenta una versione immutabile delle proprietà di configurazione dell'applicazione. Ogni aggiornamento di una proprietà di configurazione dell'applicazione crea una nuova revisione dell'applicazione.

Quando si modifica un'applicazione e si distribuisce l'applicazione con le modifiche o si ridistribuisce l'applicazione senza modificare le relative impostazioni di configurazione, queste azioni distribuiscono una nuova revisione dell'applicazione. Quando distribuisci (o ridistribuisci) una revisione dell'applicazione, Code Engine usa tutte le impostazioni di configurazione modificate e ottiene qualsiasi immagine del contenitore, segreto o configmap aggiornata a cui fa riferimento l'applicazione.

Per ulteriori informazioni sulla distribuzione delle applicazioni, come la specifica di vCPU valide e combinazioni di memoria, la definizione di comandi e argomenti, le variabili di ambiente, i segreti o le mappe di configurazione, vedi Opzioni per la distribuzione di un'applicazione.

Code Engine ha una quota per il numero di applicazioni e revisioni di applicazioni in un progetto. Per ulteriori informazioni sui limiti per i progetti, vedi Quote del progetto. Code Engine conserva solo l'ultima revisione inattiva della tua applicazione oltre alla tua revisione dell'applicazione attiva. Le revisioni precedenti vengono eliminate.

Puoi aggiornare la tua applicazione distribuita e il relativo codice di riferimento utilizzando uno qualsiasi dei seguenti modi, indipendentemente da come hai creato o precedentemente aggiornato la tua applicazione:

  • Se hai un'immagine del contenitore, secondo lo standard OCI(Open Container Initiative), devi fornire solo un riferimento all'immagine, che punta all'ubicazione del tuo registro del contenitore quando distribuisci la tua applicazione. Puoi distribuire la tua applicazione con una immagine in un registro pubblico o in un registro privato.

    Se hai creato la tua applicazione utilizzando il comando app create e hai specificato l'opzione --build-source per creare l'immagine del contenitore dall'origine locale o del repository e vuoi modificare la tua applicazione in modo che punti a un'altra immagine del contenitore, devi prima rimuovere l'associazione della build dalla tua applicazione. Ad esempio, eseguire ibmcloud ce application update -n APP_NAME --build-clear. Dopo aver rimosso l'associazione della build dalla propria applicazione, è possibile aggiornare l'applicazione in modo che faccia riferimento a una diversa immagine.

  • Se stai iniziando con il codice sorgente che risiede in un repository Git, puoi scegliere di lasciare che Code Engine si occupi della creazione dell'immagine dalla tua origine e della distribuzione dell'applicazione con una singola operazione. In questo scenario, Code Engine carica la tua immagine in IBM Cloud® Container Registry. Per ulteriori informazioni, vedi Distribuzione della tua applicazione dal codice sorgente del repository. Se vuoi più controllo sulla build della tua immagine, puoi scegliere di creare l'immagine con Code Engine prima di distribuire la tua applicazione.

  • Se stai iniziando con il codice sorgente che risiede su una workstation locale, puoi scegliere di consentire a Code Engine di creare l'immagine dalla tua origine e distribuire l'applicazione con un singolo comando della CLI. In questo scenario, Code Engine carica la tua immagine in IBM Cloud® Container Registry. Per ulteriori informazioni, vedi Distribuzione della tua applicazione dal codice di origine locale con la CLI. Se vuoi più controllo sulla build della tua immagine, puoi scegliere di creare l'immagine con Code Engine prima di distribuire la tua applicazione.

Ad esempio, potresti scegliere di consentire a Code Engine di gestire la creazione della tua origine locale mentre evolvi lo sviluppo della tua origine per l'applicazione. Quindi, una volta maturata l'immagine, puoi aggiornare l'applicazione distribuita per fare riferimento all'immagine specifica che desideri. È possibile ripetere questo processo in base alle necessità.

Quando distribuisci la tua applicazione aggiornata, viene scaricata e distribuita l'ultima versione della tua immagine del contenitore di riferimento, a meno che non venga specificata una tag per l'immagine. Se viene specificata una tag per l'immagine, l'immagine contrassegnata viene utilizzata per la distribuzione.

Cosa devo fare se voglio ridistribuire la mia applicazione senza modificare le impostazioni di configurazione?

È sempre possibile distribuire l'applicazione con modifiche di configurazione modificando un valore di configurazione e distribuendo l'applicazione.

Tuttavia, è possibile ridistribuire una revisione dell'applicazione senza modificare le impostazioni di configurazione dell'applicazione. Forse la tua immagine del contenitore di riferimento è stata modificata e vuoi che la tua revisione dell'applicazione utilizzi l'immagine del contenitore aggiornata. Oppure, è possibile che si desideri che l'applicazione faccia riferimento a un segreto o a una configmap, che contiene valori di contenuto aggiornati.

Per questi scenari, dalla console, puoi fare clic su Ridistribuisci dalla scheda Configurazione della tua pagina dell'applicazione, senza modificare la configurazione dell'applicazione. Con la CLI, utilizza il comando ibmcloud ce app update.

Aggiornamento dell'app dalla console

Aggiorna l'applicazione che hai creato in Distribuzione di un'applicazione da un registro pubblico dalla console per aggiungere una variabile di ambiente.

  1. Andate alla pagina della vostra candidatura. Un modo per passare alla pagina dell'applicazione è quello di
    • Individua la pagina dei progettiCode Engine.
    • Fare clic sul nome del progetto per aprire la pagina Panoramica.
    • Fare clic su Applicazioni per aprire un elenco delle applicazioni. Fare clic sul nome dell'applicazione per aprirne la pagina.
  2. Dalla pagina dell'applicazione, puoi visualizzare le informazioni relative alle istanze in esecuzione della tua applicazione e alle sue revisioni, ai dettagli di configurazione e alle impostazioni dell'endpoint dell'applicazione. Fare clic sul nome della revisione dell'applicazione con cui si desidera lavorare per aprire il riepilogo di configurazione per tale revisione. In alternativa, è possibile fare clic sulla scheda Configurazione per aprire il riepilogo della configurazione per l'ultima revisione dell'applicazione.
  3. Nella scheda Configurazione, fare clic su Variabili di ambiente.
  4. Fare clic su Aggiungi variabile d'ambiente. Definire questa variabile di ambiente come valore letterale. Immettere TARGET come nome e Stranger come valore. Fai clic su Aggiungi.
  5. Fare clic su Distribuisci per salvare la modifica e distribuire la revisione dell'applicazione.
  6. Dopo che lo stato dell'applicazione è stato modificato in Pronto, è possibile verificare la revisione dell'applicazione. Fare clic su Applicazione di test, quindi fare clic su Invia richiesta nel riquadro Applicazione di test. Per aprire l'applicazione in una pagina Web, fare clic su Applicazione URL. Per questa app, viene visualizzato Hello Stranger.

In questo esempio, hai aggiornato le variabili di ambiente per un'applicazione. Puoi anche aggiornare altre impostazioni di configurazione per la tua applicazione, incluso il riferimento a un'immagine differente o una build dell'immagine differente dalla scheda Codice. Dalla scheda Risorse & scalabilità, puoi aggiornare le impostazioni di memoria e scalabilità dell'applicazione per la tua applicazione. Dalla scheda Variabili di ambiente, puoi aggiungere o aggiornare le variabili di ambiente per la tua applicazione. Dalla scheda Image start options, puoi aggiungere o aggiornare il comando e gli argomenti per sovrascrivere le impostazioni all'interno della tua immagine del contenitore o gestire i probe di attività e prontezza.

Aggiornamento della tua app per utilizzare gli endpoint di solo progetto dalla console

Per impostazione predefinita, quando distribuisci un'applicazione, l'applicazione viene distribuita in modo che possa ricevere richieste da Internet pubblico, da una rete privata o da componenti all'interno del progetto. Cambiamo la visibilità di questa applicazione in modo che sia accessibile solo da altre risorse Code Engine in esecuzione nello stesso ambiente Code Engine. Utilizzare la scheda Associazioni dominio per modificare la visibilità di una app.

  1. Andate alla pagina della vostra candidatura. Un modo per passare alla pagina dell'applicazione è quello di

    • Individua la pagina dei progettiCode Engine.
    • Fare clic sul nome del progetto per aprire la pagina Panoramica.
    • Fare clic su Applicazioni per aprire un elenco delle applicazioni. Fare clic sul nome dell'applicazione per aprirne la pagina.
  2. Dalla pagina dell'applicazione, puoi visualizzare le informazioni relative alle istanze in esecuzione della tua applicazione e alle sue revisioni, ai dettagli di configurazione e alle impostazioni dell'endpoint dell'applicazione. Fare clic sulla scheda Associazioni dominio per aprire le impostazioni di visibilità dell'endpoint per l'applicazione.

  3. Dalla scheda Associazioni dominio, nota gli URL disponibili per la tua applicazione. Quando Public è selezionata, è possibile visualizzare l' URL di associazione del dominio del sistema pubblico e interno per l'applicazione. Quando si seleziona Nessuna mappatura di dominio del sistema esterno, questa applicazione non è più accessibile da internet pubblico e l'accesso alla rete è possibile solo dai componenti all'interno di questo progetto.

    Quando modifichi la visibilità della tua applicazione, la modifica è immediatamente effettiva. È importante considerare l'impatto della modifica per gli utenti attivi o le integrazioni, nonché eventuali implicazioni di sicurezza. È possibile modificare l'impostazione di visibilità come necessario.

Aggiornamento della tua applicazione per utilizzare gli endpoint privati dalla console

Per impostazione predefinita, quando distribuisci un'applicazione, l'applicazione viene distribuita in modo che possa ricevere richieste da Internet pubblico, da una rete privata o da componenti all'interno del progetto. Cambiamo la visibilità di questa applicazione in modo che sia accessibile solo da altre risorse Code Engine in esecuzione nello stesso progetto e dalla rete privata utilizzando i Virtual Private Endpoints. Utilizzare la scheda Associazioni dominio per modificare la visibilità di una app.

  1. Andate alla pagina della vostra candidatura. Un modo per passare alla pagina dell'applicazione è quello di

    • Individua la pagina dei progettiCode Engine.
    • Fare clic sul nome del progetto per aprire la pagina Panoramica.
    • Fare clic su Applicazioni per aprire un elenco delle applicazioni. Fare clic sul nome dell'applicazione per aprirne la pagina.
  2. Dalla pagina dell'applicazione, puoi visualizzare le informazioni relative alle istanze in esecuzione della tua applicazione e alle sue revisioni, ai dettagli di configurazione e alle impostazioni dell'endpoint dell'applicazione. Fare clic sulla scheda Associazioni dominio per aprire le impostazioni di visibilità dell'endpoint per l'applicazione.

  3. Dalla scheda Associazioni dominio, nota gli URL disponibili per la tua applicazione. Quando si seleziona Private, questa applicazione non sarà più accessibile da Internet pubblico e l'accesso alla rete sarà possibile solo dai componenti all'interno di questo progetto (cluster-local) e dalla rete privata.

    Fai clic su Privato per modificare la visibilità dell'endpoint dell'app. Gli URL disponibili per la tua definizione di endpoint vengono visualizzati per gli URL privati e di solo progetto.

  4. Per accedere alla tua applicazione in maniera sicura utilizzando un VPE (Virtual Private Endpoint), attieniti alle istruzioni per l'utilizzo del tuo VPE per accedere a un'applicazione per impostare il VPE per accedere alla tua applicazione.

Se imposti la tua applicazione per visibility = private, puoi testare la tua applicazione solo tramite l'endpoint privato virtuale dall'interno del tuo VPC(Virtual Private Cloud).

Modificando la visibilità della tua applicazione, la modifica è immediatamente effettiva. È importante considerare l'impatto della modifica per gli utenti attivi o le integrazioni, nonché eventuali implicazioni di sicurezza. È possibile modificare l'impostazione di visibilità come necessario.

Aggiornamento dell'applicazione con la CLI

Per aggiornare la tua applicazione con la CLI, utilizza il comando app update. Questo comando richiede il nome dell'applicazione che vuoi aggiornare e consente anche altri argomenti facoltativi. Per un elenco completo delle opzioni, consultare il comando ibmcloud ce app update.

Aggiorna l'applicazione che hai creato in Distribuzione di una applicazione con la CLI per aggiungere una variabile di ambiente.

L'immagine di esempio icr.io/codeengine/hello legge la variabile di ambiente TARGET e stampa Hello ${TARGET}. Se questa variabile d'ambiente è vuota, viene restituito Hello World. Il seguente esempio aggiorna l'applicazione per modificare il valore della variabile di ambiente TARGET in Stranger. Per ulteriori informazioni sul codice utilizzato per questo esempio, consultare hello.

  1. Eseguire il application update il comando. Ad esempio,

    ibmcloud ce application update -n myapp --env TARGET=Stranger
    

    Output di esempio

    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. Esegui il comando application get per visualizzare lo stato della tua applicazione, incluse le informazioni di revisione più recenti.

    ibmcloud ce application get --name myapp  
    

    Output di esempio

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

    Dall'output nella sezione Revisioni, puoi visualizzare la revisione dell'applicazione più recente del servizio myapp. Inoltre, si noti che il 100% del traffico all'applicazione sta eseguendo l'ultima revisione dell'applicazione.

  3. Chiamare l'applicazione.

    curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
    

    Output di esempio

    Hello Stranger
    

    Dall'output di questo comando, puoi vedere che l'applicazione aggiornata ora restituisce Hello Stranger.

  4. Utilizzare il comando ibmcloud ce revision list per visualizzare tutte le revisioni dell'applicazione. Utilizza queste informazioni per aiutarti a gestire le tue revisioni dell'applicazione come Code Engine ha una quota per il numero di revisioni dell'applicazione in un progetto.

    Nel seguente output revision list, tieni presente che Code Engine conserva solo l'ultima revisione inattiva della tua applicazione in aggiunta alla tua revisione dell'applicazione attiva. Le revisioni precedenti vengono eliminate.

    ibmcloud ce revision list
    

    Output di esempio

    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
    

Puoi gestire le tue revisioni dell'applicazione utilizzando il comando ibmcloud ce revision get per visualizzare i dettagli di una revisione dell'applicazione e il comando ibmcloud ce revision delete per rimuovere le revisioni che non vuoi conservare. È inoltre possibile utilizzare il comando ibmcloud ce revision logs per visualizzare i log delle istanze di revisione dell'applicazione. Utilizzare il comando ibmcloud ce revision events per visualizzare gli eventi di sistema delle istanze di revisione dell'applicazione.

Aggiornamento della tua app per utilizzare gli endpoint solo progetto con la CLI

Per impostazione predefinita, quando distribuisci un'applicazione, l'applicazione viene distribuita in modo che possa ricevere richieste da Internet pubblico, da una rete privata o da componenti all'interno del progetto. Per modificare la visibilità della tua applicazione in modo che vi si acceda solo da altre risorse Code Engine in esecuzione nello stesso progetto, utilizza l'opzione --visibility=project con il comando ibmcloud ce app update o ibmcloud ce app create.

In questo scenario, aggiorna l'applicazione che hai creato in Distribuzione di una applicazione con la CLI per modificare la visibilità dell'applicazione in modo da utilizzare un endpoint del progetto .

  1. Eseguire il application update il comando. Ad esempio,

    ibmcloud ce application update -n myapp --visibility=project
    

    Output di esempio

    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. Esegui il comando application get per visualizzare lo stato della tua applicazione, incluse le informazioni di revisione più recenti.

    ibmcloud ce application get --name myapp  
    

    Output di esempio

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

    Dall'output nella sezione Revisioni, puoi visualizzare la revisione dell'applicazione più recente del servizio myapp. Inoltre, si noti che il 100% del traffico all'applicazione sta eseguendo l'ultima revisione dell'applicazione.

Ora che hai impostato --visibility=project sulla tua applicazione, questa applicazione non è più accessibile da internet pubblico e l'accesso alla rete è possibile solo dai componenti all'interno di questo progetto (cluster-local).

Aggiornamento dell'applicazione per utilizzare gli endpoint privati con la CLI

Per impostazione predefinita, quando distribuisci un'applicazione, l'applicazione viene distribuita in modo che possa ricevere richieste da Internet pubblico, da una rete privata o da componenti all'interno del progetto. Puoi configurare la visibilità dell'endpoint per la tua applicazione in modo che sia distribuita con un endpoint privato. L'impostazione di un endpoint privato significa che la tua applicazione non è accessibile da internet pubblico e l'accesso alla rete è possibile solo da altri componenti di IBM Cloud che sono in esecuzione nello stesso progetto (cluster-local).

Per modificare la visibilità della tua applicazione in modo che sia accessibile solo con un endpoint privato, utilizza l'opzione --visibility=private con il comando ibmcloud ce app update o ibmcloud ce app create.

Puoi utilizzare il tuo VPE solo per accedere alla tua applicazione con un endpoint privato se il tuo progetto selezionato supporta la visibilità privata dell'applicazione. Per confermare se il progetto supporta la visibilità privata dell'applicazione, utilizzare il comando ibmcloud ce project get per verificare che l'output per Application Private Visibility Supported sia impostato su true.

In questo scenario, aggiorna l'applicazione che hai creato in Distribuzione di una applicazione con la CLI per modificare la visibilità dell'applicazione in modo da utilizzare un endpoint privato.

  1. Confermare che il progetto esistente supporta le applicazioni con visibilità privata. Utilizzare il comando ibmcloud ce project get per verificare che l'output per Application Private Visibility Supported sia impostato su true. Se il valore è false, contattare il supporto IBM per abilitare questa funzionalità all'interno del progetto esistente.

    ibmcloud ce project get -n myproject
    

    Output di esempio

    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. Se Application Private Visibility Supported è true, puoi aggiornare la tua applicazione per utilizzare gli endpoint privati. Eseguire il application update il comando. Ad esempio,

    ibmcloud ce application update -n myapp --visibility=private
    

    Output di esempio

    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. Esegui il comando application get per visualizzare lo stato della tua applicazione, incluse le informazioni di revisione più recenti.

    ibmcloud ce application get --name myapp  
    

    Output di esempio

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

    Dall'output nella sezione Revisioni, puoi visualizzare la revisione dell'applicazione più recente del servizio myapp. Inoltre, si noti che il 100% del traffico all'applicazione sta eseguendo l'ultima revisione dell'applicazione.

  4. Configura il tuo VPE per accedere alla tua applicazione con un endpoint privato.

Aggiornamento di una app per fare riferimento a un'immagine differente

Puoi aggiornare la tua applicazione per fare riferimento a una diversa immagine.

L'immagine associata alla tua specifica revisione dell'applicazione ha un digest del registro del contenitore univoco e Code Engine utilizza questo digest per la durata della tua revisione dell'applicazione. Se crei una nuova versione di un'immagine con la stessa tag dell'immagine originale, l'immagine originale viene sovrascritta nel registro del contenitore e diventa senza tag. L'immagine più recente è taggata e questa immagine più recente ha un digest diverso. La tua applicazione Code Engine non utilizza questa immagine più recente, perché l'immagine più recente ha un digest differente rispetto all'immagine a cui fa riferimento la revisione dell'applicazione. Code Engine può ancora creare nuove istanze della revisione dell'applicazione finché l'immagine senza tag, a cui si fa riferimento in origine, esiste ancora. Per ulteriori informazioni, vedi Perché Code Engine non può eseguire il pull di un'immagine?

Aggiornamento di una applicazione per fare riferimento a un'immagine differente in Container Registry dalla console

Aggiorna un'applicazione per fare riferimento a un'immagine differente in un registro del contenitore utilizzando la console Code Engine.

Per questo esempio, aggiorniamo helloapp che hai creato in Distribuzione di una applicazione che fa riferimento ad una immagine in un registro del contenitore dalla console per fare riferimento ad una diversa immagine. L'applicazione aggiornata fa riferimento all'immagine helloworld_repo nello spazio dei nomi di mynamespace2 in Container Registry. La seguente procedura descrive come aggiungere l'accesso a un registro durante l'aggiornamento di un'applicazione.

Per ulteriori informazioni sull'aggiunta di un'immagine a Container Registry, vedi Introduzione a IBM Cloud Container Registry.

  1. Andate alla pagina della vostra candidatura. Un modo per passare alla pagina dell'applicazione è quello di

    • Individua la pagina dei progettiCode Engine.
    • Fare clic sul nome del progetto per aprire la pagina Panoramica.
    • Fare clic su Applicazioni per aprire un elenco delle applicazioni. Fare clic sul nome dell'applicazione per aprire la pagina dell'applicazione.
  2. Fare clic sulla scheda Configurazione per aprire i dettagli di configurazione per l'ultima revisione dell'applicazione.

  3. Dalla scheda Configurazione, fare clic sulla scheda Codice.

  4. Per l'immagine da eseguire, fare clic su Configura l'immagine per aprire la finestra di dialogo di configurazione dell'immagine. Per questo esempio, aggiorna l'applicazione per fare riferimento a un registro ibmcregistry esistente, seleziona lo spazio dei nomi mynamespace2, seleziona l'immagine helloworld-repo e seleziona 1 come valore per tag. Dalla pagina Configura immagine,

    • Se l'immagine che vuoi utilizzare risiede nello stesso account Container Registry, seleziona l'accesso per il registro.
    • Se l'immagine che si desidera utilizzare risiede in un account del registro del contenitore differente, è possibile selezionare l'accesso al registro per questo registro. Se l'accesso al registro non esiste, devi prima creare la tua chiave API IAM e poi Aggiungi l'accesso al registro a Code Engine.

    Se vuoi aggiornare solo l'accesso del registro alla tua immagine, puoi apportare questa modifica senza fare clic su Configura l'immagine per aprire la finestra di dialogo di configurazione dell'immagine e utilizzare il menu di accesso del registro per selezionare un accesso del registro esistente o creare un accesso del registro a Code Engine per l'immagine a cui fa riferimento la tua applicazione.

  5. Fai clic su Done. Hai selezionato la tua immagine nel registro a cui fare riferimento dalla tua app.

  6. Fai clic su Distribuisci per salvare la tua modifica e distribuire la revisione dell'applicazione.

  7. Dopo che lo stato dell'applicazione viene modificato in Pronto, puoi testare la revisione dell'applicazione. Fare clic su Applicazione di test, quindi fare clic su Invia richiesta nel riquadro Applicazione di test. Per aprire l'applicazione in una pagina Web, fare clic su Applicazione URL. Per questa app, viene visualizzato Hello World from Code Engine.

Aggiornamento di un'applicazione per fare riferimento a una diversa immagine in Container Registry con la CLI

Aggiorna un'applicazione per fare riferimento a un'immagine diversa nella CLI Container Registry dalla CLI Code Engine.

Per questo esempio, aggiorna il myhelloapp che hai creato in Distribuzione di un'applicazione che fa riferimento ad una immagine in un registro del contenitore con la CLI per fare riferimento a una diversa immagine in uno spazio dei nomi differente nello stesso account. Aggiorna l'applicazione per fare riferimento all'immagine helloworld_repo nello spazio dei nomi mynamespace2 in Container Registry.

  1. Aggiungi un'immagine diversa a Container Registry. Per questo esempio, aggiungi l'immagine helloworld_repo nello spazio dei nomi mynamespace2 in Container Registry. Per ulteriori informazioni sull'aggiunta di un'immagine a Container Registry, vedi Introduzione a IBM Cloud Container Registry.

  2. Aggiungi l'accesso al registro a Code Engine. Per questo esempio, poiché l'immagine helloworld_repo risiede nello stesso account, utilizzare l'accesso al registro myregistry precedentemente definito.

  3. Aggiorna la tua applicazione e fai riferimento all'immagine in Container Registry utilizzando l'accesso myregistry. Ad esempio, aggiorna l'applicazione myhelloapp per fare riferimento a us.icr.io/mynamespace2/helloworld_repo utilizzando le informazioni di accesso myregistry.

    ibmcloud ce app update --name myhelloapp --image us.icr.io/mynamespace2/helloworld_repo:1 --registry-secret myregistry
    

    Il formato del nome dell'immagine per questa applicazione è REGISTRY/NAMESPACE/REPOSITORY:TAG dove REGISTRY e TAG sono facoltativi. Se REGISTRY non è specificato, il valore predefinito è docker.io. Se TAG non è specificato, il valore predefinito è latest.

  4. Una volta aggiornata la tua applicazione, puoi accedervi. Per ottenere l' URL della tua applicazione, esegui ibmcloud ce app get --name myhelloapp --output url. Quando esegui il curl dell'applicazione myhelloapp, l'applicazione restituisce Hello World from Code Engine, il che dimostra che l'applicazione utilizza ora l'immagine helloworld_repo.

Aggiornamento di un'applicazione per fare riferimento a un'immagine creata dal codice sorgente dalla console

Aggiorna un'applicazione per fare riferimento a un'immagine creata dal codice sorgente utilizzando la console Code Engine.

Per questo esempio, aggiorniamo helloapp che hai creato in Distribuzione di un applicazione che fa riferimento a un'immagine in un registro del contenitore dalla console per fare riferimento a un'immagine creata dal codice sorgente.

Per ulteriori informazioni sulla creazione di una configurazione di build dalla console, vedi Crea una build.

  1. Andate alla pagina della vostra candidatura. Un modo per passare alla pagina dell'applicazione è quello di
    • Individua la pagina dei progettiCode Engine.
    • Fare clic sul nome del progetto per aprire la pagina Panoramica.
    • Fare clic su Applicazioni per aprire un elenco delle applicazioni. Fare clic sul nome dell'applicazione per aprire la pagina dell'applicazione.
  2. Fare clic sulla scheda Configurazione per aprire i dettagli di configurazione per l'ultima revisione dell'applicazione.
  3. Dalla scheda Configurazione, fare clic sulla scheda Codice.
  4. Dalla scheda Codice, puoi creare una build dell'immagine oppure puoi rieseguire una build dell'immagine esistente a cui fa riferimento la tua applicazione. Per creare una build immagine, fare clic su Crea immagine dall'origine per eseguire una build immagine. Viene aperta la pagina Specifica dettagli di build in cui puoi immettere i dettagli della tua build per distribuire la tua applicazione dal codice sorgente. Fare clic su Fine quando vengono specificati gli aggiornamenti dei dettagli della build.
  5. Fare clic su Distribuisci per salvare le modifiche, eseguire la build e distribuire la revisione dell'applicazione.
  6. Dopo che lo stato dell'applicazione viene modificato in Pronto, puoi testare la revisione dell'applicazione. Fare clic su Applicazione di test, quindi fare clic su Invia richiesta nel riquadro Applicazione di test. Per aprire l'applicazione in una pagina Web, fare clic su Applicazione URL.
  7. Per aggiornare nuovamente questa applicazione in modo che faccia riferimento a un'immagine di build aggiornata, fai clic su Riesegui build nella scheda Codice e specifica una tag di immagine univoca per l'immagine di build aggiornata. Se si desidera apportare ulteriori modifiche ai dettagli della build, fare clic su Modifica dettagli della build. Viene aperta la pagina Specifica dettagli di build in cui puoi immettere i dettagli della tua build per distribuire la tua applicazione dal codice sorgente. Fare clic su Fine quando vengono specificati gli aggiornamenti dei dettagli della build.
  8. Fai clic su Distribuisci per salvare le tue modifiche, eseguire la build con le modifiche e distribuire la revisione dell'app.
  9. Dopo che lo stato dell'applicazione viene modificato in Pronto, puoi testare la revisione dell'applicazione. Fare clic su Applicazione di test, quindi fare clic su Invia richiesta nel riquadro Applicazione di test. Per aprire l'applicazione in una pagina Web, fare clic su Applicazione URL.

Aggiornamento di una applicazione per fare riferimento a un'immagine creata dal codice sorgente con la CLI

Aggiorna un'applicazione per fare riferimento a un'immagine creata dal codice sorgente utilizzando la CLI Code Engine.

Per questo esempio, modifichi il myhelloapp che hai aggiornato in Aggiornamento di un'applicazione per fare riferimento a una diversa immagine in Container Registry con la CLI per fare riferimento a una diversa immagine creata dal codice sorgente.

Dall'esempio precedente, l'applicazione myhelloapp fa riferimento a us.icr.io/mynamespace2/helloworld_repo utilizzando le informazioni di accesso myregistry. Creiamo una configurazione di build, eseguiamo la build e aggiorniamo myhelloapp per fare riferimento all'immagine che è stata creata dal codice sorgente.

  1. Creare la configurazione di creazione. Ad esempio, il seguente comando build create crea una configurazione di creazione denominata helloworld-build. Questa configurazione viene creata dal repository Git pubblico https://github.com/IBM/CodeEngine, utilizza la strategia dockerfile e la dimensione di build medium e archivia l'immagine in us.icr.io/mynamespace/codeengine-helloworld utilizzando il segreto del registro delle immagini definito in myregistry.

    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. Eseguire la build. Questo esempio esegue una build denominata helloworld-build-run e utilizza la configurazione di build helloworld-build.

    ibmcloud ce buildrun submit --build helloworld-build --name helloworld-build-run
    

    Il seguente output visualizza i dettagli della build eseguita utilizzando il comando ibmcloud ce buildrun get.

    Output di esempio

    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
    
    

    Per ulteriori informazioni sulla creazione di una configurazione di build con la CLI, vedi Crea un build.

  3. Aggiorna myhelloapp per fare riferimento all'immagine che hai creato e utilizza il segreto di registro myregistry.

    ibmcloud ce app update --name myhelloapp --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry
    
  4. Visualizza le informazioni sull'applicazione aggiornata per confermare che l'immagine a cui si fa riferimento è l'immagine che hai creato.

    ibmcloud ce app get --name myhelloapp
    

    Output di esempio

    [...]
    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.private.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
    [...]