Skip to content

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

License

Notifications You must be signed in to change notification settings

washingtonpost/serverless-plugin-nametag

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published