关于microsoft:NET-5-支持-Azure-Functions-OpenAPI-扩展啦

6次阅读

共计 3912 个字符,预计需要花费 10 分钟才能阅读完成。

咱们很快乐地发表.NET 5 反对 Azure Functions OpenAPI 扩大啦!

往年 5 月,在 Build 大会 上,Azure Functions OpenAPI 的性能反对(预览版)正式发表。过后,它最高反对 v3 运行时——.NET Core 3.1 版本。最近,它公布了 .NET 5 隔离工作器反对包作为预览。在这篇文章中,我将回顾如何应用它并将其部署到 Azure。

留神:您能够在此 GitHub 存储库中找到本文中应用的示例代码:https://github.com/justinyoo/…

在 .NET 5 中创立 Azure Functions 应用程序

让咱们应用 Visual Studio 来实现这个练习。在创立应用程序时,应用“.NET 5(隔离)” 运行时和 ”Http 触发器 ”。

而后您将找到带有默认代码的 HTTP 端点。当初,在解决方案资源管理器上抉择 NuGet 包管理器菜单。

在 NuGet 包管理器屏幕中,勾选“包含预公布”复选框,而后搜寻 Microsoft.Azure.Functions.Worker.Extensions.OpenApi 包。在撰写本文时,NuGet 打包程序版本是 v0.8.1-preview。

OpenAPI 扩大当初曾经装置。

配置 HostBuilder

装置 OpenAPI 扩大之后,让咱们配置 HostBuilder。首先,关上 Program.cs 文件并删除现有的 ConfigureFunctionsWorkerDefaults() 办法。这是因为该办法默认应用 System.Text.Json,咱们不会应用它。

 public static void Main(){var host = new HostBuilder()
            // 👇👇👇👇👇 删除以下这行 👇👇👇👇👇
            .ConfigureFunctionsWorkerDefaults()
            // 👆👆👆👆👆 删除以上这行 👆👆👆👆👆
            .Build(); 
        host.Run();}

而后,按此程序增加 ConfigureFunctionsWorkerDefaults(worker => worker. usenewtonsoftjson()) 和 ConfigureOpenApi() 办法。第一个办法明确申明要应用 Newtonsoft.Json 包,下一个导入额定的 OpenAPI 相干端点。

public static void Main() 
{var host = new HostBuilder()
            // 👇👇👇👇👇 Add these lines below 👇👇👇👇👇
            .ConfigureFunctionsWorkerDefaults(worker => worker.UseNewtonsoftJson())
            .ConfigureOpenApi()
           // 👆👆👆👆👆 Add these lines above 👆👆👆👆👆
           .Build();
        host.Run();}

留神:目前,应用 System.Text.Json 并不能保障应用程序是否失常工作。因而,强烈推荐应用 Newtonsoft.Json。

至此,配置结束。让咱们持续。

增加 OpenAPI 修饰符

增加 OpenAPI 相干的修饰符,如下所示。这与现有办法完全相同,所以我不会讲得太深。

// 👇👇👇👇👇 在上面增加 OpenAPI 相干的修饰符👇👇👇👇👇
    [OpenApiOperation(operationId: "greeting", tags: new[] {"greeting"}, Summary = "Greetings", Description = "This shows a welcome message.", Visibility = OpenApiVisibilityType.Important)]
    [OpenApiSecurity("function_key", SecuritySchemeType.ApiKey, Name = "code", In = OpenApiSecurityLocationType.Query)]
    [OpenApiResponseWithBody(statusCode: HttpStatusCode.OK, contentType: "text/plain", bodyType: typeof(string), Summary = "The response", Description = "This returns the response")]
    // 👆👆👆👆👆 在下面增加 OpenAPI 相干的修饰符 👆👆👆👆👆
    [Function("Function1")]
    public static HttpResponseData Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req,
        FunctionContext executionContext)
    {...}

一旦你实现了修饰符的增加,你就实现了! 让咱们运行这个应用程序。

运行 Swagger UI

通过输出 F5 键或单击 Visual Studio 上的调试按钮运行 Function 应用程序。

