N00b's Programming Machine

    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.

    Install

    npm i serverless-plugin-nametag

    DownloadsWeekly Downloads

    75

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    11.4 kB

    Total Files

    5

    Last publish

    Collaborators

    • tylerhendrickson