[DOCKER] Lancer une application sur Code Engine à l'aide d'IBM Cloud Shell

supposition

Dans «Lancement d'une application sur Code Engine à l'aide d'IBM Cloud CLI», j'ai écrit l'autre jour, j'ai utilisé l'IBM Cloud CLI installé sur mon PC. Pour l'instant, utilisons IBM Cloud Shell pour lancer un conteneur sur IBM Cloud Code Engine. La grande différence est qu'il n'y a pas d'opération de connexion à IBM Cloud à partir de l'interface de ligne de commande IBM Cloud et que vous devez spécifier "us-south" comme emplacement d'IBM Cloud Shell.

IBM Cloud Shell

Qu'est-ce qu'IBM Cloud Shell?

C'est un environnement dans lequel vous pouvez exécuter le shell bash sur un navigateur Web. Il peut être utilisé sur IBM Cloud. Selon le manuel en ligne officiel "FAQ sur IBM Cloud Shell", l'environnement d'exécution du shell est Il existe Ubuntu Linux.

Depuis octobre 2020, la version d'Ubuntu utilisée dans IBM Cloud Shell est 18.04.5 LTS (Bionic Beaver). Pour vérifier, essayez d'exécuter la commande suivante dans IBM Cloud Shell.

$ cat /etc/os-release

Comment accéder à IBM Cloud Shell

Après vous être connecté à IBM Cloud avec un navigateur Web tel que Chrome, cliquez sur l'icône «IBM Cloud Shell» en haut à droite de l'écran. image.png

Changement de lieu

Depuis octobre 2020, «IBM Cloud Code Engine» utilisé ici est uniquement «Dallas» comme emplacement d'IBM Cloud, changez donc l'emplacement d'IBM Cloud Shell en «us-south».

Cliquez sur Modifier en haut de l'écran IBM Cloud Shell. image.png

Le message "Modifier l'emplacement Cloud Shell" s'affiche. Remplacez l'emplacement par "Dallas (us-south)" et cliquez sur "Continuer". image.png

En haut de l'écran IBM Cloud Shell, l'emplacement devient Dallas. image.png

Rechercher le plugin Code Engine

Vérifiez si vous pouvez appeler la commande pour Code-Engine dans IBM Cloud Shell.

$ ibmcloud plugin show code-engine

C'est OK s'il est affiché comme indiqué dans la figure ci-dessous. Vous pouvez voir qu'IBM Cloud Shell peut utiliser la version bêta d'IBM Cloud Code Engine à partir d'octobre 2020. image.png

Utilisez des conteneurs sans serveur avec IBM Cloud Code Engine

Spécifier le groupe de ressources

