serverless-plugin-provider-groups
This plugin makes managing conceptually linked provider level variables (e.g.environment, vpc, iam roles ) easier for large serverless projects.
It allows you to group variables together under a single name, which can then be imported together into your individual functions. See usage below for a simple example.
Installation
First install the plugin via NPM.
npm install serverless-plugin-provider-groups --save-dev
Then include the plugin within your serverless.yml config.
serverless.yml
plugins: - serverless-plugin-provider-groups
Usage
To use, first add a providerGroups
object to the custom
options within your serverless.yml
file. Then add any number of namespaces with any number of provider settings.
Check serverless documentation for configuration options.
For example:
custom: providerGroups: auth0: # a simple group for auth0 related config environment: AUTH0_TOKEN: a_token redis: # a complex group for redis environment: REDIS_PORT: 6709 REDIS_HOST: http://localhost vpc: securityGroupIds: - Ref: lambdaSecurityGroup subnetIds: your_redis_subnet_ids iamRoleStatements: - Effect: Allow Action: - ec2:CreateNetworkInterface # Allows VPC access for Lambda - ec2:DeleteNetworkInterface - ec2:DescribeNetworkInterfaces - ec2:DetachNetworkInterface Resource: - '*'
Once provider groups have been specified, you can then import them directly into your function calls.
For example:
functions: authorize: handler: authorize.handler providerGroups: - redis # adds all redis configs to this function - auth0 # adds all auth0 configs to this function events: - http: path: /authorize method: post getSomething: handler: handler.getSomething providerGroups: - redis # adds only the redis configs to this function events: - http: path: /get-something method: get