
# 使用configparser工具优化代码
configparser为自定义参数解析工具，通过NUWA部署时，解析参数模板，将模板中的参数变量，替换为实际的配置项值。
#### 准备工作
1. [下载configparser工具](https://appstage-opensdk-cn4.obs.cn-north-4.myhuaweicloud.com/nuwa-open-sdk/1.1.0/202402020945/nuwa-open-sdk-1.1.0-20240204093135.zip)，在tools文件夹中获取configparser工具。
2. 将本地的configparser工具复制粘贴至项目的bin目录下。
 
#### 使用configparser工具
1. 在Dockerfile文件中，为configparser文件添加可执行权限。
2. 定义业务配置项模板文件和meta.txt，样例如[图1 业务配置项模板]所示。
   
   图1业务配置项模板   
   ![](https://support.huaweicloud.com/devg-appstage/zh-cn_image_0000001839608768.png)
   
   
3. 在业务配置项模板文件（.tmpl文件）中，使用 {{参数名称}} 格式定义需要动态替换的参数，样例如[图2]所示。
   
   图2模板参数定义   
   ![](https://support.huaweicloud.com/devg-appstage/zh-cn_image_0000001885766697.png)
   
   
4. 在meta.txt文件中定义需要替换的业务配置项模板文件。如[图3]所示。
   
   图3替换业务配置项模板文件   
   ![](https://support.huaweicloud.com/devg-appstage/zh-cn_image_0000001885848689.png)
   - application.properties.tmpl为配置文件模板，application.properties为目标配置文件。
   
   - 配置中指定的文件路径是相对于meta.txt文件的路径。
   
   
   
   
5. 启动业务进程之前，在启动脚本中调用configparser工具，进行参数替换。使用方式如下： 
   ```
   /opt/huawei/app/bin/configparser -meta /opt/huawei/app/configtemplate/meta.txt -log configparser.log -mode front -tempPath /opt/huawei/app/configtemplate/config-temp
   ```
   
   - 使用绝对路径的方式调用configparser工具，/opt/huawei/app/bin/为容器启动时的绝对路径。
   
   - -meta：指定meta.txt文件，/opt/huawei/app/configtemplate/为容器启动时meta.txt文件的绝对路径。
   
   - -log：存放configparser工具的运行日志。
   
   - -mode front：固定使用此参数值。
   
   - -tempPath：工具运行过程中生成临时文件的路径。 /opt/huawei/app/configtemplate/为容器启动时的绝对路径，必须保证此目录路径存在。config-temp文件夹可以不存在，会自动创建，运行结束后会清理此路径。 如果不配置，默认使用/opt/huawei/app/nuwa/config-temp。
     
   
   
   
   
 
