serverless-plugin-nametag

1.1.0 • Public • Published

serverless-plugin-nametag

serverless

A Serverless framework plugin for tagging AWS Lambda functions with the logical ID of the Lambda function resource.

Usage

Installation

Install via NPM

A Basic Example

The following Serverless configuration will apply a Name 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 a nametag 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's before: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.

Package Sidebar

Install

npm i serverless-plugin-nametag

Weekly Downloads

1,004

Version

1.1.0

License

MIT

Unpacked Size

11.4 kB

Total Files

5

Last publish

Collaborators

  • tylerhendrickson