3

我试图添加一个MongoDB群集作为无服务器部署的一部分,但我无法设置环境变量。使用无服务器框架的Lambda函数环境设置中的逗号分隔符

这里是serverless.yml文件的一部分:

service: serverless-test 

plugins: 
    - serverless-offline 

provider: 
    name: aws 
    runtime: nodejs4.3 
    environment: 
    MONGO_URI: "mongodb://mongo-6:27000,mongo-7:27000,mongo-8:27000/db-dev?replicaSet=mongo" 

如何通过MONGO_URI包含集群作为一个逗号分隔值?

任何意见是非常感谢。

回答

2

不幸的是,您不能在Lambda环境变量中使用逗号。这是一个AWS限制,而不是无服务器问题。

例如,浏览AWS console并尝试添加包含一个逗号环境变量:

environment variable foo,bar

保存时,您将收到以下错误:

1 validation error detected: Value at 'environment.variables' failed to satisfy constraint: Map value must satisfy constraint: [Member must satisfy regular expression pattern: [^,]*]

的错误消息说,正则表达式[^,]*必须满足,这个小正则表达式明确说是不是^)接受逗号(,)。任何其他字符都可以接受。

我不知道他们为什么不接受逗号,这在documentation中没有解释,但至少他们的错误信息表明它是故意的。

作为一种变通方法,您可以通过另一个符号替换您的逗号(像#)创建的环境变量和读取变量替换后回逗号,或者您需要创建多个ENV瓦尔存储端点。

+0

感谢您的回复 – khinester