我们有遇到一个技术问题,就是在使用SeverlessDevs的时候,不知道如何去参数化不同环境(de[阿里云Serverless]

我们有遇到一个技术问题,就是在使用SeverlessDevs的时候,不知道如何去参数化不同环境(dev/test/pro),用一套模版适配多种环境,请问怎么实现呢?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
4 条回复 A 作者 M 管理员
  1. 2020年11月份,阿里云智能开源了Serverless 社区的开发者工具Serverless Devs(后简称S) 弥补了国内在Serverless 开发者工具的一个空白。通过高度灵活的配置设定,实现了无厂商锁定的支持;直观易懂的可视化配套也带来了极致的开发者使用体验。

    Serverless Devs 是一款面向 Serverless 应用全生命周期的管理工具,其模型规范中存在应用和服务的概念,但目前缺少对环境的内在支持,代码+基础设施共同维护在一个 s.yaml 下。

  2. 在使用ServerlessDevs进行部署时,我们可以使用动态配置、环境变量等技术实现参数化不同环境,使用一套模板适配多种环境的部署方式。具体实现如下:

    1. 在配置文件中使用变量替换相关配置

    在配置文件中,我们可以使用类似{{env}}这样的变量占位符,用具体的环境值替换。例如:

    inputs:  bucketName: {{env}}-example-bucket  functionName: example-function-{{env}}  region: cn-beijing  runtime: nodejs10

    这样我们就可以通过指定不同的环境值,实现参数化部署到不同的环境。

    1. 设置环境变量

    在许多场景下,通过设置环境变量来传递参数是更加方便的一种方式。ServerlessDevs也支持在命令行中设置环境变量。例如:

    $ sls deploy --env=dev --var env=dev

    这样就可以在部署过程中,将env变量的值替换为dev,达到适配dev环境的目的。

    通过上述方式,我们可以实现一套模板适配多种环境的部署。实际使用时,我们可以根据实际情况,选择适合自己需求的方式进行参数化配置。

  3. 可以配置不同环境变量,参考这个:https://docs.serverless-devs.com/fc/command/env

    此答案来自钉钉群“Serverless 开发者技术学习群”

  4. 楼主你好,你可以采用分层的模板化方案,即: 平台管理员将网络、日志服务、存储、数据库等基础设施资源根据测试/生产隔离的要求,封装成环境模板;

    将阿里云函数计算函数、Serverless 应用引擎应用封装成服务模板; 将 CI/CD 的基础流程封装成流水线模板;

    平台管理员持有子账号选择环境模板创建不同的测试、预发、生产环境,然后授予研发子账号访问权限,或者授予研发写权限来自助创建环境;

    开发人员选择流水线模板,通过主动触发或者代码提交自动触发 CI/CD 的执行。