معرفی
در دو مقاله اخیرم، یک REST API با توابع Azure با استفاده از پایگاه داده SQL و برنامه های کاربردی Azure Functions با استفاده از Docker Desktop ایجاد کردم. در این مقاله می خواهم فرآیند ساخت و انتشار خودکار را انجام دهم. اگر هر توسعهدهندهای بخواهد تغییری در کد ایجاد کند، خطوط لوله من به طور خودکار بر اساس ماشه نام شاخه اجرا میشوند. من قبلاً این کد منبع برنامه را به Azure Repo فشار داده ام. این یک مخزن عمومی است و هر کسی می تواند به کد دسترسی پیدا کند و آن را شبیه سازی کند. من از سرویس ثبت کانتینر Azure برای میزبانی تصویر docker و از سرویس Azure Container Instance برای میزبانی کانتینر استفاده خواهم کرد. Azure Container Instances یک سرویس میزبانی کانتینر بدون سرور است که توسط Azure ارائه می شود. نمونههای کانتینر Azure میتوانند ظرف چند ثانیه بدون نیاز به تهیه و مدیریت ماشینهای مجازی یا هر منبع دیگری، کانتینرها را در Azure راهاندازی کنند.
مشکل و راه حل
اولین مشکلی که می خواهم حل کنم این است که هر زمان کد تابع Azure خود را تغییر داده یا به روز می کنم. هر بار که نیاز دارم یک تصویر داکر جدید از برنامه عملکرد Azure خود ایجاد کنم و آن را به رجیستری کانتینر Azure یا مرکز داکر فشار دهم و سپس سرویس نمونههای کانتینر Azure خود را برای آخرین تصویر داکر بهروزرسانی کنم. این برای من دردسر بزرگی است که تمام این فرآیند را هر بار انجام دهم، بنابراین می خواهم کل فرآیند خود را خودکار کنم. هر زمان که کد را بهروزرسانی میکنم و آن را به مخزن Azure فشار میدهم، بر اساس راهاندازی شاخه، یک خط لوله ساخت فعال میشود و کد را در حالت انتشار میسازد. پس از ساخت کد، یک تصویر داکر جدید ایجاد می شود و به رجیستری کانتینر Azure منتقل می شود. در مرحله بعد، خط لوله انتشار فعال می شود و تصویر داکر را در نمونه های کانتینر Azure به روز می کند.
پیش نیازها
شما باید دانش اولیه Azure Container Registry و خدمات Azure Container Instance و دانش سطح مبتدی Azure DevOps را داشته باشید.
دستور جلسه
- گروه منابع Azure را ایجاد کنید
- رجیستری کانتینر Azure ایجاد کنید
- کلیدهای دسترسی به رجیستری کانتینر Azure را بگیرید
- یک خط لوله تصویری Build and Push Docker ایجاد کنید
- یک خط لوله انتشار ایجاد کنید