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::Deploymentresource, anAWS::APIGateway::Stageresource is also created. - The stage is linked to the deployment, to replace the
StageNameproperty of the deployment. - The stage may have stage variables defined by
custom.stageSettings.Variablesin yourserverless.yml. - The stage may have logging and other method properties defined by
custom.stageSettings.MethodSettingsin yourserverless.yml. - An
AWS::IAM::Roleresource is created with the correct permissions to write Cloudwatch logs. - This IAM Role for logs is set in the
AWS::ApiGateway::Accountsettings 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).