Mise à jour de votre application

Une application contient une ou plusieurs révisions. Une révision représente une version non modifiable des propriétés de configuration de l'application. Chaque mise à jour d'une propriété de configuration d'application crée une nouvelle révision de l'application.

Lorsque vous modifiez une application et que vous déployez l'application avec les modifications ou que vous redéployez l'application sans modifier ses paramètres de configuration, ces actions déploient une nouvelle révision de l'application. Lorsque vous déployez (ou redéployez) une révision d'application, Code Engine utilise tous les paramètres de configuration modifiés et obtient toute image de conteneur, valeur confidentielle ou mappe de configuration mise à jour référencée par l'application.

Pour plus d'informations sur le déploiement d'applications, telles que la spécification de combinaisons vCPU et mémoire valides, la définition de commandes et d'arguments, de variables d'environnement, de secrets ou de mappes de configuration, voir Options de déploiement d'une application.

Code Engine applique un quota pour le nombre d'applications et de révisions d'application dans un projet. Pour plus d'informations sur les limites des projets, voir Quotas de projet de. Code Enginequi ne conserve que la dernière révision inactive de votre application en plus de votre révision d'application active. Les révisions plus anciennes sont supprimées.

Vous pouvez mettre à jour votre application déployée et son code référencé avec n'importe quelles des manières suivantes, indépendamment de la façon dont vous avez créé ou mis à jour votre application:

  • Si vous disposez d'une image de conteneur, conformément à la norme de l'Open Container Initiative(OCI), vous ne devez fournir qu'une référence à l'image, qui pointe vers l'emplacement de votre registre de conteneurs lorsque vous déployez votre application. Vous pouvez déployer votre application avec une image dans un registre public ou un registre privé.

    Si vous avez créé votre application à l'aide de la commande app create et que vous avez spécifié l'option --build-source pour générer l'image de conteneur à partir de la source locale ou du référentiel et que vous souhaitez modifier votre application pour qu'elle pointe vers une autre image de conteneur, vous devez d'abord supprimer l'association de la génération de votre application. Par exemple, exécutez ibmcloud ce application update -n APP_NAME --build-clear. Après avoir retiré l'association de la génération de votre application, vous pouvez mettre à jour l'application pour référencer une image différente.

  • Si vous démarrez avec le code source qui réside dans un référentiel Git, vous pouvez choisir de laisser Code Engine prendre soin de construire l'image à partir de votre source et de déployer l'application avec une opération unique. Dans ce scénario, Code Engine télécharge votre image sur IBM Cloud® Container Registry. Pour en savoir plus, reportez-vous à la section Déploiement de votre application à partir du code source du référentiel. Si vous souhaitez plus de contrôle sur la génération de votre image, vous pouvez choisir de créer l'image avec Code Engine avant de déployer votre application.

  • Si vous démarrez avec le code source résidant sur un poste de travail en local, vous pouvez choisir de laisser Code Engine prendre soin de construire l'image à partir de votre source et de déployer l'application avec une commande CLI unique. Dans ce scénario, Code Engine télécharge votre image sur IBM Cloud® Container Registry. Pour en savoir plus, reportez-vous à la section Déploiement de votre application à partir du code source local avec l'interface de ligne de commande. Si vous souhaitez plus de contrôle sur la génération de votre image, vous pouvez choisir de créer l'image avec Code Engine avant de déployer votre application.

Par exemple, vous pouvez choisir de laisser Code Engine gérer la génération de votre source locale pendant que vous faites évoluer le développement de votre source pour l'application. Ensuite, après la maturation de l'image, vous pouvez mettre à jour l'application déployée pour faire référence à l'image spécifique que vous voulez. Vous pouvez répéter ce processus si nécessaire.

Lorsque vous déployez votre application mise à jour, la dernière version de votre image de conteneur référencée est téléchargée et déployée, sauf si une balise est spécifiée pour l'image. Si une balise est spécifiée pour l'image, l'image balisée est utilisée pour le déploiement.

Que se passe-t-il si je souhaite redéployer mon application sans modifier les paramètres de configuration?

Vous pouvez toujours déployer votre application avec des modifications de configuration en modifiant une valeur de configuration et en déployant l'application.

