[DOCKER] Starten Sie eine Anwendung in Code Engine mit IBM Cloud Shell

Annahme

In "Starten einer Anwendung auf Code Engine mit IBM Cloud CLI" habe ich neulich die auf meinem PC installierte IBM Cloud CLI verwendet. Verwenden wir zunächst die IBM Cloud Shell, um einen Container in der IBM Cloud Code Engine zu starten. Der große Unterschied besteht darin, dass keine Operation zum Anmelden bei IBM Cloud über die IBM Cloud CLI erforderlich ist und Sie "us-south" als Speicherort der IBM Cloud Shell angeben müssen.

IBM Cloud Shell

Was ist IBM Cloud Shell?

In dieser Umgebung können Sie die Bash-Shell in einem Webbrowser ausführen. Es kann in der IBM Cloud verwendet werden. Laut dem offiziellen Online-Handbuch "FAQ zu IBM Cloud Shell" ist die Shell-Ausführungsumgebung Es gibt Ubuntu Linux.

Ab Oktober 2020 ist die in IBM Cloud Shell verwendete Ubuntu-Version 18.04.5 LTS (Bionic Beaver). Führen Sie zur Überprüfung den folgenden Befehl in der IBM Cloud Shell aus.

$ cat /etc/os-release

Zugriff auf die IBM Cloud Shell

Klicken Sie nach der Anmeldung bei IBM Cloud mit einem Webbrowser wie Chrome oben rechts auf dem Bildschirm auf das Symbol "IBM Cloud Shell". image.png

Standortänderung

Ab Oktober 2020 ist die hier verwendete "IBM Cloud Code Engine" nur "Dallas" als Standort der IBM Cloud. Ändern Sie daher den Standort der IBM Cloud Shell in "us-south".

Klicken Sie oben im IBM Cloud Shell-Bildschirm auf Ändern. image.png

Die Meldung "Cloud Shell-Standort ändern" wird angezeigt. Ändern Sie den Standort in "Dallas (USA-Süd)" und klicken Sie auf "Weiter". image.png

Am oberen Rand des IBM Cloud Shell-Bildschirms ändert sich der Speicherort in Dallas. image.png

Suchen Sie nach dem Code Engine-Plugin

Überprüfen Sie, ob Sie den Befehl für Code-Engine in IBM Cloud Shell aufrufen können.

$ ibmcloud plugin show code-engine

Es ist in Ordnung, wenn es wie in der folgenden Abbildung gezeigt angezeigt wird. Sie können sehen, dass IBM Cloud Shell ab Oktober 2020 die Beta-Version von IBM Cloud Code Engine verwenden kann. image.png

Verwenden Sie Container ohne Server mit IBM Cloud Code Engine

Geben Sie die Ressourcengruppe an