您将看到控制台中增加了 OpenAPI 相干的端点。

在 web 浏览器上运行 http://localhost:7071/api/swa… 端点,您将看到 Swagger UI 页面。

当初已正确施行具备 OpenAPI 性能的 Azure Function 利用。

部署 Azure Fuuction APP-Windows

你确认你的 Azure Function 利用工作失常。当初须要部署该我的项目。首先,单击解决方案资源管理器中的“公布”菜单。

抉择“Azure”,而后抉择“Azure Functions App (Windows)”。

您能够应用现有的 Function 应用程序实例或通过单击 按钮来创立一个新的应用程序实例。这一次,让咱们应用以后实例。

一旦部署实现,在 web 浏览器上关上 Azure Functions URL,你就会看到 Swagger UI 页面。

部署 Azure Function 利用 - Linux

这一次,让咱们将雷同的应用程序部署到 Linux 实例。除此之外,让咱们应用 GitHub Actions。为了做到这一点,你必须将这个应用程序上传到 GitHub 存储库。因而,挪动到“Git Changes”窗格并创立一个 Git 仓库。

如果你曾经在 Visual Studio 中登录了 GitHub,你就能够创立一个存储库并推送代码。

一旦推送了所有代码,请拜访 GitHub 以查看您的存储库是否已实际上传所有代码。

让咱们回到公布屏幕,点击“ New”按钮来创立一个新的公布配置文件。

而后会呈现一个相似的弹出窗口。这次让咱们应用“Azure Function App (Linux)”菜单。

如前所述,您能够应用现有的实例或创立新的实例。咱们就用现有的吧。

在后面的部署练习中,咱们没有 GitHub 存储库。因而,咱们不得不应用本地部署的办法。但这一次,咱们有 GitHub 存储库,这意味着咱们有抉择。因而,这次咱们不抉择雷同的部署办法,而是抉择 GitHub Actions。

GitHub Actions 工作流现已主动生成。但这须要一个新的 commit。

移至“Git Changes”窗格,输出如下所示的提交音讯,单击“Commit All”按钮,而后推送更改。

当您理论拜访您的 GitHub 存储库时,您的 GitHub 操作工作流会运行 buil 和部署。

一旦部署完结,关上一个新的 web 浏览器,拜访 Azure Functions 应用程序 URL,并发现 Swagger UI 页面被正确地出现。

到目前为止,咱们曾经学习了如何创立一个反对 OpenAPI 的 Azure Functions 应用程序,在.Net 5 隔离的工作环境中运行,并无需来到 Visual Studio 就将其部署到 Azure。我猜实践上它也能够在.Net 6 上很好运行。如果你好奇,请部署它,并在 https://github.com/Azure/azur… 上通知咱们!

参考资料

  • 进入 GitHub 搜寻:Azure Functions OpenAPI 扩大
  • 进入 Microsoft Docs 搜寻:在 Visual Studio 中应用 Azure Function 和 API 治理集成创立无服务器 API(预览版)
  • 进入 MS Learn 平台搜寻:Azure Functions: 发现 OpenAPI 和 Power 利用

参考链接

Build 大会链接地址:

https://mybuild.microsoft.com…

Azure Functions OpenAPI 的性能反对(预览版)正式发表链接地址:

https://docs.microsoft.com/en…

.NET 5 隔离工作器反对包链接地址:

https://github.com/Azure/azur…

Visual Studio 链接地址:

https://visualstudio.microsof…

反对 OpenAPI 链接地址:

https://github.com/Azure/azur…

Azure Functions 链接地址:

https://docs.microsoft.com/en…

Azure Functions OpenAPI 扩大链接地址:

https://github.com/Azure/azur…

在 Visual Studio 中应用 Azure Function 和 API 治理集成创立无服务器 API(预览版) 链接地址:

https://docs.microsoft.com/en…

Azure Functions: 发现 OpenAPI 和 Power 利用链接地址:

https://www.youtube.com/playl…


扫码关注微软 MSDN,获取更多微软一手技术信息和官网学习材料!

正文完
 0