Toutefois, vous pouvez souhaiter redéployer une révision d'application sans modifier les paramètres de configuration de votre application. Il se peut que votre image de conteneur référencée soit modifiée et que vous souhaitiez que votre révision d'application utilise l'image de conteneur mise à jour. Vous pouvez également souhaiter que votre application fasse référence à un secret ou à une mappe de configuration, qui contient des valeurs de contenu mises à jour.

Pour ces scénarios, à partir de la console, vous pouvez cliquer sur Redéployer dans l'onglet Configuration de la page de votre application, sans modifier la configuration de votre application. Avec l'interface de ligne de commande, utilisez la commande ibmcloud ce app update.

Mise à jour de votre application à partir de la console

Mettez à jour l'application que vous avez créée à la section Déploiement d'une application à partir d'un registre public de la console afin d'ajouter une variable d'environnement.

  1. Accédez à la page de votre application. L'une des méthodes permettant d'accéder à la page de votre application est la suivante :
    • Recherchez la page des projetsCode Engine.
    • Cliquez sur le nom de votre projet pour ouvrir la page de présentation.
    • Cliquez sur Applications pour ouvrir la liste de vos applications. Cliquez sur le nom de votre application pour ouvrir la page de l'application.
  2. A partir de la page d'application, vous pouvez afficher des informations sur les instances d'exécution de votre application et ses révisions, les détails de configuration et les paramètres de nœud final de l'application. Cliquez sur le nom de la révision d'application que vous souhaitez utiliser pour ouvrir son récapitulatif de configuration. Pour accéder au récapitulatif de configuration de la dernière révision d'application, vous pouvez également cliquer sur l'onglet Configuration.
  3. Dans l'onglet Configuration, cliquez sur l'onglet Variables d'environnement.
  4. Cliquez sur Ajouter une variable d'environnement. Définissez cette variable sous forme de valeur littérale. Entrez TARGET comme nom et Stranger comme valeur. Cliquez sur Ajouter.
  5. Cliquez sur Déployer pour enregistrer vos modifications et déployer la révision de l'application.
  6. Lorsque l'application prend le statut Prêt, vous pouvez tester sa révision. Cliquez sur Tester l'application, puis sur Envoyer une demande dans le panneau de test de l'application. Pour ouvrir l'application dans une page Web, cliquez sur URL de l'application. Pour cette application, Hello Stranger s'affiche.

Dans le présent exemple, vous avez mis à jour les variables d'environnement d'une application. La mise à jour peut s'appliquer également à d'autres paramètres de configuration d'application, comme le référencement d'une image différente ou d'une génération d'image différente dans l'onglet Code. Dans l'onglet Ressources & mise à l'échelle, vous pouvez mettre à jour les paramètres de mémoire et de mise à l'échelle d'application de votre application. Dans l'onglet Variables d'environnement, vous pouvez ajouter ou mettre à jour les variables d'environnement de l'application. Dans l'onglet Options de démarrage de l'image, vous pouvez ajouter ou mettre à jour la commande et les arguments pour remplacer les paramètres dans votre image de conteneur ou utiliser des sondes de vivacité et de disponibilité.

Mise à jour de votre application pour utiliser des nœuds finaux de projet uniquement à partir de la console

Par défaut, lorsque vous déployez une application, celle-ci est déployée de telle sorte qu'elle puisse recevoir des demandes provenant de l'Internet public, d'un réseau privé ou de composants à l'intérieur même du projet. Vous pouvez modifier la visibilité de cette application de sorte qu'elle soit accessible uniquement par d'autres ressources Code Engine qui s'exécutent dans le même environnement Code Engine. Utilisez l'onglet Correspondances de domaines pour modifier la visibilité d'une application.

  1. Accédez à la page de votre application. L'une des méthodes permettant d'accéder à la page de votre application est la suivante :

    • Recherchez la page des projetsCode Engine.
    • Cliquez sur le nom de votre projet pour ouvrir la page de présentation.
    • Cliquez sur Applications pour ouvrir la liste de vos applications. Cliquez sur le nom de votre application pour ouvrir la page de l'application.
  2. A partir de la page d'application, vous pouvez afficher des informations sur les instances d'exécution de votre application et ses révisions, les détails de configuration et les paramètres de nœud final de l'application. Cliquez sur l'onglet Correspondances de domaines pour ouvrir les paramètres de visibilité des points d'extrémité pour l'application.

  3. Dans l'onglet Domain mappings, notez les URL disponibles pour votre application. Lorsque Public est sélectionné, vous pouvez afficher l' URL de mappage de domaine de système public et interne pour l'application. Lorsque l'option Pas de mappage de domaine de système externe est sélectionnée, cette application n'est plus accessible depuis l'internet public et l'accès au réseau n'est possible qu'à partir des composants de ce projet.

    Lorsque vous modifiez la visibilité de votre application, le changement est effectif immédiatement. Il est important de tenir compte de l'impact du changement pour vos utilisateurs actifs ou intégrations, ainsi que de toutes les implications en termes matière de sécurité. Vous pouvez modifier le paramètre de visibilité selon vos besoins.

Mise à jour de votre application pour utiliser des nœuds finaux privés à partir de la console

Par défaut, lorsque vous déployez une application, celle-ci est déployée de telle sorte qu'elle puisse recevoir des demandes provenant de l'Internet public, d'un réseau privé ou de composants à l'intérieur même du projet. Modifions la visibilité de cette application de sorte qu'elle ne soit accessible que par d'autres ressources Code Engine qui s'exécutent dans le même projet et depuis le réseau privé à l'aide des nœuds finaux privés virtuels. Utilisez l'onglet Correspondances de domaines pour modifier la visibilité d'une application.

  1. Accédez à la page de votre application. L'une des méthodes permettant d'accéder à la page de votre application est la suivante :

    • Recherchez la page des projetsCode Engine.
    • Cliquez sur le nom de votre projet pour ouvrir la page de présentation.
    • Cliquez sur Applications pour ouvrir la liste de vos applications. Cliquez sur le nom de votre application pour ouvrir la page de l'application.
  2. A partir de la page d'application, vous pouvez afficher des informations sur les instances d'exécution de votre application et ses révisions, les détails de configuration et les paramètres de nœud final de l'application. Cliquez sur l'onglet Correspondances de domaines pour ouvrir les paramètres de visibilité des points d'extrémité pour l'application.

  3. Dans l'onglet Domain mappings, notez les URL disponibles pour votre application. Lorsque Private est sélectionné, cette application n'est plus accessible à partir du réseau public et l'accès au réseau n'est possible qu'à partir des composants de ce projet (cluster-local) et du réseau privé.

    Cliquez sur Privé pour modifier la visibilité du nœud final de l'application. Les URL disponibles pour votre définition de nœud final sont affichées pour les URL privées et les URL de projet uniquement.

  4. Pour accéder à votre application en toute sécurité à l'aide d'un nœud final privé virtuel (VPE), suivez les instructions de Utilisation de votre VPE pour accéder à une application afin de configurer correctement le VPE pour accéder à votre application.

Si vous définissez votre application pour visibility = private, vous pouvez uniquement tester votre application via lenœud final privé virtuel à l'intérieur de votre nuage privé virtuel (VPC).

En changeant la visibilité de votre application, la modification prend effet immédiatement. Il est important de tenir compte de l'impact du changement pour vos utilisateurs actifs ou intégrations, ainsi que de toutes les implications en termes matière de sécurité. Vous pouvez modifier le paramètre de visibilité selon vos besoins.

Mise à jour de votre application via l'interface de ligne de commande

Pour mettre à jour votre application via l'interface de ligne de commande, utilisez la commande app update. Cette commande requiert le nom de l'application que vous souhaitez mettre à jour et autorise d'autres arguments facultatifs. Pour obtenir la liste complète des options, voir la commande ibmcloud ce app update.

Mettez à jour l'application que vous avez créée à la section Déploiement d'une application via l'interface de ligne de commande afin d'ajouter une variable d'environnement.

