Crear sus propios mandatos Run Engine
Si los mandatos Run Engine predeterminados no satisfacen sus requisitos, puede crear sus propios mandatos.
Nota: Uno de los métodos que utiliza HCL para implementar configuraciones de entorno es utilizar mandatos Run Engine. En función de su situación, es posible que quiera implementar una solución personalizada para modificar los parámetros de entorno y las configuraciones del contenedor que se adecúen mejor a sus necesidades.
Por qué y cuándo se efectúa esta tarea
- Si quiere utilizar clases Java o Groovy para cambiar las configuraciones, puede definir la clase para que herede de la clase
BaseCommand
(en Docker_container/SETUP/lib/engine-command.jar). - Si desea utilizar otros lenguajes de programación, como Python, puede definir la clase para que herede de
ScriptCommand
.
Procedimiento
-
Cree un proyecto Java o Groovy vacío y cree tres directorios hijo (src, META-INF y scripts).
- project
- src
- META-INF
- scriptsNota: El directorio scripts solo es necesario cuando se utiliza
ScriptCommand
.
- project
- Añada la dependencia engine-command.jar.
-
Cree una clase que herede de
BaseCommand
oScriptCommand
basada en el tipo de código o script que quiera desplegar. Dentro de la clase, cree un métodorunCmd
para definir sus acciones.- Amplíe
BaseCommand
si desea implementar la lógica utilizando código Java o Groovy. - Amplíe
ScriptCommand
si desea implementar la lógica utilizando otros lenguajes de programación como, por ejemplo, Python.
Por ejemplo,- La clase
WCCommand
siguiente hereda deScriptCommand
y el mandato genera una serie.class WCCommand extends ScriptCommand{ void runCmd(String[] args) { println "wc-sample" } }
- La clase
WCCommand
siguiente hereda deBaseComand
.import com.ibm.commerce.engine.cmd.BaseCommand class WCCommmand extends BaseCommand { public void runCmd(String[] args) { // ADD logic here to modify environment parameters and container configurations } }
- Amplíe
- Guarde la clase en el directorio src.
-
Si es necesario, cree scripts en el directorio script para completar una configuración.
Por ejemplo, el siguiente script de Python (createJMSQueue.py) utiliza mandatos WebSphere Application Server de script wsadmin para configurar recursos JMS de IBM MQ.
queueName = sys.argv[1] queueManager = sys.argv[2] AdminTask.createWMQQueue('server1(cells/localhost/nodes/localhost/servers/server1|server.xml)', '[-name '+ jndiName +' -jndiName '+jndiName+' -queueName '+ queueName + ' -qmgr '+queueManager+' -description JMSQueue ]') print ("Create JMS queues successfully!") AdminConfig.save()
- Para obtener más información sobre mandatos wsadmin para IBM MQ, consulte Configuring JMS resources using wsadmin scripting commands.
- Para obtener información general sobre los mandatos wsadmin, consulte Scripting the application serving environment
-
Cree un archivo de propiedades y guárdelo en el directorio META-INF.
Asigne al archivo el nombre del mandato de Run Engine que desea utilizar.Por ejemplo, si desea utilizar un mandato de Run Engine como
Cree un archivo de propiedades que se denominerun create-jms-queues
create-jms-queues.properties
. - En el archivo de propiedades, especifique un par nombre-valor main.class para especificar la clase que ha creado. Especifique también un par nombre-valor main.script si ha creado un script en el paso 5.
- Cree y empaquete los directorios /src y /META-INF en un archivo jar.
-
Cree o actualice un Dockerfile para incluir y utilizar el mandato de Run Engine personalizado.
- Asegúrese de copiar el archivo jar en la vía de acceso /SETUP/lib/ del contenedor Docker.
- Asegúrese de copiar los scripts en la vía de acceso /SETUP/scripts/ del contenedor Docker.
Por ejemplo,FROM <dockerhost>/commerce/ts-app:latest COPY new.jar /SETUP/lib COPY scripts/ /SETUP/scripts RUN run create-jms-queues inbound mq FVT