serverless-plugin-nametag

Serverless framework plugin for applying a standard identification tag to AWS Lambda functions

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
serverless-plugin-nametag
401.1.04 years ago4 years agoMinified + gzip package size for serverless-plugin-nametag in KB

Readme

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.