简介
cfn-events-stream 是一个适用于 AWS CloudFormation(以下简称 CFN)的 Node.js 模块,可以将 CloudFormation 的事件流(event stream)转换为可读流(readable stream),以方便实现自定义的 CFN 监控、日志、回滚等功能。
安装
在项目目录中执行以下命令安装 cfn-events-stream:
npm install cfn-events-stream --save
使用方法
引入模块
在 JavaScript 代码中引入 cfn-events-stream 模块:
const cfnEventsStream = require('cfn-events-stream');
创建可读流
const aws = require('aws-sdk'); const cfn = new aws.CloudFormation(); const params = { StackName: STACK_NAME }; const options = { retry: 5000, interval: 1000, backoff: 2 }; const cfnReadStream = cfnEventsStream(cfn, params, options);
其中,aws-sdk 模块是 AWS 的 JavaScript SDK,cfn 是 CloudFormation 的操作对象,params 是 CloudFormation 操作的参数,options 是 cfn-events-stream 的配置项,其中:
- retry:失败自动重试次数,默认是 5;
- interval:自动重试的时间间隔,默认是 3000(3s);
- backoff:自动重试的指数增长,默认是 2。
处理可读流
cfn-events-stream 返回的是 Node.js 的可读流(readable stream),需要调用 Node.js 的流处理方法,如 pipe 或 on 等实现对事件流的处理。
- pipe 方式:
const { createWriteStream } = require('fs'); const writeStream = createWriteStream('cfn-events.log'); cfnReadStream.pipe(writeStream);
- on 方式:
cfnReadStream.on('data', data => console.log(data));
示例代码
将 CloudFormation 栈更新事件流记录到本地日志文件。
-- -------------------- ---- ------- ----- --- - ------------------- ----- - ----------------- - - -------------- ----- --------------- - ----------------------------- ----- --- - --- --------------------- ----- ---------- - ---------------- ----- ------ - - ---------- ---------- -- ----- ----------- - ------------------------------------ ----- ------- - - ------ -- --------- ----- -------- - -- ----- ------------- - -------------------- ------- --------- ------------- ---------------------------------------- ------------------- ------------------------ ------------------- -------- --------------------------- - ----- - --------- - - ------------------ ------ --- ----------- ----------- ----- --------------- --------- --------- - ----- ----- - ---------------------------- -- ------------------------------------------- - ---------------- - ----------- -- --- - -------- ----------------- - ----- - --------- - - ------------------ ------ --- ----------- ----------- ----- --------------- --------- --------- - ----- ----- - ---------------------------- ----- - -------- ---------- ------------------ -------------------- - - ------ ----- ------- - ------- ---------------------- ------ ------------ ------------- ------------------ --------------------- ------- ------------------------ -------- ------------------------- -------------------------- ----------- -- --- -
指导意义
cfn-events-stream 模块可以帮助我们更好地监控 CloudFormation 的操作,协助我们更好地了解 CloudFormation 的操作状态及操作详情,方便我们进行更深入的监控、诊断和回滚操作,提高了系统的可维护性及稳定性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600556e681e8991b448d3c51