کنسول Elusive Lambda; یک پیشنهاد مشخصات

پس از سال ها شکستن Cloud & Rails با هم، به یک ایده رسیدم. بهتر از یک ایده، یک مشخصات کاری! جایی که ما علاقه مندان به Rails & Lambda می توانیم یک بار دیگر به “سرورهای” خود “کنسول” کنیم و وظایف CLI مانند مهاجرت را اجرا کنیم یا از طریق دوست عزیزمان IRB، کنسول Rails، تعامل کنیم. امروز می خواهم پروژه کنسول لامبدا را معرفی کنم. یک پیشنهاد مشخصات باز برای هر زمان اجرا AWS Lambda که باید اتخاذ شود.
کنسول لامبدا
npm install -g lambda-console-cli
کنسول Lambda یک CLI نوشته شده در Node.js است که به صورت تعاملی یک جلسه AWS SDK را برای شما ایجاد می کند تا توابع Lambda خود را با دو نوع حالت فراخوانی کنید.
- CLI Runner
- دستورات تعاملی
CLI Runner را به عنوان یک دستور bash در نظر بگیرید. شما می توانید هر دستور پردازشی را اجرا کنید یا با سیستم فایل یا محیط تعامل داشته باشید. برای کاربران Rails، اجرای وظایف Rake یا انتقال DB. این وظایف ریشه وظیفه Lambda را به عنوان دایرکتوری کاری فعلی فرض می کنند.
دستورات تعاملی با این حال در زمینه برنامه در حال اجرا شما ارزیابی می شوند. برای برنامه های Ruby و Rails، این IRB (Interactive Ruby Shell) را شبیه سازی می کند. برای کاربران لامبی، این حالت کنسول Rails را شبیه سازی می کند. این امکان را برای کاربران فراهم می کند که از DB خود پرس و جو کنند یا مدل ها و کدهای خود را جستجو کنند.
پیشنهاد
هیچ چیزی در مورد کنسول لامبدا که با Ruby یا Rails جفت شده باشد وجود ندارد. ایده ساده است، به عنوان یک جامعه لامبدا، آیا میتوانیم کارهای زیر را انجام دهیم؟
- مشخصات درخواست/پاسخ کنسول Lambda را نهایی کنید.
- پیاده سازی های بیشتر زبان مخصوص زمان اجرا ایجاد کنید.
- یک کلاینت شگفت انگیز CLI برای هر زمان اجرا بسازید.
این چیزی است که امروز داریم. مشخصات درخواست، یک ساختار رویداد ساده که تنها چند ده خط از طرح JSON است.
{ "X_LAMBDA_CONSOLE": { "run": "cat /etc/os-release" } }
{ "X_LAMBDA_CONSOLE": { "interact": "User.find(1)" } }
هر کد یا فریم ورک زمان اجرا Lambda می تواند مدیریت این رویدادها را در بسته های زبان خاص خود پیاده سازی کند. میتوانید اجرای Ruby اینها را در اولین پیادهسازیهای مرجع لامبدا بیابید.
احتمالات
آنچه من واقعاً می خواهم یک مشتری CLI شگفت انگیز است. کنسول فعلی Lambda Console CLI در چند روز با استفاده از ابزارهای شگفت انگیز Node.js هک شد که ساختن CLI های تعاملی را بسیار آسان می کند. اما من قبلا این کار را نکرده بودم. اگر این نوع ابزار برای شما جالب به نظر می رسد و Node.js را دوست دارید، به من اطلاع دهید! دیدن بسته های پیاده سازی برای Node، PHP، Python و سایر فریم ورک ها با استفاده از این زبان ها شگفت انگیز خواهد بود. در اینجا چند ایده در مورد جایی که می توانم این کار را ببینم وجود دارد.
STDOUT و STDERR زنده: ما میتوانیم از قابلیت جدید Response Streaming لامبدا استفاده کنیم و بافرهای خروجی را در صورت وقوع ارسال کنیم.
شبه TTY: آیا راهی برای شبیه سازی بهتر یک جلسه TTY واقعی وجود دارد؟ آیا این حتی می تواند شامل رنگ های ANSI نیز باشد؟
بهبود کیفیت زندگی: همه چیز از، اجازه دادن به ابزار CLI برای تغییر حالت بدون راه اندازی مجدد. ایجاد یک بافر فرمان برای پیمایش تاریخچه بالا. رابط کاربری زیباتر
طرح پاسخ رسمی JSON: با رشد ویژگی ها، آیا پاسخ JSON باید استاندارد شود؟ برای مثال، اگر مشتری بخواهد دستورات زبان تعاملی را برجسته کند، چگونه میداند چه زبانی استفاده میشود؟ ما می توانستیم یک X_LAMBDA_CONSOLE_LANG
هدر پاسخ
دوست دارید چه چیز دیگری در یک کلاینت کنسول لامبدا ببینید؟