资源编排服务 RFS-模板写作技巧:数字转成字符串
数字转成字符串
很多情况下,定义的变量是一个字符串,但同时需要引用此变量既作为字符串,又作为数字。例如,端口号在作为ENV环境变量时,要求其值是字符串类型,而在作为应用微服务属性时,要求其值为数字。
针对上述问题,有如下两种方式可解决:
- 方式一:定义两个变量
定义PORT-i, PORT-s两个变量,PORT-s是字符串,PORT-i是数字。这种方法虽然可以直截了当的解决问题,但效果并不是很好。因为带入了重复,从而使模板的可维护性和易用性变差。
- 方式二:使用concat内置函数
通过concat内置函数将多个小字符串拼接为一个更长、更完整的字符串。concat内置函数的参数可以是任意类型的变量,支持将数字和字符串混合拼接。示例如下:
首先定义变量:
magento-EPORT: type: integer default: 32080
其次在ULR时需要为字符串:
name: MAGENTO_URL value: concat: - "http://" - {get_input: magento-EIP} - ":" - {get_input: magento-EPORT} #这里直接将数字转为字符串了
再次在微服务属性时需要为数字:
serviceSpec: ports: - port: {get_input: magento-container-port} nodePort: {get_input: magento-EPORT} #这里要求是数字