使用无服务器框架的 Lambda 函数环境设置中的逗号分隔符
Comma separator in Lambda function environment settings using the Serverless Framework
我正在尝试添加 MongoDB 集群作为无服务器部署的一部分,但我无法设置环境变量。
这是 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 以包含集群作为逗号分隔值?
非常感谢任何建议。
遗憾的是,您不能在 Lambda 环境变量中使用逗号。这是 AWS 限制而不是无服务器问题。
例如,浏览AWS console并尝试添加一个包含逗号的环境变量:
保存时会出现以下错误:
1 validation error detected: Value at 'environment.variables' failed to satisfy constraint: Map value must satisfy constraint: [Member must satisfy regular expression pattern: [^,]*]
错误消息说必须满足正则表达式 [^,]*
而这个小正则表达式明确表示的是 not (^
) 接受逗号(,
)。可以接受任何其他字符。
我不知道他们为什么不接受逗号,这在他们的 documentation 中没有解释,但至少他们的错误消息表明这是故意的。
作为一种变通方法,您可以将逗号替换为另一个符号(如 #
)以创建环境变量并在读取变量后将其替换回逗号,否则您将需要创建多个环境变量存储端点。
我正在尝试添加 MongoDB 集群作为无服务器部署的一部分,但我无法设置环境变量。
这是 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 以包含集群作为逗号分隔值?
非常感谢任何建议。
遗憾的是,您不能在 Lambda 环境变量中使用逗号。这是 AWS 限制而不是无服务器问题。
例如,浏览AWS console并尝试添加一个包含逗号的环境变量:
保存时会出现以下错误:
1 validation error detected: Value at 'environment.variables' failed to satisfy constraint: Map value must satisfy constraint: [Member must satisfy regular expression pattern: [^,]*]
错误消息说必须满足正则表达式 [^,]*
而这个小正则表达式明确表示的是 not (^
) 接受逗号(,
)。可以接受任何其他字符。
我不知道他们为什么不接受逗号,这在他们的 documentation 中没有解释,但至少他们的错误消息表明这是故意的。
作为一种变通方法,您可以将逗号替换为另一个符号(如 #
)以创建环境变量并在读取变量后将其替换回逗号,否则您将需要创建多个环境变量存储端点。