gpt4 book ai didi

node.js - 如何在测试中获取 serverless.yml 中定义的环境变量

转载 作者:搜寻专家 更新时间:2023-10-31 22:34:17 24 4
gpt4 key购买 nike

我正在使用无服务器框架在 AWS 上运行 lambda 函数。

在我的 serverless.yml 中有从 SSM 获取的环境变量。

当我为代码编写集成测试时,我需要代码具有环境变量,但我找不到执行此操作的好方法。

我不想仅为测试复制所有变量定义,它们已经在 serverless.yml 中定义。另外,有些是 secret ,我无法将它们提交给源代码控制,因此我还必须在 ci 环境中重复它们。

尝试使用 serverless-jest-plugin 但它无法正常工作且维护不善。

我对解决方案的想法:

  1. 让测试执行 sls invoke - 这会起作用,但意味着无法调试代码,我不知道测试覆盖率,而且会很慢。
  2. 自己解析 serverless.yml 并导出 env 变量 - 可能但重写拉取 SSM 变量的逻辑只是为了测试似乎是错误的。

有什么想法吗?

最佳答案

我们最终使用的解决方案是一个名为 serverless-export-env 的无服务器插件.

添加此插件后,您可以运行 serverless export-env 将所有已解析的环境变量导出到 .env 文件中。这可以正确解析 ssm 参数,并使我们的集成测试更加简单。

顺便说一句,要从 .env 文件中获取环境变量集,请使用 dotenv npm 包。

归功于 grishezz寻找解决方案

关于node.js - 如何在测试中获取 serverless.yml 中定义的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53232729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com