Ruby on Rails در Lambda در Arm64/Graviton2!
امروز خوشحالم که اعلام کنم Lamby (Simple Rails & AWS Lambda Integration with Rack) اکنون نشان می دهد که استفاده از چند پلتفرم چقدر آسان است. arm64
تصاویر در AWS Lambda. اگر این برای شما جالب به نظر می رسد، مستقیماً به راهنمای شروع سریع ما بروید و یک تصویر Rails 7 جدید را روی Ruby 3.2 Ubuntu نصب کنید تا خودتان آن را ببینید.
چگونه کار می کند؟
اول، AWS این کار را از زمان انتشار در سپتامبر 21 بسیار آسان کرده است، جایی که AWS SAM می تواند به سادگی معماری استقرار را در پروژه بدون سرور شما تغییر دهد. template.yml
فایل:
Properties:
Architectures:
- - arm64
+ - x86_64
دوم، مطمئن شوید که تصویر پایه Docker شما از آن پشتیبانی می کند arm64
معماری. اکثر تصاویر محبوب قبلاً از ساختهای چند پلتفرمی استفاده میکنند. به عنوان مثال، در اینجا تصویر رسمی روبی است که ما در پروژه نمایشی لامبی استفاده می کنیم.
$ docker manifest inspect ruby:3.2 | grep arch
"architecture": "amd64",
"architecture": "arm64",
در نهایت، مطمئن شوید که دستگاه استقرار شما با معماری هدف تولید مطابقت دارد. این برای اطمینان از اینکه وابستگیهای بومی (مانند مشتری MySQL) برای مطابقت با معماری تصویر Docker که در نهایت در مرحله تولید اجرا میشود، ساخته شدهاند، مورد نیاز است. اگر از M1/M2 Mac استفاده می کنید، می توانید از دستگاه خود مستقر شوید.
با این حال، برای تولید واقعی CI/CD، بهتر است از چیزی مانند محیط اجرای بازوی CircleCI استفاده کنید. در حال حاضر GitHub Actions فاقد پشتیبانی بومی برای Arm64 Runners است، اما این مشکل در حال پیگیری است و گمان میکنم به زودی از راه برسد.
در عین حال، پروژههای نمایشی لامبی شامل یک نمونه کار CircleCI CI/CD برای شما است که از arm.large
ماشین تایپ.
default-machine: &default-machine
machine:
image: ubuntu-2204:current
docker_layer_caching: true
resource_class: arm.large
با تشکر! لطفاً برای کسب اطلاعات بیشتر در مورد Rails on Lambda با استفاده از Lamby و نحوه استفاده از arm64 با Graviton2 با برنامه های Lambda خود در سایت ما وقت بگذارید: