serverless-export-outputs
Version:
A Serverless plugin for exporting AWS stack outputs to a file.
87 lines (65 loc) • 2.11 kB
Markdown
# Serverless Export Outputs
> A Serverless plugin for exporting AWS stack outputs to a file.
By default, this plugin exports all stack outputs to a `toml` formatted `.env` file in the root of the project. You can override these in step 4. You can also turn on Create React App prefixing in step 5.
## Setup
1. Add dependency to `package.json`:
```sh
npm add -D serverless-export-outputs
```
or
```sh
yarn add -D serverless-export-outputs
```
2. Add the plugin to `serverless.yml` file:
```yaml
plugins:
- serverless-export-outputs
```
3. Choose which outputs get exported (optional):
```yaml
custom:
exportOutputs: # if not provided, all outputs are exported
- OutputKeyName
- AnotherOutputKeyName
- CustomOutput: value # add custom key/value to exports
Outputs:
OutputKeyName:
Value: Lorem ipsum
AnotherOutputKeyName:
Value: Lorem ipsum
ThisOutputWontExport:
Value: Lorem ipsum
```
4. Override defaults:
```yaml
custom:
exportOutputs:
include: # if not provided, all outputs are exported
- OutputKeyName
- AnotherOutputKeyName
- CustomOutput: value # add custom key/value to exports
handler: scripts/env.js # script to process outputs
output:
file: ./.env # file path and name relative to root
format: toml # toml, yaml/yml, json
```
Handler at `scripts/env.js`:
```js
function handler(outputs, serverless, options) {
console.log({ outputs });
return outputs;
}
module.exports = handler;
```
5. ReactApp prefixing:
Format all keys as `OutputKeyName → REACT_APP_OUTPUT_KEY_NAME` to have Create React App pick them up as `process.env` variables.
_Note: This will be ignored if a handler is provided like in step 4._
```yaml
custom:
exportOutputs:
reactapp: true
include: # if not provided, all outputs are exported
- OutputKeyName
- AnotherOutputKeyName
- CustomOutput: value # add custom key/value to exports
```