حالت Express؛ CloudFormation بدون معطلی
خلاصهٔ کاملتر
تیم AWS تو بلاگ دواپس خودش از حالت تازهای به اسم express mode برای CloudFormation رونمایی کرده. تو حالت پیشفرض، CloudFormation بعد از ساختن هر منبع منتظر مرحلهای به اسم stabilization میمونه؛ یعنی صبر میکنه تا منبع واقعاً آمادهٔ ترافیک بشه — مثلاً یه توزیع CloudFront بین همهٔ لبهها پخش بشه یا کانتینرهای یه سرویس ECS از health check رد بشن.
به گفتهٔ نویسنده، Express این تصمیم رو دست خودت میده: به محض اینکه پیکربندی منبع اعمال شد، عملیات تمامشده اعلام میشه و آمادهسازی در پسزمینه ادامه پیدا میکنه. CloudFormation هم برای هر منبع یه status reason میذاره تا بدونی کدوم هنوز داره آماده میشه. وابستگیها، ترتیب ساخت و تلاش مجدد برای خطاهای گذرا دستنخورده باقی میمونن.
نکتهٔ مهم اینه که منبع تو هر دو حالت دقیقاً به یه اندازه طول میکشه تا آمادهٔ ترافیک بشه؛ چیزی که سریعتر میشه چرخهٔ تکرار خودته. تو مثال مقاله، وقتی داری یه VPC و ALB میسازی و فقط به DNS name و شناسهٔ security group نیاز داری، دیگه لازم نیست منتظر بمونی. برای عاملهای هوش مصنوعی که مدام template رو عوض و دوباره deploy میکنن، یه استقرار پنج تا ده دقیقهای CloudFront به تأیید زیر یک دقیقه تبدیل میشه.
فعالکردنش هم بهازای هر عملیات و با یه پارامتره؛ نه تغییر template لازمه نه نوع منبع جدید:
aws cloudformation create-stack \
--stack-name my-app \
--template-body file://template.yaml \
--deployment-config '{"mode": "EXPRESS"}'تو CDK و SAM هم فلگ --express اضافه شده (مثل cdk deploy --express یا sam deploy --express) و با --save-params میتونی تو samconfig.toml ذخیرهش کنی. حواست باشه Express بهصورت پیشفرض rollback رو غیرفعال میکنه تا سریعتر بتونی خطا رو درست کنی و دوباره امتحان کنی؛ با disableRollback: false میتونی برش گردونی. Express با change set هم کار میکنه و روی nested stackها هم از استک والد به پایین منتشر میشه.
جمعبندی نویسنده اینه که Express دو تا سؤال متفاوت رو از هم جدا میکنه: «پیکربندی من درسته؟» و «منابع من دارن ترافیک میگیرن؟». برای توسعه و تکرار، جواب سؤال اول کافیه؛ ولی برای استقرار پروداکشن که «تمامشدن استک» باید یعنی «آمادهٔ ترافیک»، همون حالت پیشفرض انتخاب درستتریه.
نکات کلیدی:
- Express به محض اعمال پیکربندی، عملیات رو تمامشده اعلام میکنه و stabilization تو پسزمینه ادامه پیدا میکنه
- با یه پارامتر فعال میشه: --deployment-config '{"mode": "EXPRESS"}'، و تو CDK و SAM با فلگ --express
- وابستگیهای بین منابع، ترتیب ساخت و retry خطاهای گذرا مثل قبل رعایت میشن
- rollback بهصورت پیشفرض خاموشه؛ با disableRollback: false روشنش کن
- روی change set و nested stack هم پشتیبانی میشه
- برای پروداکشن که «تمامشدن استک» یعنی «آمادهٔ ترافیک»، حالت پیشفرض رو نگه دار




