This is a Serverless Framework plugin that allows you to manage pkl-lang to use it as template var on sls configuration
and upload it to S3 bucket explicitly or when a deployment is executed.
To install this plugin, navigate to your Serverless project directory and run the following command:
npm install --save-dev serverless-plugin-pkl --legacy-peer-depsThen, add the plugin to your serverless.yml file:
plugins:
- serverless-plugin-pklTo configure this plugin, you need to add a pklConfig section to the custom section of your serverless.yml file.
Here is an example:
custom:
pklConfig:
file: path/to/config.pkl
upload:
bucket: my-bucket
format: json
create: trueIn this configuration:
fileis the path to the mainpklfile in your project.uploadis an optional configuration that allows you to upload thepklfile to an S3 bucket.bucketis the name of the S3 bucket where thepklfile should be uploaded.formatis the format in which thepklfile should be uploaded. By default, it isjson, but you can specifyyamlorxmlto.createis a boolean that specifies whether the bucket should be created if it does not exist. By default, it istrue.
PKL configuration is loaded at initialize step, so you can use the resultant configuration in your serverless file using mustache templating notation. Here is an example:
custom:
someConfig: '{{ pkl:some.config }}'
provider:
name: aws
runtime: python3.8
stage: '{{ pkl:stage }}'
region: '{{ pkl:region }}'Please note that this plugin requires the AWS provider and the bucket specified must already exist.