@bamapookie/serverless-pseudo-parameters-lite

0.0.4 • Public • Published

Serverless AWS Pseudo Parameters

Currently, it's impossible (or at least, very hard) to use the CloudFormation Pseudo Parameters in your serverless.yml.

This plugin fixes that.

You can now use #{AWS::AccountId}, #{AWS::Region}, etc. in any of your config strings, and this plugin replaces those values with the proper pseudo parameter Fn::Sub CloudFormation function.

Note: This is a refactored implementation of the very fine Serverless Pseudo Parameters plugin by Sander van de Graaf that inlines and removes all npm dependencies.

Installation

Install the package with npm: npm install serverless-pseudo-parameters-lite, and add it to your serverless.yml plugins list:

plugins:
  - '@bamapookie/serverless-pseudo-parameters-lite'

Usage

Add one of the pseudo parameters to any resource parameter, and it will be replaced during deployment. Mind you to replace the default ${} with a #{}. So ${AWS::AccountId}, becomes: #{AWS::AccountId} etc.

For example, this configuration will create a bucket with your account id appended to the bucket name:

service: users-bucket-thingy

plugins:
  - '@bamapookie/serverless-pseudo-parameters-lite'

functions:
  users:
    handler: users.handler
    events:
      - s3:
          bucket: photos-#{AWS::AccountId}
          event: s3:ObjectRemoved:*

The output in the cloudformation template will look something like this:

{
  "Type": "AWS::S3::Bucket",
  "Properties": {
    "BucketName": {
      "Fn::Sub": "photos-${AWS::AccountId}"
    }
  }
}

Or use it to generate Arn's, for example for Step Functions:

service: foobar-handler

plugins:
  - '@bamapookie/serverless-pseudo-parameters-lite'

functions:
  foobar-baz:
    handler: foo.handler

stepFunctions:
  stateMachines:
    foobar:
      definition:
        Comment: "Foo!"
        StartAt: bar
        States:
          bar:
            Type: Task
            Resource: "arn:aws:lambda:#{AWS::Region}:#{AWS::AccountId}:function:${self:service}-${opt:stage}-foobar-baz"
            End: true

The plugin also automatically replace hardcoded region in serverless.yml. This feature can be disabled using:

custom:
    pseudoParameters:
        skipRegionReplace: true

Readme

Keywords

none

Package Sidebar

Install

npm i @bamapookie/serverless-pseudo-parameters-lite

Weekly Downloads

12

Version

0.0.4

License

MIT

Last publish

Collaborators

  • bamapookie