L'exemple d'image icr.io/codeengine/hello lit la variable d'environnement TARGETet imprime Hello ${TARGET}. Si cette variable d'environnement est vide, Hello World est renvoyé. L'exemple suivant met à jour l'application pour remplacer la valeur de la variable d'environnement TARGET par Stranger. Pour plus d'informations sur le code utilisé pour cet exemple, voir hello.

  1. Exécutez la commande application update. Par exemple :

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

    Exemple de sortie

    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. Exécutez la commande application get pour afficher le statut de votre application, y compris les informations sur la dernière révision.

    ibmcloud ce application get --name myapp  
    

    Exemple de sortie

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

    Dans la section Revisions de la sortie, vous pouvez voir la dernière révision d'application du service myapp. Notez également que 100 % du trafic vers l'application exécute la dernière révision de l'application.

  3. Appelez l'application.

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

    Exemple de sortie

    Hello Stranger
    

    Dans la sortie de cette commande, vous pouvez voir que l'application mise à jour renvoie Hello Stranger.

  4. Utilisez la commande ibmcloud ce revision list pour afficher toutes vos révisions d'application. Utilisez ces informations pour mieux gérer vos révisions d'application sachant que Code Engine applique un quota pour le nombre de révisions d'application dans un projet.

    Dans la sortie de la commande revision list ci-dessous, vous remarquerez que Code Engine conserve uniquement la révision inactive la plus récente de votre application, en plus de votre révision d'application active. Les révisions plus anciennes sont supprimées.

    ibmcloud ce revision list
    

    Exemple de sortie

    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
    

Vous pouvez gérer vos révisions d'application en utilisant la commande ibmcloud ce revision get pour afficher les détails relatifs à une révision d'application ainsi que la commande ibmcloud ce revision delete pour supprimer les révisions que vous ne voulez pas conserver. Vous pouvez aussi utiliser la commande ibmcloud ce revision logs pour afficher les journaux des instances de révision d'application. Utilisez la commande ibmcloud ce revision events pour afficher les événements système des instances de révision d'application.

Mise à jour de votre application pour utiliser les nœuds finaux de projet uniquement avec l'interface de ligne de commande

Par défaut, lorsque vous déployez une application, celle-ci est déployée de telle sorte qu'elle puisse recevoir des demandes provenant de l'Internet public, d'un réseau privé ou de composants à l'intérieur même du projet. Pour modifier la visibilité de votre application de sorte qu'elle ne soit accessible que par d'autres ressources Code Engine qui s'exécutent dans le même projet, utilisez l'option --visibility=project avec la commande ibmcloud ce app update ou ibmcloud ce app create.

Dans ce scénario, mettez à jour l'application que vous avez créée dans Déploiement d'une application avec l'interface de ligne de commande pour modifier la visibilité de l'application pour utiliser un nœud final de projet.

  1. Exécutez la commande application update. Par exemple :

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

    Exemple de sortie

    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. Exécutez la commande application get pour afficher le statut de votre application, y compris les informations sur la dernière révision.

    ibmcloud ce application get --name myapp  
    

    Exemple de sortie

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

    Dans la section Revisions de la sortie, vous pouvez voir la dernière révision d'application du service myapp. Notez également que 100 % du trafic vers l'application exécute la dernière révision de l'application.

Maintenant que vous avez défini --visibility=project sur votre application, cette application n'est plus accessible à partir du réseau public et l'accès au réseau n'est possible qu'à partir des composants de ce projet (cluster-local).

Mise à jour de votre application pour utiliser des nœuds finaux privés avec l'interface de ligne de commande

Par défaut, lorsque vous déployez une application, celle-ci est déployée de telle sorte qu'elle puisse recevoir des demandes provenant de l'Internet public, d'un réseau privé ou de composants à l'intérieur même du projet. Vous pouvez définir la visibilité du nœud final pour votre application de sorte qu'elle soit déployée avec un nœud final privé. La définition d'un nœud final privé signifie que votre application n'est pas accessible à partir de l'accès public à Internet et que l'accès au réseau est possible uniquement d'autres services IBM Cloud qu'à partir de nœuds finaux privés virtuels (VPC) ou de composants Code Engine exécutés dans le même projet (cluster-local).

Pour modifier la visibilité de votre application de sorte qu'elle ne soit accessible qu'avec un noeud final privé, utilisez l'option --visibility=private avec la commande ibmcloud ce app update ou ibmcloud ce app create.

