من با وارد کردن Swagger of a Azure Function در مدیریت API مشکل زیادی داشتم. سپس، روشی نوآورانه برای ایجاد Swagger در توابع Azure، به طور کلی، توابع HTTP Trigger پیدا کردم. یک الزام برای تجمیع همه APIها تحت مدیریت API وجود داشت. بنابراین، پیدا کردن راهی برای ایجاد Swagger از عملکرد Azure و خودکار کردن آن برای من یک چالش بود.
راه های مختلفی برای ایجاد swagger از Azure Function Apps وجود دارد. میتوانید از Azure Portal یا با استفاده از دستورات PowerShell با فراخوانی REST نقطههای انتهایی Azure Functions، Swagger ایجاد کنید. اما من آن را برای استفاده از خود Azure Function انتخاب کردم.
می دانید که Swagger از Azure Function با استفاده از پورتال Azure هنوز در حالت Preview است. من مطمئن نیستم که برنامه مایکروسافت برای در دسترس قرار دادن آن به طور کلی چیست.
بیایید با درک فرآیند ایجاد Swagger شروع کنیم.
من یک نمونه پروژه HTTP Trigger Azure Function ایجاد کرده ام. میتوانید چندین مقاله در اینترنت برای ایجاد یک تابع HTTP Trigger Azure از ابتدا پیدا کنید.
![وارد کردن تابع Azure Swagger JSON در مدیریت Azure API](http://pezhvak24.ir/dl/10kcor/cscd/article/importing-azure-function-swagger-in-azure-api-management/Images/Importing Azure Function Swagger JSON In Azure API Management1.png)
شما می توانید این برنامه را اجرا کنید و هر کاری که می خواهید انجام دهید. اما وقتی میخواهیم با استفاده از ابزارهای دیگر به این تابع دسترسی پیدا کنیم، باید راهی برای یکپارچهسازی بیاندیشیم. با مدیریت Azure API، میتوانید مستقیماً یک تابع Azure را از پورتال وارد کنید. اما این یک راه دستی است، نه خودکار. هدف من در اینجا این است که این قابلیت ایجاد swagger را خودکار کنم، بنابراین می توانیم با استفاده از خط لوله CI/CD (ادغام مداوم/ استقرار مستمر) آن را ادغام کنیم. و ما به آن دست یافته ایم. می توانید CI/CD را با استفاده از Visual Studio Build Pipeline یا ابزارهای دیگر بسازید.
در اینجا جریان ایجاد یک swagger و وارد کردن آن به مدیریت API به روشی خودکار است.
![وارد کردن تابع Azure Swagger JSON در مدیریت Azure API](http://pezhvak24.ir/dl/10kcor/cscd/article/importing-azure-function-swagger-in-azure-api-management/Images/Importing%20Azure%20Function%20Swagger%20JSON%20In%20Azure%20API%20Management2.png)
از نمونه پروژه خود، اگر آن را اجرا کنیم، خروجی زیر را دریافت می کنیم.
![وارد کردن تابع Azure Swagger JSON در مدیریت Azure API](http://pezhvak24.ir/dl/10kcor/cscd/article/importing-azure-function-swagger-in-azure-api-management/Images/Importing%20Azure%20Function%20Swagger%20JSON%20In%20Azure%20API%20Management3.png)
حالا بیایید تابع swagger را در این پروژه اضافه کنیم. همچنین یک تابع محرک HTTP خواهد بود. شما باید مرجع "System.ComponentModel.Annotations" نسخه 4.1.0 بسته NuGet را در این پروژه اضافه کنید.
![وارد کردن تابع Azure Swagger JSON در مدیریت Azure API](http://pezhvak24.ir/dl/10kcor/cscd/article/importing-azure-function-swagger-in-azure-api-management/Images/Importing%20Azure%20Function%20Swagger%20JSON%20In%20Azure%20API%20Management4.png)
این تابع Swagger برای تکمیل برنامه Function Swagger ایجاد می کند. وقتی این پروژه را اجرا می کنیم، 2 URL میزبانی برای تابع Azure دریافت می کنیم.
![وارد کردن تابع Azure Swagger JSON در مدیریت Azure API](http://pezhvak24.ir/dl/10kcor/cscd/article/importing-azure-function-swagger-in-azure-api-management/Images/Importing%20Azure%20Function%20Swagger%20JSON%20In%20Azure%20API%20Management5.png)
ما URL تابع swagger را در مرورگر فراخوانی می کنیم. در پاسخ به ما نسخه JSON Swagger 2.0 را می دهد.
![وارد کردن تابع Azure Swagger JSON در مدیریت Azure API](http://pezhvak24.ir/dl/10kcor/cscd/article/importing-azure-function-swagger-in-azure-api-management/Images/Importing%20Azure%20Function%20Swagger%20JSON%20In%20Azure%20API%20Management6.png)
این کار پایه ای است که ما تاکنون انجام داده ایم.
پس از شروع یکپارچه سازی واقعی، ما با هر ابزاری یک خط لوله CI/CD ایجاد می کنیم و با استفاده از PowerShell، می توانیم این swagger را به مدیریت API وارد کنیم.
شما CI/CD را برای استقرار برنامه Azure Function پیکربندی می کنید. هنگامی که بتوانید با موفقیت برنامه عملکرد را با استفاده از خط لوله CI/CD اجرا کنید، می توانید مرحله "Execute PowerShell" را به آن اضافه کنید. این مرحله به URL برنامه تابع میزبانی شده از تابع swagger اشاره دارد. می توانید از دستور PowerShell "Import-AzureRmApiManagementApi" استفاده کنید . در زیر نمونه ای از دستورات آمده است.
Import-AzureRmApiManagementApi -Context $ApiMgmtContext -SpecificationPath $SwaggerJSONUrl -SpecificationFormat Swagger -Path $APIURLSپسوند -ErrorAction $ErrorActionPreference
پس از وارد کردن برنامه عملکرد در مدیریت API، به نظر می رسد این است.
![وارد کردن تابع Azure Swagger JSON در مدیریت Azure API](http://pezhvak24.ir/dl/10kcor/cscd/article/importing-azure-function-swagger-in-azure-api-management/Images/Importing%20Azure%20Function%20Swagger%20JSON%20In%20Azure%20API%20Management7.png)
با این رویکرد، واردات خودسرانه شما کار می کند. در آینده، اگر هر عملکرد جدیدی را در این برنامه کاربردی اضافه کنید، به طور خودکار این کار را ایجاد می کند.
با تشکر از خواندن این مقاله. امیدوارم از این مراحل خوشتون بیاد منتظر نظرات یا نظرات شما در قسمت نظرات هستم.