Consultez le manuel en ligne officiel (https://cloud.ibm.com/docs/cli?topic=cli-ibmcloud_commands_resource&locale=ja) pour une description du groupe de ressources lui-même. Si vous ne spécifiez pas de groupe de ressources, IBM Cloud Code Engine ne pourra pas créer de "projet" qui organisera vos applications et vos travaux.

Exécutez la commande suivante pour afficher les groupes de ressources existants.

$ ibmcloud resource groups

Exemple de résultat

Nom ID État du groupe par défaut
default   xxxxxxxxxxxxxxxxx   true                ACTIVE

Ici, la cible est le groupe de ressources dont le nom est "par défaut".

$ ibmcloud target -g default

Création de projet

Dans IBM Cloud Code Engine, le navire pour l'exécution des applications et des tâches est appelé un «projet» et doit être préparé. Exécutez la commande suivante. Le nom du projet à créer est 2ndproject. Vous pouvez utiliser des caractères alphanumériques pour le nom du projet, vous pouvez donc utiliser le nom de votre choix.

$ ibmcloud ce project create --name 2ndproject

Vous pouvez vérifier le projet existant qui a été créé en exécutant la commande suivante.

$ ibmcloud ce project list

Exemple de résultat d'exécution

Name        ID                                    Status  Tags  Location  Resource Group  Time to deletion  
2ndproject  ab70ec5f-3fb4-4272-88c6-78dc63024173  active        us-south  default         7 days from now

À partir d'octobre 2020, IBM Cloud Code Engine est en version bêta, vous serez donc informé qu'il sera automatiquement supprimé après 7 jours.

Désignation du projet

Pour créer l'application, exécutez la commande suivante pour spécifier le projet. Ici, le 2ème projet créé est spécifié. En fait, le 2ème projet est l'endroit où spécifier le nom du projet, alors remplacez-le par le nom du projet que vous avez créé et exécutez la commande.

$ ibmcloud ce project select -n 2ndproject

Exemple de résultat d'exécution

Selecting project '2ndproject'...
OK

Créer une application

Appelez l'image Nginx Docker publiée sur DockerHub et créez-la en tant qu'application sur IBM Cloud Code Engine. Exécutez la commande suivante:

$ ibmcloud ce application create --name nodered --image nodered/node-red --cpu 1 --memory 512Mi

Ici, 1 CPU et 512 Mo de mémoire sont alloués au conteneur Node-RED. Exemple de résultat d'exécution

Project '2ndproject' and all its contents will be automatically deleted 7 days from now.
Creating application 'nodered'...
The Configuration is still working to reflect the latest desired specification.
The Route is still working to reflect the latest desired specification.
Configuration 'nodered' is waiting for a Revision to become ready.
Configuration 'nodered' is waiting for a Revision to become ready.
Ingress has not yet been reconciled.
Waiting for load balancer to be ready
Run 'ibmcloud ce application get -n nodered' to check the application status.
OK

https://nodered.ab70ec5f-3fb4.us-south.codeengine.appdomain.cloud

Vous pouvez accéder à l'application créée en accédant à l'URL ci-dessus. nodered est le nom de l'application spécifié dans ibmcloud ce application create, et ab70ec5f-3fb4 fait partie de l'ID du projet auquel l'application appartient, il est donc différent pour chaque personne. À compter d'octobre 2020, IBM Cloud Code Engine est en version bêta, il est donc indiqué qu'il sera automatiquement supprimé dans 7 jours.

Vérifier l'état de la demande

$ ibmcloud ce application get -n nodered

Ce qui précède correspondra au nom de l'application spécifié dans ibmcloud ce application create. Si les noms d'application sont différents, remplacez-les par le nom d'application que vous avez utilisé et exécutez la commande.

Exemple de résultat d'exécution

Name:          nodered  
ID:            ed33006e-da81-4030-b7d6-98d7265da9ab  
Project Name:  2ndproject  
Project ID:    ab70ec5f-3fb4-4272-88c6-78dc63024173  
Age:           5m9s  
Created:       2020-10-06 13:12:37 +0000 UTC  
URL:           https://nodered.ab70ec5f-3fb4.us-south.codeengine.appdomain.cloud  
Console URL:   https://cloud.ibm.com/codeengine/project/us-south/ab70ec5f-3fb4-4272-88c6-78dc63024173/application/nodered/configuration  

Image:  nodered/node-red  
Resource Allocation:  
  CPU:     1  
  Memory:  512Mi  

Revisions:  
  nodered-arbhb-1:  
    Age:                5m8s  
    Traffic:            100%  
    Image:              nodered/node-red (pinned to 7903d6)  
    Running Instances:  0  

Runtime:  
  Concurrency:         10  
  Concurrency Target:  10  
  Maximum Scale:       10  
  Minimum Scale:       0  
  Timeout:             300  

Conditions:  
  Type                 OK    Age    Reason  
  ConfigurationsReady  true  4m39s    
  Ready                true  4m32s    
  RoutesReady          true  4m32s  

Parmi les éléments affichés comme résultats d'exécution, accéder à "URL" affichera l'application, et accéder à "URL de la console" vous permettra de vérifier les paramètres de l'application créée sur le navigateur Web.

Exemple d'accès à "URL de la console" image.png

Accès depuis un navigateur Web

Vérifiez si l'application est en cours d'exécution en accédant à l'URL affichée lors de la création de l'application ou en vérifiant l'état de l'application. Puisque Node-RED a été spécifié ici, Node-RED est affiché. image.png

Comme vous pouvez le voir, Node-RED est dans l'état initial.

Utilisation pratique

Puisque vous pouvez démarrer le conteneur en tant que serveur sans serveur, l'instance (conteneur de départ) sera automatiquement supprimée s'il n'y a pas d'accès, et le nombre d'instances augmentera à mesure que l'accès augmente. Même si vous démarrez Node-RED comme décrit ci-dessus, le nombre d'instances augmentera ou diminuera automatiquement. Ainsi, même si vous démarrez Node-RED sur IBM Cloud Code Engine et définissez le flux, il reviendra immédiatement à l'état initial. ..

Par conséquent, on peut dire qu'il s'agit d'une utilisation pratique pour créer un flux que vous souhaitez exécuter avec Node-RED sur votre PC, créer une image de conteneur et exécuter l'image de conteneur créée avec IBM Cloud Code Engine.

Autre

Vous pouvez vérifier le journal de l'application exécutée dans le conteneur en fonctionnant de la même manière que dans le cas d'IBM Cloud CLI.

Recommended Posts

Lancer une application sur Code Engine à l'aide d'IBM Cloud Shell
Essayez Quarkus avec IBM Cloud Shell
Déployer une application Node.js sur une instance ECS à l'aide du Cloud Toolkit
Étapes pour publier une application sur Heroku
Envoyer des e-mails à l'aide de JavaMail sur AWS