0
votes

is there a way to retrieve multiple ssm parameters through serverless.yml into an environment variable?

for example right now i have the parameters: "/dev/db/user" and "/dev/db/password" and on serverless.yml:

environment:
  DB_USER: ${ssm:/${self:custom.stage}/db/user}
  DB_PASSWORD: ${ssm:/${self:custom.stage}/db/password}

where custom.stage will be dev/prod etc.

problem is there will be more db info, hostname, port maybe more who knows, so is there a way to retrieve everything into a single environment variable?

i thought about using a single ssm parameter with a json string with all the info and parse it in the cloud function, but maybe there is something more like the aws cli command: aws ssm get-parameters-by-path --path "/dev/db" that is exactly what i need but for serverless

1

1 Answers

0
votes

You can use Join function to combine multiple values. Something like:

 environment:
    DB_XXX: ${ssm:/${self:custom.stage}/db/user}
      Fn::Join:
        - "-"
        - - ${ssm:/${self:custom.stage}/db/x1}
          - ${ssm:/${self:custom.stage}/db/x2}