3

MongoDBクラスタをServerlessデプロイメントの一部として追加しようとしていますが、環境変数を設定できません。サーバレスフレームワークを使用したLambda関数環境設定のカンマ区切り

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を渡すにはどうすればよい:ここで

serverless.ymlファイルの一部ですか?

何かアドバイスをいただければ幸いです。

答えて

2

残念ながら、Lambda環境変数でカンマを使用することはできません。これはAWSの制限であり、Serverlessの問題ではありません。例えば

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 varを作成してカンマに戻したり、エンドポイントを格納するために複数の環境変数を作成する必要があります。

+0

返信ありがとう – khinester

関連する問題