Eine Beschreibung der Ressourcengruppe selbst finden Sie im offiziellen Online-Handbuch (https://cloud.ibm.com/docs/cli?topic=cli-ibmcloud_commands_resource&locale=ja). Wenn Sie keine Ressourcengruppe angeben, kann IBM Cloud Code Engine kein "Projekt" erstellen, das Ihre Anwendungen und Jobs organisiert.

Führen Sie den folgenden Befehl aus, um die vorhandenen Ressourcengruppen anzuzeigen.

$ ibmcloud resource groups

Beispiel Ergebnis

Name ID Standardgruppenstatus
default   xxxxxxxxxxxxxxxxx   true                ACTIVE

Hier ist das Ziel die Ressourcengruppe, deren Name "Standard" ist.

$ ibmcloud target -g default

Projekterstellung

In IBM Cloud Code Engine wird ein Gerät zum Ausführen von Anwendungen und Jobs als "Projekt" bezeichnet und muss vorbereitet werden. Führen Sie den folgenden Befehl aus: Der Name des zu erstellenden Projekts lautet 2ndproject. Sie können alphanumerische Zeichen für den Projektnamen verwenden, sodass Sie einen beliebigen Namen verwenden können.

$ ibmcloud ce project create --name 2ndproject

Sie können das vorhandene Projekt überprüfen, das erstellt wurde, indem Sie den folgenden Befehl ausführen.

$ ibmcloud ce project list

Beispiel für das Ausführungsergebnis

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

Ab Oktober 2020 befindet sich IBM Cloud Code Engine in der Beta-Phase, sodass Sie benachrichtigt werden, dass es nach 7 Tagen automatisch entfernt wird.

Projektbezeichnung

Führen Sie zum Erstellen der Anwendung den folgenden Befehl aus, um das Projekt anzugeben. Hier wird das erstellte 2. Projekt angegeben. Tatsächlich ist das 2. Projekt der Ort, an dem der Projektname angegeben wird. Ersetzen Sie ihn daher durch den von Ihnen erstellten Projektnamen und führen Sie den Befehl aus.

$ ibmcloud ce project select -n 2ndproject

Beispiel für das Ausführungsergebnis

Selecting project '2ndproject'...
OK

Eine Anwendung erstellen

Rufen Sie das auf DockerHub veröffentlichte Nginx Docker-Image auf und erstellen Sie es als Anwendung in der IBM Cloud Code Engine. Führen Sie den folgenden Befehl aus:

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

Hier werden dem Node-RED-Container 1 CPU und 512 MB Speicher zugeordnet. Beispiel für das Ausführungsergebnis

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

Sie können auf die erstellte Anwendung zugreifen, indem Sie auf die obige URL zugreifen. nodered ist der Anwendungsname, der in ibmcloud ce application create angegeben ist, und ab70ec5f-3fb4 ist Teil der ID des Projekts, zu dem die Anwendung gehört, sodass er für jede Person unterschiedlich ist. Ab Oktober 2020 befindet sich die IBM Cloud Code Engine in der Beta-Phase. Es wird daher angegeben, dass sie innerhalb von 7 Tagen automatisch gelöscht wird.

Überprüfen Sie den Anwendungsstatus

$ ibmcloud ce application get -n nodered

Der oben angegebene Knoten ist der Anwendungsname, der in ibmcloud ce application create angegeben ist. Wenn die Anwendungsnamen unterschiedlich sind, ersetzen Sie sie durch den von Ihnen verwendeten Anwendungsnamen und führen Sie den Befehl aus.

Beispiel für das Ausführungsergebnis

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  

Von den als Ausführungsergebnisse angezeigten Elementen wird beim Zugriff auf "URL" die Anwendung angezeigt, und beim Zugriff auf "Konsolen-URL" können Sie die Einstellungen der im Webbrowser erstellten Anwendung überprüfen.

Beispiel für den Zugriff auf "Konsolen-URL" image.png

Zugriff über einen Webbrowser

Überprüfen Sie, ob die Anwendung ausgeführt wird, indem Sie auf die beim Erstellen der Anwendung angezeigte URL zugreifen oder den Status der Anwendung überprüfen. Da hier Node-RED angegeben wurde, wird Node-RED angezeigt. image.png

Wie Sie sehen können, befindet sich Node-RED im Ausgangszustand.

Praktische Anwendung

Da Sie den Container als serverlos starten können, wird die Instanz (Startcontainer) automatisch gelöscht, wenn kein Zugriff vorhanden ist, und die Anzahl der Instanzen nimmt mit zunehmendem Zugriff zu. Selbst wenn Sie Node-RED wie oben beschrieben starten, wird die Anzahl der Instanzen automatisch erhöht oder verringert. Selbst wenn Sie Node-RED in IBM Cloud Code Engine starten und den Ablauf festlegen, kehrt es sofort in den Ausgangszustand zurück. ..

Daher kann gesagt werden, dass es eine praktische Verwendung ist, einen Flow zu erstellen, den Sie mit Node-RED auf Ihrem PC ausführen möchten, ein Container-Image zu erstellen und das erstellte Container-Image mit IBM Cloud Code Engine auszuführen.

Andere

Sie können das Protokoll der im Container ausgeführten Anwendung überprüfen, indem Sie auf die gleiche Weise wie im Fall von IBM Cloud CLI arbeiten.

Recommended Posts

Starten Sie eine Anwendung in Code Engine mit IBM Cloud Shell
Probieren Sie Quarkus mit IBM Cloud Shell aus
Bereitstellen einer Node.js-Anwendung auf einer ECS-Instanz mithilfe des Cloud Toolkit
Schritte zum Veröffentlichen einer Anwendung auf Heroku
Senden Sie E-Mails mit JavaMail unter AWS