serverless-ecr-aliases
v1.0.0
Published
A small Serverless plugin to enable dynamic ECR image naming
Maintainers
Readme
Serverless ECR Aliases
This repository contains a small Serverless plugin to allow for dynamically named ECR image names.
This allows for dynamically naming your images in ECR with variables, such as including the Git hash or Serverless Build ID inside your image tag.
Installation
This plugin is available via npm, so it can be installed as usual:
$ npm i --save-dev serverless-ecr-aliasesThere's no need to include it in your production bundle, so make sure it's saved inside the development dependencies. Once installed, make sure to add it to your Serverless plugins list:
plugins:
- serverless-ecr-aliasesTry to place this near the start of your plugin list; the sooner this plugin executes, the less chance there is of any side effects within other plugins.
Usage
By default image names are defined via the properties in YAML, which means that we cannot use variables to accomplish something like this:
ecr:
images:
build_${sls:instanceId}:
path: .This plugin enables this by allowing an alias field inside image definitions,
which is swapped out prior to templates being created to enable this pattern:
ecr:
images:
placeholder:
path: .
alias: build_${sls:instanceId}This happens almost immediately, which means that any references should use the dynamic name rather than the placeholder:
functions:
hello:
image:
name: build_${sls:instanceId}Everything else will work exactly as before, just referencing and deploying under the new image name. This is useful for keeping images tagged in ECR via things like Git hash, etc.
Compatibility
This plugin has been tested against the Serverless v4 release, but will likely work with many Serverless versions as it mainly uses the AWS CLI exposed by the framework. If you have any issues, please do file an issue!
