0

0

C#如何创建Azure Functions C#编写无服务器函数教程

煙雲

煙雲

发布时间:2025-12-31 11:22:37

|

837人浏览过

|

来源于php中文网

原创

在 azure 上用 c# 创建无服务器函数需选用 .net 6+ 隔离模型,通过触发器(如 http)、绑定(如 blob)和生命周期管理实现免运维集成,本地开发后一键部署至 function app 并自动集成 application insights。

c#如何创建azure functions c#编写无服务器函数教程

在 Azure 上用 C# 创建无服务器函数,核心是使用 Azure Functions SDK(基于 .NET 6/7/8 的隔离模型或经典的进程内模型),配合 Visual Studio 或 VS Code 开发,再部署到 Azure。关键不在于“写代码”,而在于理解触发器、绑定和生命周期——这些决定了函数怎么被调用、数据怎么进出。

选择正确的项目模板和运行模型

Azure Functions 支持两种主流 .NET 模型:

  • 隔离进程模型(.NET Isolated):推荐用于新项目,.NET 6+,独立于宿主进程运行,支持完整 .NET API,配置更直观,通过 FunctionApp 项目模板创建;
  • 进程内模型(In-process):仅限 .NET Framework 或 .NET Core 3.1/.NET 5(已过时),与 Functions 主机共享进程,性能略高但限制多,不建议新项目使用。

在 VS Code 中安装 Azure Functions 扩展后,运行 func init 并选择 .NET Isolated;在 Visual Studio 中新建项目时选 Azure Functions 模板,并确认目标框架为 .NET 6 或更高版本。

编写一个 HTTP 触发的函数

以最常用的 HTTP 函数为例,创建后默认会生成类似下面的代码:

public static class HttpExample
{
    [Function("HttpExample")]
    public static HttpResponseData Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req,
        FunctionContext executionContext)
    {
        var logger = executionContext.GetLogger("HttpExample");
        logger.LogInformation("C# HTTP trigger function processed a request.");
<pre class='brush:php;toolbar:false;'>    var response = req.CreateResponse(HttpStatusCode.OK);
    response.Headers.Add("Content-Type", "text/plain; charset=utf-8");
    response.WriteString("Hello from Azure Functions with .NET Isolated!");
    return response;
}

}

拍我AI
拍我AI

AI视频生成平台PixVerse的国内版本

下载

注意点:

  • 必须用 [Function("Name")] 特性标记方法,名称将作为函数路由的一部分;
  • HttpRequestDataHttpResponseData 是隔离模型专用类型,不是传统的 HttpRequest/HttpResponse
  • 日志通过 FunctionContext.GetLogger() 获取,自动集成 Application Insights;
  • 本地调试直接按 F5,函数会启动本地 host,URL 类似 http://localhost:7071/api/HttpExample

添加输入/输出绑定(比如读写 Blob 或队列)

无服务器的关键优势是免运维集成。例如,让函数自动处理上传到 Blob Storage 的图片:

  • 在方法参数中添加 [BlobInput("sample-images/{name}", Connection = "StorageConnectionString")] BinaryData blob,即可自动加载指定路径的文件;
  • [BlobOutput("processed-images/{rand-guid}.jpg", Connection = "StorageConnectionString")] out byte[] output 写入结果;
  • 连接字符串需在 local.settings.json(本地)或 Azure Function App 的 配置 → 应用设置 中定义,键名为 StorageConnectionString
  • 绑定支持多种服务:Service Bus、Event Hubs、Cosmos DB、SQL(预览)、SendGrid 等,只需 NuGet 引入对应扩展包(如 Microsoft.Azure.Functions.Worker.Extensions.Storage)。

部署到 Azure 并验证

部署本质是把编译后的函数应用发布到 Azure Function App 实例:

  • 确保已登录 Azure CLI(az login)或在 VS/VS Code 中配置好账户;
  • 右键项目 → Publish → 选择 Azure Function App (Windows/Linux) → 新建或选择已有实例;
  • 部署成功后,访问 https://<your-app-name>.azurewebsites.net/api/<function-name></function-name></your-app-name> 即可调用(HTTP 函数需注意认证级别,AuthorizationLevel.Function 需带 ?code=xxx 查询参数,密钥可在 Azure 门户的函数详情页获取);
  • 所有日志自动流向 Application Insights,可在门户中实时查看执行时间、失败原因、依赖调用等。

基本上就这些。不需要管理服务器、扩缩容或补丁更新——你只关注业务逻辑,Azure 负责其余一切。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

1133

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

340

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

381

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

2152

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

380

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

1683

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

585

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

440

2024.04.29

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

3

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.5万人学习

Git 教程
Git 教程

共21课时 | 4.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号