An open API service indexing awesome lists of open source software.

https://github.com/arhea/aws-userdata-handlebars

Use Handlebars templates in AWS CDK UserData
https://github.com/arhea/aws-userdata-handlebars

Last synced: 9 months ago
JSON representation

Use Handlebars templates in AWS CDK UserData

Awesome Lists containing this project

README

          

# UserData Powered By Handlebars

![Monthly Downloads](https://img.shields.io/npm/dm/@arhea/aws-userdata-handlebars)
![License](https://img.shields.io/npm/l/@arhea/aws-userdata-handlebars)
![Dependencies](https://img.shields.io/librariesio/release/npm/@arhea/aws-userdata-handlebars)

This construct enables the use of Handlebars templates as Userdata. Often times UserData scripts are long, complex, and require inserting other variables from your environment. This construct extends the base functionality of the default ec2.UserData class to include Handlebars.

## Usage

```typescript
import { HandlebarsUserData } from '@arhea/aws-userdata-handlebars';
import * as path from 'path';

// create our object
// for Windows add .forWindows() instead of .forLinux()
const webUserData = HandlebarsUserData.forLinux();

// load the template file
webUserData.addTemplateFile(path.join(__dirname, 'userdata', 'webserver.handlebars'));

// add data to the template in a key, value format
webUserData.addData('loadBalancerUrl', `http://${app.loadBalancerDnsName}`);
```

## Useful commands

* `npm run build` compile typescript to js
* `npm run watch` watch for changes and compile
* `npm run test` perform the jest unit tests