@@ -2,7 +2,6 @@ package main
22
33import (
44 "bytes"
5- "fmt"
65 "github.com/aws/aws-sdk-go/aws"
76 "github.com/aws/aws-sdk-go/aws/session"
87 "github.com/aws/aws-sdk-go/service/ssm"
@@ -212,7 +211,7 @@ func (c *DotEnvCommand) processDotEnv() error {
212211 j = len (names )
213212 }
214213
215- values , err := c .getParameters (names [i :j ], c .decrypt )
214+ values , err := c .getParameters (names [i :j ], c .decrypt , ssmVars [ i : j ] )
216215 if err != nil {
217216 return err
218217 }
@@ -228,7 +227,7 @@ func (c *DotEnvCommand) processDotEnv() error {
228227 return nil
229228}
230229
231- func (c * DotEnvCommand ) getParameters (names []string , decrypt bool ) (map [string ]string , error ) {
230+ func (c * DotEnvCommand ) getParameters (names []string , decrypt bool , ssmVars [] ssmVar ) (map [string ]string , error ) {
232231 values := make (map [string ]string )
233232
234233 input := & ssm.GetParametersInput {
@@ -242,35 +241,21 @@ func (c *DotEnvCommand) getParameters(names []string, decrypt bool) (map[string]
242241 resp , err := c .ssm .GetParameters (input )
243242 c .log .must (err )
244243
245- if len (resp .InvalidParameters ) > 0 {
246- return values , newInvalidParametersError (resp )
247- }
248-
249- for _ , p := range resp .Parameters {
250- values [* p .Name ] = * p .Value
251- }
252-
253- return values , nil
254- }
255-
256- type invalidParametersError struct {
257- InvalidParameters []string
258- }
259-
260- func newInvalidParametersError (resp * ssm.GetParametersOutput ) * invalidParametersError {
261- e := new (invalidParametersError )
262- for _ , p := range resp .InvalidParameters {
263- if p == nil {
264- continue
244+ for _ , v := range ssmVars {
245+ for _ , p := range resp .Parameters {
246+ if strings .EqualFold (v .parameter , * p .Name ) {
247+ values [v .parameter ] = * p .Value
248+ }
249+ }
250+ for _ , p := range resp .InvalidParameters {
251+ if strings .EqualFold (v .parameter , * p ) {
252+ values [v .parameter ] = "VALUE_NOT_EXISTS"
253+ c .log .Warning ("Value for parameter: %s not exists in AWS Parameter Store. Environment variable: %s" , v .parameter , v .envVar )
254+ }
265255 }
266-
267- e .InvalidParameters = append (e .InvalidParameters , * p )
268256 }
269- return e
270- }
271257
272- func (e * invalidParametersError ) Error () string {
273- return fmt .Sprintf ("invalid parameters: %v" , e .InvalidParameters )
258+ return values , nil
274259}
275260
276261func (c * DotEnvCommand ) parameter (k , v string ) (* string , error ) {
0 commit comments