In "Launching an application with Code Engine using IBM Cloud CLI" I wrote the other day, I used the IBM Cloud CLI installed on my PC. For now, let's use the IBM Cloud Shell to launch a container on the IBM Cloud Code Engine. The major difference is that there is no operation to log in to IBM Cloud from the IBM Cloud CLI, and you need to specify "us-south" as the location of the IBM Cloud Shell.
IBM Cloud Shell
It is an environment where you can run the bash shell on your web browser. It can be used on IBM Cloud. According to the official online manual "FAQ about IBM Cloud Shell", the shell execution environment is There is Ubuntu Linux.
As of October 2020, the version of Ubuntu used in IBM Cloud Shell is 18.04.5 LTS (Bionic Beaver). To check, try running the following command in the IBM Cloud Shell.
$ cat /etc/os-release
After logging in to IBM Cloud with a web browser such as Chrome, click the "IBM Cloud Shell" icon at the top right of the screen.
As of October 2020, the "IBM Cloud Code Engine" used here is only "Dallas" as the location of IBM Cloud, so change the location of IBM Cloud Shell to "us-south".
Click Change at the top of the IBM Cloud Shell screen.
The message "Change Cloud Shell location" will be displayed. Change the location to "Dallas (us-south)" and click "Continue".
At the top of the IBM Cloud Shell screen, the location changes to Dallas.
Check if you can call the command for Code-Engine in IBM Cloud Shell.
$ ibmcloud plugin show code-engine
It is OK if it is displayed as shown in the figure below. You can see that IBM Cloud Shell can use the beta version of IBM Cloud Code Engine as of October 2020.
See the official Online Manual (https://cloud.ibm.com/docs/cli?topic=cli-ibmcloud_commands_resource&locale=en) for a description of the resource group itself. If you do not specify a resource group, IBM Cloud Code Engine cannot create a "project" that organizes applications and jobs.
Run the following command to view the existing resource groups.
$ ibmcloud resource groups
Example result
Name ID Default group state
default xxxxxxxxxxxxxxxxx true ACTIVE
Here, target the resource group whose name is "default".
$ ibmcloud target -g default
In IBM Cloud Code Engine, a device for running applications and jobs is called a "project" and must be prepared. Run the following command: The name of the project to be created is 2ndproject. You can use alphanumeric characters for the project name, so you can use any name you like.
$ ibmcloud ce project create --name 2ndproject
You can check the existing project that has been created by executing the following command.
$ ibmcloud ce project list
Example of execution result
Name ID Status Tags Location Resource Group Time to deletion
2ndproject ab70ec5f-3fb4-4272-88c6-78dc63024173 active us-south default 7 days from now
As of October 2020, IBM Cloud Code Engine is in beta, so you will be notified that it will be automatically removed after 7 days.
To create the application, run the following command to specify the project. Here, the created 2nd project is specified. Actually, the 2nd project is the place to specify the project name, so replace it with the project name you created and execute the command.
$ ibmcloud ce project select -n 2ndproject
Example of execution result
Selecting project '2ndproject'...
OK
Call the Nginx Docker image published on DockerHub and create it as an application on the IBM Cloud Code Engine. Run the following command:
$ ibmcloud ce application create --name nodered --image nodered/node-red --cpu 1 --memory 512Mi
Here, 1 CPU and 512 MB of memory are allocated to the Node-RED container. Example of execution result
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
You can access the created application by accessing the above URL. nodered is the application name specified in ibmcloud ce application create, and ab70ec5f-3fb4 is part of the ID of the project to which the application belongs, so it is different for each person. As of October 2020, IBM Cloud Code Engine is in beta, so it is indicated that it will be automatically deleted in 7 days.
$ ibmcloud ce application get -n nodered
The above nodered will be the application name specified in ibmcloud ce application create. If the application name is different, replace it with the application name you used and execute the command.
Example of execution result
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
Of the items displayed as execution results, accessing "URL" will display the application, and accessing "Console URL" will allow you to check the settings of the application created on the Web browser.
Example of accessing "Console URL"
Check if the application is running by accessing the URL displayed when creating the application or checking the status of the application. Since Node-RED was specified here, Node-RED is displayed.
As you can see, Node-RED is in the initial state.
Since you can start a container as serverless, the instance (starting container) will be automatically deleted if there is no access, and the number of instances will increase as the access increases. Even if you start Node-RED as described above, the number of instances will increase or decrease automatically, so even if you start Node-RED on the IBM Cloud Code Engine and set the flow, it will immediately return to the initial state. ..
Therefore, it can be said that it is a practical usage to create a flow that you want to run with Node-RED on your PC, create a container image, and run the created container image with IBM Cloud Code Engine.
You can check the log of the application running in the container by operating in the same way as in the case of IBM Cloud CLI.