AWS YAML の JSON パーサー


動機

AWS の設定ファイルは JSON より YAML 派なんだけど、設定ファイルを Node.js (JSON) で処理したい。

AWS 独自の組み込み関数が使われていて、そのおかげで便利なんだけど、普通のYAMLパーサーだと読めない。
(組み込み関数のドキュメントは こちら)

そこで、組み込み関数を出来る限りエミュレートした専用パーサーを用意した。

ソースコード

インストール

yarn add aws-yaml

使い方

import yaml from 'aws-yaml';
import fs from 'fs';

const buff = await fs.promises.readFile('template.yaml', 'utf8');
const json = yaml.load(buff);

const { Resources } = json;

使える関数

full short
Ref !Ref
Fn::Join !Join
Fn::Select !Select
Fn::Split !Split
Fn::GetAtt !GetAtt
Fn::Sub !Sub
Fn::FindInMap !FindInMap
Fn::GetAZs !GetAZs
Fn::If !If
Fn::Equals !Equals
Fn::And !And
Fn::Or !Or
Fn::Not !Not
Fn::Base64 !Base64
Fn::Cidr !Cidr

使えない関数

full short
Fn::ImportValue !ImportValue
Fn::Transform !Transform