serverless-plugin-nametag
A Serverless framework plugin for tagging AWS Lambda functions with the logical ID of the Lambda function resource.
Usage
Installation
Install via NPMA Basic Example
The following Serverless configuration will apply aName
tag to the MyFunction
Lambda function
resource that evaluates to its configured FunctionName
(physical ID):service: my-service
plugins:
- serverless-plugin-nametag
provider:
name: aws
stage: dev
region: us-east-1
runtime: python3.6
custom:
nametag:
tag: true
functions:
MyFunction:
handler: handlers.my_function
In the case of most normal setups, the resulting function will be tagged with
Name: my-service-dev-MyFunction
.Advanced Configuration
service: my-service
plugins:
- serverless-plugin-nametag
provider:
name: aws
stage: dev
region: us-east-1
runtime: python3.6
custom:
nametag:
tag: true
tagName: FunctionName
functions:
MyFunction:
handler: handlers.my_function
SpecialFunction:
handler: handlers.special_function
tags:
Foo: bar
nametag:
tagName: Special
UntaggedFunction:
handler: handlers.untagged_function
nametag:
tag: false
In the case of most normal setups, the resulting functions will be tagged as-follows:
MyFunction
:
* `FunctionName: my-service-dev-MyFunction`
SpecialFunction
:
* `Foo: bar`
* `Special: my-service-dev-SpecialFunction`
UntaggedFunction
:
* Nothing!
Configuration Options
The following properties can be set on anametag
object within custom
and/or each function described in your
Serverless configuration. Options set in custom
define the default behavior for each function; options set
at the function level override custom
options for that function.| Option | Type | Default | Description | | ------------- | ------- | -------- | ------------------------------------------------------------------ | |
custom.nametag.tag
| boolean | false
| Whether all function(s) should be tagged by default |
| custom.nametag.tagName
| string | "Name"
| The name of the tag that will be created on all functions by default |
| functions[].nametag.tag
| boolean | (set by custom.nametag.tag
) | Whether this function should be tagged |
| functions[].nametag.tagName
| string | (set by custom.nametag.tagName
) | The name of the tag that will be created on this function | Note that the
tagName
option is for setting the name of the tag, not its value! How It Works
This plugin is executed during the Serverless framework'sbefore:package:compileFunctions
hook event.
It copies the value that Serverless plans to use as the FunctionName
property for each function's resulting
CloudFormation configuration object and applies it as the value of a tag (called Name
by default, but can be
customized to whatever you like) on the same function.Contributing
- Have an idea or a problem? Create an issue! It's usually best to start by doing this.
- Fork this repository and submit a pull request if you have a fix or feature you want to be considered.