Vous pouvez uniquement utiliser votre nœud final privé virtuel pour accéder à votre application avec un nœud final privé si votre projet sélectionné prend en charge laVisibilité privée de l'application. Pour confirmer si le projet prend en charge la visibilité privée de l'application, utilisez la commande ibmcloud ce project get pour vérifier que la sortie de Application Private Visibility Supported est définie sur true.

Dans ce scénario, mettez à jour l'application que vous avez créée dans Déploiement d'une application avec l'interface de ligne de commande pour modifier la visibilité de l'application pour utiliser un Nœud final privé.

  1. Confirmez que le projet existant prend en charge les applications ayant une visibilité privée. Utilisez la commande ibmcloud ce project get pour vérifier que la sortie de Application Private Visibility Supported est définie sur true. Si la valeur est false, Contactez le support IBM pour activer cette fonction dans votre projet existant.

    ibmcloud ce project get -n myproject
    

    Exemple de sortie

    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. Si Application Private Visibility Supported est true, vous pouvez mettre à jour votre application pour utiliser des nœuds finaux privés. Exécutez la commande application update. Par exemple :

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

    Exemple de sortie

    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. Exécutez la commande application get pour afficher le statut de votre application, y compris les informations sur la dernière révision.

    ibmcloud ce application get --name myapp  
    

    Exemple de sortie

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

    Dans la section Revisions de la sortie, vous pouvez voir la dernière révision d'application du service myapp. Notez également que 100 % du trafic vers l'application exécute la dernière révision de l'application.

  4. Configurez votre VPE pouraccéder à votre application avec un nœud final privé.

Mise à jour d'une application pour référencer une image différente

Vous pouvez mettre à jour votre application pour référencer une autre image.

L'image associée à votre révision d'application spécifique possède un résumé de registre de conteneur unique et Code Engine utilise ce résumé pour la durée de vie de votre révision d'application. Si vous créez une version plus récente d'une image avec la même balise que l'image d'origine, l'image d'origine est remplacée dans le registre de conteneur et devient non balisée. L'image la plus récente est balisée, et cette image plus récente a un résumé différent. Votre application Code Engine n'utilise pas cette image plus récente, car celle-ci possède un résumé différent de celui de l'image référencée par la révision d'application. Code Engine peut toujours créer de nouvelles instances de la révision d'application tant que l'image non balisée, référencée à l'origine, existe toujours. Pour plus d'informations, voir Pourquoi Code Engine ne peut-il pas extraire une image?

Mise à jour d'une application pour référencer une autre image dans Container Registry à partir de la console

Mettez à jour une application pour référencer une autre image dans un registre de conteneur à l'aide de la console Code Engine.

Pour cet exemple, nous allons mettre à jour l'application helloapp que vous avez créée à la section Déploiement d'une application qui fait référence à une image dans Container Registry à partir de la console pour référencer une autre image. L'application mise à jour référence l'image helloworld_repo dans l'espace de nom mynamespace2 de Container Registry. Les étapes suivantes décrivent l'ajout de l'accès à un registre lors de la mise à jour d'une application.

