Création de vos propres commandes Run Engine
Si les commandes Run Engine prédéfinies ne répondent pas à vos exigences, vous pouvez créer vos propres commandes.
Remarque : L'utilisation des commandes Run Engine est une approche utilisée par HCL pour implémenter des configurations d'environnement. En fonction de votre scénario, vous pouvez implémenter une solution personnalisée pour modifier les paramètres de l'environnement et les configurations de conteneurs qui répondront le mieux à vos besoins.
Pourquoi et quand exécuter cette tâche
- Si vous souhaitez utiliser des classes Java ou Groovy pour modifier les configurations, vous pouvez définir votre classe pour hériter de la classe
BaseCommand(dans Docker_container/SETUP/lib/engine-command.jar). - Si vous souhaitez utiliser d'autres langages de script, tels que Python, vous pouvez définir votre classe à hériter à partir de
ScriptCommand.
Procédure
-
Créez un projet Java ou Groovy vide et créez trois répertoires enfants (src, META-INF, scripts).
- project
- src
- META-INF
- scriptsRemarque : Le répertoire scripts n'est requis que lors de l'utilisation de
ScriptCommand.
- project
- Ajoutez engine-command.jar en tant que dépendance.
-
Créez une classe qui hérite de
BaseCommandou deScriptCommanden fonction du type de code ou de script que vous souhaitez déployer. Au sein de la classe, créez une méthoderunCmdpour définir vos actions.- Etendez
BaseCommandsi vous souhaitez implémenter la logique en utilisant le code Java ou Groovy. - Etendez
ScriptCommandsi vous souhaitez implémenter la logique en utilisant d'autres langages de script tels que Python.
Par exemple,- La classe suivante
WCCommandhérite deScriptCommand, et la commande produit une chaîne.class WCCommand extends ScriptCommand{ void runCmd(String[] args) { println "wc-sample" } } - La classe suivante
WCCommandhérite 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 } }
- Etendez
- Enregistrez le fichier dans le répertoire src.
-
Si nécessaire, créez des scripts dans le répertoire script pour terminer une configuration.
Par exemple, le script Python suivant (createJMSQueue.py) utilise des commandes de script wsadmin WebSphere Application Server pour configurer les ressources JMS 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()- Pour plus d'informations sur les commandes wsadmin pour IBM MQ, voir Configuring JMS resources using wsadmin scripting commands.
- Pour plus d'informations générales sur les commandes wsadmin, voir Scripting the application serving environment
-
Créez un fichier de propriétés et enregistrez-le dans le répertoire META-INF.
Nommez le fichier comme le nom de la commande Run Engine que vous souhaitez utiliser.Par exemple, si vous souhaitez utiliser une commande Run Engine comme
Créez ensuite un fichier de propriétés nommérun create-jms-queuescreate-jms-queues.properties. - Dans le fichier de propriétés, spécifiez une paire nom-valeur main.class pour spécifier la classe que vous avez créée. Spécifiez également une paire nom-valeur main.script si vous avez créé un script à l'étape 5.
- Créez et incluez les répertoires /src et /META-INF dans un fichier JAR.
-
Créez ou mettez à jour un fichier Docker pour inclure et utiliser votre commande Run Engine personnalisée.
- Assurez-vous que vous copiez votre fichier JAR vers le chemin d'accès /SETUP/lib/ du conteneur Docker.
- Assurez-vous de copier vos scripts vers le chemin d'accès /SETUP/scripts/ du conteneur Docker.
Par exemple,FROM <dockerhost>/commerce/ts-app:latest COPY new.jar /SETUP/lib COPY scripts/ /SETUP/scripts RUN run create-jms-queues inbound mq FVT