
Azure Functions开发的专家模式,包括隔离工作者模型、Durable Functions编排、冷启动优化和生产模式。涵盖.NET、Python和Node.js编程模型。技能概述azure-functions技能提供了Azure Functions开发的专家模式和最佳实践。它涵盖了隔离工作者模型、Durable Functions编排、冷启动优化和生产模式,支持.NET、Python和Node.js编程模型,帮助开发者构建高性能、可靠的Azure Functions应用。下载地址:https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-functions主要功能隔离工作者模型: 现代化.NET执行模型,具有进程隔离多语言支持: 支持.NET、Python和Node.js编程模型Durable Functions: 支持有状态函数编排冷启动优化: 减少冷启动时间和优化性能的策略生产模式: 生产环境最佳实践和模式隔离工作者模型(.NET)现代化.NET执行模型,具有进程隔离。适用于构建新的.NET Azure Functions应用。Program.cs示例using Microsoft.Azure.Functions.Worker;using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Hosting;var host new HostBuilder().ConfigureFunctionsWorkerDefaults().ConfigureServices(services {services.AddApplicationInsightsTelemetryWorkerService();services.ConfigureFunctionsApplicationInsights();services.AddHttpClient();services.AddSingleton();}).Build();host.Run();HttpTriggerFunction.cs示例public class HttpTriggerFunction{private readonly ILogger _logger;private readonly IMyService _service;public HttpTriggerFunction(ILogger logger,IMyService service){_logger logger;_service service;}[Function(HttpTrigger)]public async Task Run([HttpTrigger(AuthorizationLevel.Function, get, post)] HttpRequestData req){_logger.LogInformation(Processing request);try{var result await _service.ProcessAsync(req);var response req.CreateResponse(HttpStatusCode.OK);await response.WriteAsJsonAsync(result);return response;}catch (Exception ex){_logger.LogError(ex, Error processing request);var response req.CreateResponse(HttpStatusCode.InternalServerError);await response.WriteAsJsonAsync(new { error Internal server error });return response;}}}Node.js v4编程模型现代代码中心方法,适用于TypeScript/JavaScript。适用于构建Node.js Azure Functions。HTTP触发器示例import { app, HttpRequest, HttpResponseInit, InvocationContext } from azure/functions;export async function httpTrigger(request: HttpRequest,context: InvocationContext): PromiseHttpResponseInit {context.log(Http function processed request for url ${request.url});try {const name request.query.get(name) || (await request.text()) || world;return {status: 200,jsonBody: { message: Hello, ${name}! }};} catch (error) {context.error(Error processing request:, error);return {status: 500,jsonBody: { error: Internal server error }};}}app.http(httpTrigger, {methods: [GET, POST],authLevel: function,handler: httpTrigger});Python v2编程模型基于装饰器的方法,适用于Python函数。适用于构建Python Azure Functions。HTTP触发器示例import azure.functions as funcimport loggingimport jsonapp func.FunctionApp(http_auth_levelfunc.AuthLevel.FUNCTION)app.route(routehello, methods[GET, POST])async def http_trigger(req: func.HttpRequest) - func.HttpResponse:logging.info(Python HTTP trigger function processed a request.)try:name req.params.get(name)if not name:try:req_body req.get_json()name req_body.get(name)except ValueError:passif name:return func.HttpResponse(json.dumps({message: fHello, {name}!}),mimetypeapplication/json)else:return func.HttpResponse(json.dumps({message: Hello, World!}),mimetypeapplication/json)except Exception as e:logging.error(fError: {str(e)})return func.HttpResponse(json.dumps({error: Internal server error}),mimetypeapplication/json,status_code500)关键特性.NET隔离工作者:进程内模型已于2026年11月弃用隔离工作者支持.NET 8、9、10和.NET Framework完整的依赖注入支持自定义中间件支持Node.js v4模型:v4模型是代码中心的,没有function.json文件使用类似Express.js的app对象TypeScript一等支持所有触发器都在代码中注册最佳实践使用依赖注入管理服务和连接实现结构化日志记录以便故障排除使用Application Insights监控性能优化冷启动时间使用环境变量进行配置实现适当的错误处理和重试逻辑注意事项仅在任务明确匹配上述范围时使用此技能不要将输出作为环境特定验证、测试或专家审查的替代品如果缺少所需的输入、权限、安全边界或成功标准,请停止并请求澄清