📌  相关文章
📜  Microsoft Azure – Azure Functions 中的新功能(1)

📅  最后修改于: 2023-12-03 15:02:56.444000             🧑  作者: Mango

Microsoft Azure – Azure Functions 中的新功能

Azure Functions 是一个事件驱动的计算平台,可自动缩放,但不需要管理基础结构。最新版本的 Azure Functions 中引入了一些新功能,使其更加强大和灵活,使开发者能够更轻松地构建和部署服务器less应用程序。

1. .NET 5.0 运行时

Azure Functions 现在支持 .NET 5.0 运行时。这意味着你可以使用最新的 .NET 版本来构建和运行 Functions。该运行时提供了更好的性能、更好的工具支持以及更广泛的 API。

## 代码片段

使用 .NET 5.0 运行时创建一个 Azure Function

1. 创建一个 Azure Function 项目
2. 在项目文件中,升级 Microsoft.NET.Sdk.Functions 到最新版本:
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.11" />
3. 切换到 .NET 5.0 运行时,编辑项目文件:
    <TargetFramework>net5.0</TargetFramework>
2. Azure SignalR 集成

Azure Functions 现在可以与 Azure SignalR 集成,这使得实时通信变得更加容易。Azure SignalR 是 Azure 的一个服务,它提供了一个简单的 API,使开发人员能够轻松地将实时功能添加到应用程序中。

## 代码片段

订阅 SignalR Hub 事件

1. 在 Azure Function 项目中安装 Microsoft.Azure.WebJobs.Extensions.SignalRService NuGet 包:
    dotnet add package Microsoft.Azure.WebJobs.Extensions.SignalRService
2. 创建一个函数,用于处理 SignalR 事件:
    [FunctionName("SignalRFunction")]
    public static async Task&lt;void&gt; SignalRFunction(
        [SignalRTrigger("chat", "messages", "all")] InvocationContext invocationContext,
        ILogger logger)
    {
        logger.LogInformation("SignalR message received: " + invocationContext.ConnectionId);
    }
3. 在 Functions 应用程序中配置 SignalR 集线器终结点:
    "AzureSignalRConnectionString": "&lt;connection_string&gt;",
    "AzureSignalRHubName": "&lt;hub_name&gt;"
3. Durable Functions 改进

Azure Functions 中的 Durable Functions 可以轻松地创建长时间运行的工作流。最新版本中引入了一些改进,包括:

  • 从编写活动功能的步骤中移除无谓的 try-catch 语句
  • 在 Azure Functions Portal 中调试恢复活动时更容易获取状态
  • 为 C#、F# 和 JavaScript 提供强类型支持
## 代码片段

在 Azure Functions 中编写 Durable Functions

1. 安装 Microsoft.Azure.WebJobs.Extensions.DurableTask NuGet 包:
    dotnet add package Microsoft.Azure.WebJobs.Extensions.DurableTask
2. 创建一个活动函数:
    [FunctionName("ActivityFunction")]
    public static async Task&lt;string&gt; ActivityFunction([ActivityTrigger] string inputText)
    {
        // 在此处放置活动函数的逻辑
    }
3. 创建一个 orchestration 函数:
    [FunctionName("OrchestrationFunction")]
    public static async Task&lt;string&gt; OrchestrationFunction(
        [OrchestrationTrigger] DurableOrchestrationContext context)
    {
        string inputText = context.GetInput<string>();
        string result = await context.CallActivityAsync&lt;string&gt;("ActivityFunction", inputText);
        return result;
    }
4. 部署并测试 Azure Functions:
    http://localhost:7071/api/OrchestrationFunction?inputText=hello%20world
总结

Azure Functions 是一个功能强大的服务器less计算平台,最新版本中引入了 .NET 5.0 运行时、Azure SignalR 集成以及 Durable Functions 改进等一些新的功能。这些功能使得开发者能够更加轻松地构建和部署服务器less应用程序,从而提高开发效率。