Pour plus d'informations sur l'ajout d'une image à Container Registry, voir Initiation à IBM Cloud Container Registry.

  1. Accédez à la page de votre application. L'une des méthodes permettant d'accéder à la page de votre application est la suivante :

    • Recherchez la page des projetsCode Engine.
    • Cliquez sur le nom de votre projet pour ouvrir la page de présentation.
    • Cliquez sur Applications pour ouvrir la liste de vos applications. Cliquez sur le nom de votre application pour ouvrir la page de l'application.
  2. Cliquez sur l'onglet Configuration pour ouvrir les détails de configuration de la dernière révision de l'application.

  3. Dans l'onglet Configuration, cliquez sur l'onglet Code.

  4. Pour exécuter Image, cliquez sur Configurer l'image pour ouvrir la boîte de dialogue de configuration d'image. Dans le cadre du présent exemple, mettez à jour l'application pour référencer un ibmcregistry existant, sélectionnez l'espace de nom mynamespace2, l'image helloworld-repo, puis 1 comme valeur tag. A partir de la page de configuration d'image,

    • Si l'image que vous souhaitez utiliser se trouve dans le même compte Container Registry, sélectionnez l'accès au registre.
    • Si l'image que vous souhaitez utiliser se trouve dans un autre compte de registre de conteneur, vous pouvez sélectionner l'accès à ce registre. Si l'accès au registre n'existe pas, vous devez d'abord créer votre clé d'API IAM, puis ajouter un accès au registre dans Code Engine.

    Si vous souhaitez mettre à jour uniquement l'accès au registre de votre image, vous pouvez effectuer cette modification sans cliquer sur Configurer l'image pour ouvrir la boîte de dialogue Configurer l'image et utiliser le menu Accès au registre pour sélectionner un accès au registre existant ou créer un accès au registre à l'adresse Code Engine pour l'image référencée par votre application.

  5. Cliquez sur Terminé. Vous avez sélectionné votre image dans le registre à référencer à partir de votre application.

  6. Cliquez sur Déployer pour enregistrer vos modifications et déployer la révision de l'application.

  7. Lorsque l'application prend le statut Prêt, vous pouvez tester sa révision. Cliquez sur Tester l'application, puis sur Envoyer une demande dans le panneau de test de l'application. Pour ouvrir l'application dans une page Web, cliquez sur URL de l'application. Pour cette application, Hello World from Code Engine s'affiche.

Mise à jour d'une application pour référencer une autre image dans Container Registry via l'interface de ligne de commande

Mettez à jour une application pour référencer une autre image dans Container Registry à partir de l'interface de ligne de commande de Code Engine.

Pour cet exemple, mettez à jour l'application myhelloapp que vous avez créée à la section Déploiement d'une application qui référence une image dans Container Registry via l'interface de ligne de commande pour référencer une autre image dans un autre espace de nom du même compte. Mettez à jour l'application pour référencer l'image helloworld_repo dans l'espace de nom mynamespace2 de Container Registry.

  1. Ajoutez une autre image à Container Registry. Pour cet exemple, ajoutez l'image helloworld_repo dans l'espace de nom mynamespace2 dans Container Registry. Pour plus d'informations sur l'ajout d'une image à Container Registry, voir Initiation à IBM Cloud Container Registry.

  2. Ajoutez un accès au registre à Code Engine. Pour cet exemple, comme l'image helloworld_repo se trouve dans le même compte, utilisez l'accès au registre myregistry précédemment défini.

  3. Mettez à jour votre application et référencez l'image dans Container Registry à l'aide de l'accès à myregistry. Par exemple, mettez à jour l'application myhelloapp pour référencer us.icr.io/mynamespace2/helloworld_repo à l'aide des informations d'accès de myregistry.

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

    Le format du nom de l'image de cette application est REGISTRY/NAMESPACE/REPOSITORY:TAG, où REGISTRY et TAG sont facultatifs. Si REGISTRY n'est pas spécifié, la valeur par défaut est docker.io. Si TAG n'est pas spécifié, la valeur par défaut est latest.

  4. Une fois votre application mise à jour, vous pouvez y accéder. Pour obtenir l'URL de votre application, exécutez ibmcloud ce app get --name myhelloapp --output url. Lorsque vous exécutez la commande curl sur l'application myhelloapp, l'application renvoie Hello World from Code Engine, ce qui démontre qu'elle utilise désormais l'image helloworld_repo.

Mise à jour d'une application pour référencer une image générée à partir du code source de la console

Mettez à jour une application pour référencer une image qui est générée à partir du code source par le biais de la console Code Engine.

Pour cet exemple, nous allons mettre à jour l'application helloapp que vous avez créée à la section Déploiement d'une application qui fait référence à une image dans Container Registry à partir de la console pour référencer une image générée à partir du code source.

