基于AWS与Serverless Framework的多环境Odoo字段切换验证函数实现
基于Serverless Framework实现Odoo多环境价格查询逻辑
1. 配置Serverless环境变量
在你的serverless.yml配置文件中,确保当前部署阶段(stage)能被代码读取到。Serverless Framework默认会将部署阶段注入环境变量,也可以显式配置:
provider: name: aws runtime: nodejs18.x stage: ${opt:stage, 'dev'} # 默认dev环境,部署时可通过--stage prod指定生产环境 environment: STAGE: ${self:provider.stage} # 将stage存入环境变量STAGE
2. 重构统一的价格查询函数
不需要维护两个重复的getPrice函数,只需根据当前环境动态切换字段名:
async function getPrice() { try { const server = await odoo.getConnection(); const domain = FILTER_ODOO; // 从环境变量获取当前环境,默认dev const currentStage = process.env.STAGE || 'dev'; // 根据环境选择对应的价格字段 const priceField = currentStage === 'prod' ? 'price_lst_odoo' : 'price_list_odoo'; const params = [ [domain], { fields: ['id', priceField, 'price_whith_iva'] } ]; const prices = await Odooserver.execute_kw('product.template', 'search_read', params); info('get_prices_complete', { prices }); return prices; } catch (error) { fail('error_get_prices_complete', error); return []; } }
3. 部署时指定环境
部署开发环境用默认命令:
serverless deploy
部署生产环境需指定stage:
serverless deploy --stage prod
部署完成后,代码会自动根据运行环境匹配对应的Odoo字段,无需手动切换逻辑。
内容的提问来源于stack exchange,提问作者shadowsa7x07
相关产品推荐
相关产品推荐

