Plugin for the serverless framework that allows the use of stages with defined stage variables and logging configuration, when using the AWS provider.
This is a rewritten plugin with the same functionality provided by two existing plugins:
- https://github.com/svdgraaf/serverless-plugin-stage-variables
- https://github.com/paulSambolin/serverless-enable-api-logs
Namely:
- In addition to the
AWS::APIGateway::Deployment
resource, anAWS::APIGateway::Stage
resource is also created. - The stage is linked to the deployment, to replace the
StageName
property of the deployment. - The stage may have stage variables defined by
custom.stageSettings.Variables
in yourserverless.yml
. - The stage may have logging and other method properties defined by
custom.stageSettings.MethodSettings
in yourserverless.yml
. - An
AWS::IAM::Role
resource is created with the correct permissions to write Cloudwatch logs. - This IAM Role for logs is set in the
AWS::ApiGateway::Account
settings resource.
#...
plugins:
- serverless-api-stage
#...
custom:
stageSettings:
CacheClusterEnabled: true
CacheClusterSize: '0.5'
Variables:
foo: bar
baz: xyzzy
MethodSettings:
LoggingLevel: INFO
CachingEnabled: true
CacheTtlInSeconds: 3600
# see below...
#...
The full list of MethodSettings
available are defined in the
AWS CloudFormation documentation.
Please contribute by submitting a pull request, or raising an issue.
Code changes or additions should include corresponding unit test changes or additions. Tests can be run locally using
npm test
. This requires global installation of jshint
and mocha
(npm install -g jshint mocha
).