خط لوله CI / CD برای NodeJS Lambdas در AWS با استفاده از Jest ، Serverless Framework ، Github و TravisCI

عکس پروفایل نویسنده

@لکاناولالکان سوگنله

توسعه دهنده نرم افزار باتجربه در پایگاه های داده ، Ruby on Rails ، Ruby ، ​​Javascript ، Cloud Infrastructure ، AWS.

من می خواستم یک پروژه بدون سرور را شروع کنم ، و یکی از اصلی ترین سردردها به غیر از طراحی گردش کار و تصمیم گیری در مورد ایجاد توابع lambda ، یک گردش کار ساده و در عین حال موثر CICD است.

پیشنهاد معمول AWS استفاده از ترکیبی از CodeCommit ، CodeBuld ، CodeDeploy و چسباندن همه موارد در CodePipeline است. اما من قبلاً برای پروژه های دیگر GitHub داشتم ، بنابراین راه اندازی CodeCommit غیر ضروری است. همین امر برای CodeBuild که در حال حاضر عملکردهای آن را با TravisCI انجام می دهم ، جایی که هم ادغام و هم مشخصات ویژگی را انجام می دهم ، صدق می کند.

این یک پروژه NodeJS خواهد بود ، و من علاقه مندم که عملکردهای خود را در مرحله ساخت با استفاده از Jest به طور کامل آزمایش کنم. من همچنین می دانم که می توانم TravisCI را برای اجرای توابع CodeDeploy در استقرار تغییرات کد در تولید وفق دهم. اما من هنوز هم می خواهم عملکرد بدون سرور من بر روی AWS Lambda اجرا شود. برنامه من این است؛

من از Github برای مخزن کد خود و از Serverless Framework برای ایجاد و استقرار عملکردهای خود در AWS هنگام اجرای مرحله ساخت در Travis استفاده می کنم. مرحله ساخت روی Travis تست های Jest را در مورد توابع اجرا می کند ، اگر همه آزمایش ها بگذرد ، کد را با استفاده از CLI بدون سرور روی AWS Lambda مستقر می کند …