背景
在 AWS 开发中,我们通常使用 CodePipeline 作为代码部署的工具,但是 CodePipeline 自带的版本管理并不是很方便,每次更新都需要手动更新版本号或者手动上传文件。
这时,lard-codepipeline-lambda-versioner 这个 npm 包就可以提供帮助。它可以轻松地生成 Lambda 函数的版本号,并将版本号与代码包一起发布到 S3 存储桶或者 CodeDeploy 描述符中。
安装
npm install lard-codepipeline-lambda-versioner --save-dev
使用
生成版本号
在 package.json 中添加如下代码:
{ "scripts": { "lambda-version": "node node_modules/lard-codepipeline-lambda-versioner/version.js" } }
然后运行脚本:
npm run lambda-version
脚本会自动创建版本号,并将版本号存储在文件 VERSION
中。
更新 CodePipeline
通常,您需要在 AWS 的 CodePipeline 中使用这个版本号。您可以通过 AWS CloudFormation 模板或者 AWS CLI 来将版本号更新到配置文件中。以下是使用 AWS CLI 的一个示例:
aws cloudformation update-stack \ --stack-name cloudformation-stack-name \ --use-previous-template \ --parameters ParameterKey=AppVersion,ParameterValue=`cat VERSION` \ --capabilities CAPABILITY_NAMED_IAM
这个命令会将版本号存储在参数中,并将该参数传递给 CloudFormation 模板。
将版本发布到 S3 存储桶
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ---------- - --------------------------------------------------------- ----- -------- - - ------- ------------ ------- ------------ ------- ------------ ---------- -------------- ------------- ---------- -- ----- ------- - ------------------------------------ ----------- -------- --- -------------------- ---------------------------- ------- -------------- -------- ----- ----- -- - -- ----- - -------------------- ----- - ---- - ---------------------- ------ - ---
将版本发布到 CodeDeploy 声明中
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ------------------- - ------------------------------------------------------------------ ----- ---------------- - - ---------------- --- ------------- -------------------- --- ---------- ------- --------------- - ------------- ----- ----------- - ------- ------------ ---- -------- - - -- ----- ------- - ------------------------------------ ----------- -------- --- ------------------------------------- ----------------------------- ------- -------------- -------- ----- ----- -- - -- ----- - -------------------- ----- - ---- - ---------------------- ------ - ---
结语
使用 lard-codepipeline-lambda-versioner 可以让我们更加轻松地进行 AWS Lambda 函数的版本管理,不需要手动管理版本号和部署配置文件。 希望这篇文章对你有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562e581e8991b448e07a0