You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 09:20:10