2017-11-10 4 views
0

私はこれらの設定ファイルserverless.ymlとenv.ymlを持っています。展開しようとすると、エラーが発生します。ラムダ関数はデプロイできません。環境変数をenv.ymlに設定する

serverless.yml

---omitted--- 

provider: 
    environment: ${file(env.yml):${self:custom.stage}} 

---omitted--- 

env.yml

---omitted--- 

dev: 
    keyzero: "valuezero" 
    keyone: 
    keyoneone: "valueoneone" 
    keyonetwo: "valueonetwo" 
    keyonethree: "valueonethree" 

---omitted--- 

ERROR:

Serverless: Operation failed!

Serverless Error ---------------------------------------

An error occurred: PingLambdaFunction - Value of property Variables must be an object with String (or simple type) properties.

+0

を必要があると思いますので、それぞれの環境変数を設定する必要があります。この問題は、これらの環境値をこの特定のラムダにどのようにマッピングするかに関係しているようです。 –

答えて

1

環境変数がオブジェクトにすることはできません。これらは単純にキーと値のペアで、valueはプリミティブ型(string/number/boolean/null)でなければなりません。

keyone変数は「変数は文字列(または単純型のプロパティ)を持つオブジェクトである必要があります」というエラーをスローするオブジェクトです。

1

env.ymlのどの値を使用するかを指定する必要があります。あなたの例では

あなたがkeyonetwoの値を取得したい場合、あなたはdocumentationとそれらがどのように環境変数を参照し、チェックアウト、またvalueonetwo

をもたらすであろう

${file(env.yml):${opt:stage}.keyone.keyonetwo} 

を使用すると思います。

あなたはまた、あなたは実際にPingLambdaFunctionを定義し、あなたのserverless.ymlのスニペットを、提供しなければならない

provider: 
    environment: 
    keyoneone: ${file(env.yml):${opt:stage}.keyone.keyoneone} 
    keyonetwo: ${file(env.yml):${opt:stage}.keyone.keyonetwo} 
関連する問題