The long version - Read this Keeping secrets out of Git
The short version -
Create a secrets.yml
that looks something like
default: &default
<<: *default
COMMON_API_KEY: "AN API KEY COMMON TO ALL ENVIRONMENTS"
COMMON_API_SECRET: "AN API KEY COMMON TO ALL ENVIRONMENTS"
dev:
<<: *default
API_KEY: "YOUR DEVELOPMENT API KEY"
API_SECRET: "YOUR DEVELOPMENT API SECRET"
stage:
<<: *default
API_KEY: "YOUR STAGING API KEY"
API_SECRET: "YOUR STAGING API SECRET"
prod:
<<: *default
API_KEY: "YOUR PRODUCTION API KEY"
API_SECRET: "YOUR PRODUCTION API SECRET"
Add secrets.yml
to your .gitignore
Put this into your serverless.yml
custom:
stage: ${opt:stage, self:provider.stage}
secrets: ${file(secrets.yml):${self:custom.stage}}
Then reference the secrets like ${self:custom.secrets.API_KEY}
etc…