Pour plus d'informations sur la création d'une configuration de génération à partir de la console, voir Création d'une génération.

  1. Accédez à la page de votre application. L'une des méthodes permettant d'accéder à la page de votre application est la suivante :
    • Recherchez la page des projetsCode Engine.
    • Cliquez sur le nom de votre projet pour ouvrir la page de présentation.
    • Cliquez sur Applications pour ouvrir la liste de vos applications. Cliquez sur le nom de votre application pour ouvrir la page de l'application.
  2. Cliquez sur l'onglet Configuration pour ouvrir les détails de configuration de la dernière révision de l'application.
  3. Dans l'onglet Configuration, cliquez sur l'onglet Code.
  4. Dans l'onglet Code, vous pouvez créer une génération d'image ou exécuter à nouveau une génération d'image existante qui est référencée par l'application. Pour créer une génération d'image, cliquez sur Create image from source pour exécuter une génération d'image. La page Spécifier les détails de génération s'ouvre pour vous permettre d'entrer les détails de la génération pour déployer l'application à partir du code source. Cliquez sur Terminé après avoir spécifié les mises à jour des détails de génération.
  5. Cliquez sur Déployer pour enregistrer vos modifications, exécuter la compilation et déployer la révision de l'application.
  6. Lorsque l'application prend le statut Prêt, vous pouvez tester sa révision. Cliquez sur Tester l'application, puis sur Envoyer une demande dans le panneau de test de l'application. Pour ouvrir l'application dans une page Web, cliquez sur URL de l'application.
  7. Pour mettre à nouveau à jour cette application afin de référencer une image de génération mise à jour, cliquez sur Rerun build dans l'onglet Code et spécifiez une balise d'image unique pour l'image de génération mise à jour. Si vous souhaitez apporter d'autres modifications aux détails de génération, cliquez sur Editer les détails de génération. La page Spécifier les détails de génération s'ouvre pour vous permettre d'entrer les détails de la génération pour déployer l'application à partir du code source. Cliquez sur Terminé après avoir spécifié les mises à jour des détails de génération.
  8. Cliquez sur Déployer pour enregistrer vos modifications, exécuter la compilation avec vos modifications et déployer la révision de l'application.
  9. Lorsque l'application prend le statut Prêt, vous pouvez tester sa révision. Cliquez sur Tester l'application, puis sur Envoyer une demande dans le panneau de test de l'application. Pour ouvrir l'application dans une page Web, cliquez sur URL de l'application.

Mise à jour d'une application pour référencer une image générée à partir du code source à l'aide de l'interface de ligne de commande

Mettez à jour une application pour référencer une image qui est générée à partir du code source par le biais de l'interface de ligne de commande Code Engine.

Pour cet exemple, nous allons modifier l'application myhelloapp qui a été mise à jour à l'étape Mise à jour d'une application pour référencer une image différente dans Container Registry via l'interface de ligne de commande afin de référencer une image différente qui est générée à partir du code source.

Dans l'exemple précédent, l'application myhelloapp référence us.icr.io/mynamespace2/helloworld_repo à l'aide des informations d'accès myregistry. Nous allons créer une configuration de génération, exécuter la génération et mettre à jour l'application myhelloapp pour référencer l'image qui a été générée à partir du code source.

  1. Créez la configuration de génération. Par exemple, la commande build create suivante crée une configuration de génération appelée helloworld-build. Cette configuration se construit à partir du fichier public du répertoireGithttps://github.com/IBM/CodeEngine, utilise la stratégie dockerfile et la taille de génération medium, et stocke l'image dans us.icr.io/mynamespace/codeengine-helloworld à l'aide du secret de registre d'images défini dans 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. Exécutez la génération. Cet exemple exécute une génération nommée helloworld-build-run et utilise la configuration de génération helloworld-build :

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

    La sortie suivante présente les détails de l'exécution de génération en utilisant la commande ibmcloud ce buildrun get.

    Exemple de sortie

    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
    
    

    Pour plus d'informations sur la création d'une configuration de génération à l'aide de l'interface de ligne de commande, voir Création d'une génération.

  3. Mettez à jour l'application myhelloapp pour référencer l'image que vous avez générée et qui utilise le secret de registre myregistry.

    ibmcloud ce app update --name myhelloapp --image us.icr.io/mynamespace/codeengine-helloworld --registry-secret myregistry
    
  4. Affichez les informations relatives à l'application mise à jour pour confirmer que l'image référencée est celle que vous avez générée.

    ibmcloud ce app get --name myhelloapp
    

    Exemple de sortie

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