快速入门:使用 Visual Studio Code 创建函数代码并将其部署到 Azure

使用 Visual Studio Code 创建响应来自模板的 HTTP 请求的函数。 使用 GitHub Copilot 改进生成的函数代码,在本地验证代码更新,然后将其部署到 Azure Functions 中的无服务器 Flex Consumption 托管计划。

完成本快速入门时会从你的 Azure 帐户中扣取小额费用,大约几美分或者更少。

请确保选择文章顶部的首选开发语言。

先决条件

  • Node.js 18.x 或更高版本。 使用node --version命令检查您的版本。

安装或更新 Core Tools

用于 Visual Studio Code 的 Azure Functions 扩展与 Azure Functions Core Tools 集成,以便可以使用 Azure Functions 运行时在本地运行和调试 Visual Studio Code 中的函数。 在说明之前,最好在本地安装 Core Tools,或更新现有安装以使用最新版本。

在 Visual Studio Code 中,选择 F1 以打开命令面板,然后搜索并运行 Azure Functions 命令:安装或更新 Core Tools

此命令将启动最新版本的 Core Tools 的基于包的安装。

创建本地项目

在本部分中,将使用 Visual Studio Code 以首选语言创建本地 Azure Functions 项目。 稍后,您将更新、运行代码函数,并将其发布到 Azure。

  1. 在 Visual Studio Code 中,按 F1 打开命令面板并搜索并运行命令 Azure Functions: Create New Project...

  2. 选择项目工作区的目录位置,然后选择 “选择”。 应创建新文件夹或为项目工作区选择空文件夹。 不要选择已是工作区一部分的项目文件夹。

  3. 根据提示提供以下信息:

    Prompt 选择
    选择语言 选择 C#
    选择 .NET 运行时 选择 .NET 8.0 LTS
    为项目的第一个函数选择模板 选择 HTTP trigger
    提供函数名称 键入 HttpExample
    提供命名空间 键入 My.Functions
    授权级别 选择 Anonymous,允许任何人调用函数终结点。 有关详细信息,请参阅授权级别
    选择要打开项目的方式 选择 Open in current window
    Prompt 选择
    选择语言 选择 Java
    选择 Java 版本 选择Java 8Java 11Java 17Java 21用于在 Azure 中运行函数的 Java 版本。 选择已在本地验证的 Java 版本。
    提供组 ID 选择 com.function
    提供项目 ID 选择 myFunction
    提供版本 选择 1.0-SNAPSHOT
    提供包名称 选择 com.function
    提供应用名称 选择 myFunction-12345
    为项目的第一个函数选择模板 选择 HTTP trigger
    选择 Java 项目的生成工具 选择 Maven
    选择要打开项目的方式 选择 Open in current window
    Prompt 选择
    选择语言 选择 JavaScript
    选择 JavaScript 编程模型 选择 Model V4
    为项目的第一个函数选择模板 选择 HTTP trigger
    提供函数名称 键入 HttpExample
    授权级别 选择 Anonymous,允许任何人调用函数终结点。 有关详细信息,请参阅授权级别
    选择要打开项目的方式 选择 Open in current window
    Prompt 选择
    选择语言 选择 TypeScript
    选择 JavaScript 编程模型 选择 Model V4
    为项目的第一个函数选择模板 选择 HTTP trigger
    提供函数名称 键入 HttpExample
    授权级别 选择 Anonymous,允许任何人调用函数终结点。 有关详细信息,请参阅授权级别
    选择要打开项目的方式 选择 Open in current window
    Prompt 选择
    选择语言 选择 Python
    选择 Python 解释器以创建虚拟环境 选择首选 Python 解释器。 如果未显示某个选项,请键入 Python 二进制文件的完整路径。
    为项目的第一个函数选择模板 选择 HTTP trigger
    要创建的函数的名称 输入 HttpExample
    授权级别 选择 ANONYMOUS,允许任何人调用函数终结点。 有关详细信息,请参阅授权级别
    选择要打开项目的方式 选择 Open in current window
    Prompt 选择
    为函数项目选择语言 选择 PowerShell
    为项目的第一个函数选择模板 选择 HTTP trigger
    提供函数名称 键入 HttpExample
    授权级别 选择 Anonymous,允许任何人调用函数终结点。 有关详细信息,请参阅授权级别
    选择要打开项目的方式 选择 Open in current window

    使用此信息,Visual Studio Code 使用 HTTP 触发器函数终结点为 Azure Functions 生成代码项目。 可以在资源管理器中查看本地项目文件。 若要了解有关创建的文件的详细信息,请参阅 生成的项目文件

  1. 在 local.settings.json 文件中,更新设置 AzureWebJobsStorage ,如以下示例所示:

    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    

    这会告知本地 Functions 主机使用存储仿真器来满足 Python v2 模型所需的存储连接。 将项目发布到 Azure 时,此设置将改用默认存储帐户。 如果在本地开发期间使用 Azure 存储帐户,请在此处设置存储帐户连接字符串。

启动模拟器

  1. 在 Visual Studio Code 中,按 F1 打开命令面板。 在命令面板中,搜索并选择 Azurite: Start

  2. 检查底部栏并验证 Azurite 仿真服务是否正在运行。 如果是这样,现在可以在本地运行函数。

在本地运行函数

Visual Studio Code 与 Azure Functions Core Tools 相集成,便于你在发布到 Azure 之前在本地开发计算机上运行此项目。

  1. 若要在本地启动函数,请按 F5 或左侧活动栏中的 “运行和调试 ”图标。 终端面板显示核心工具的输出。 应用将在“终端”面板中启动。 可以看到 HTTP 触发函数的 URL 终结点在本地运行。

    本地函数 VS Code 输出的屏幕截图。

    如果在 Windows 上运行时遇到问题,请确保用于 Visual Studio Code 的默认终端未设置为“WSL Bash”

  2. 如果 Core Tools 仍在 终端中运行,请选择活动栏中的 Azure 图标。 在 工作区 区域中,展开 “本地项目>函数”。 右键单击(Windows)或 Ctrl - 单击(macOS)新函数,然后选择“ 立即执行函数...”

    立即从 Visual Studio Code 执行函数

  3. 在“输入请求正文”中,你将看到请求消息正文值 { "name": "Azure" }。 按 Enter 将此请求消息发送给函数。

  4. 当函数在本地执行并返回响应时,Visual Studio Code 中将引发通知。 有关函数执行的信息显示在 终端 面板中。

  5. 终端 面板聚焦后,按 Ctrl + C 停止核心工具并断开调试器的连接。

在本地计算机上验证函数是否正常运行后,可以选择使用 Visual Studio Code 中的 GitHub Copilot 等 AI 工具来更新模板生成的函数代码。

使用 AI 规范化和验证输入

这是 Copilot Chat 的示例提示,用于更新现有函数代码以从查询字符串或 JSON 正文检索参数、应用格式或类型转换,并在响应中将其作为 JSON 返回:

Modify the function to accept name, email, and age from the JSON body of the
request. If any of these parameters are missing from the query string, read
them from the JSON body. Return all three parameters in the JSON response, 
applying these rules:
Title-case the name
Lowercase the email
Convert age to an integer if possible, otherwise return "not provided"
Use sensible defaults if any parameter is missing
Modify the function to accept name, email, and age from the JSON body of the
request. If any of these parameters are missing from the query string, read
them from the JSON body. Return all three parameters in the JSON response, 
applying these rules:
Title-case the name
Lowercase the email
Convert age to an integer if possible, otherwise return "not provided"
Use sensible defaults if any parameter is missing
Update the FunctionTest.java file to test the new logic. 

可以自定义提示以根据需要添加具体内容,然后在本地再次运行应用,并在代码更改后验证它是否按预期工作。 这一次,请使用如下消息正文:

{ "name": "devon torres", "email": "torres.devon@contoso.com", "age": "34" }

小窍门

GitHub Copilot 由 AI 提供支持,因此可能会带来意外和错误。 如果在执行过程中遇到任何错误,请将错误消息粘贴到聊天窗口中,选择 代理 模式,并要求 Copilot 帮助解决错误。 有关详细信息,请参阅 Copilot 常见问题解答

当您对应用程序感到满意时,您可以使用 Visual Studio Code 直接将项目发布到 Azure。

登录到 Azure

在发布应用之前,必须登录到 Azure。

  1. 如果尚未登录,请选择活动栏中的 Azure 图标。 然后在 “资源 ”区域中,选择“ 登录到 Azure...”

    VS Code 中登录 Azure 窗口的屏幕截图。

    如果已登录并可以看到现有订阅,请转到下一部分。 如果还没有 Azure 帐户,请选择“ 创建 Azure 帐户...”。学生可以选择 “为学生帐户创建 Azure...”

  2. 在浏览器中出现提示时,选择 Azure 帐户并使用 Azure 帐户凭据登录。 如果创建新帐户,可以在创建帐户后登录。

  3. 成功登录后,可以关闭新的浏览器窗口。 属于 Azure 帐户的订阅显示在边栏中。

在 Azure 中创建函数应用

在本部分中,将在 Azure 订阅中创建函数应用和相关资源。

  1. 在活动栏中选择 Azure 图标。 然后在 “资源 ”区域中,选择 + 图标,然后选择 Azure 中的“创建函数应用 ”选项。

    在 Azure 订阅中创建资源

  2. 根据提示提供以下信息:

    Prompt 选择
    选择订阅 选择要使用的订阅。 如果 资源下只有一个订阅可见,则不会看到此提示。
    输入函数应用的全局唯一名称 请键入一个可以在 URL 路径中使用的有效名称。 将验证你键入的名称,以确保它在 Azure Functions 中是唯一的。
    选择运行时堆栈 选择您本地运行的语言版本。
    选择新资源的位置 为了获得更好的性能,请选择你附近的 区域

    该扩展在 Azure 中显示单个资源创建时的状态于 Azure:活动日志 面板。

    Azure 资源创建日志

  3. 创建完成后,订阅中会创建以下 Azure 资源。 资源基于函数应用名称进行命名:

    • 一个资源组:相关资源的逻辑容器。
    • 标准 Azure 存储帐户,用于维护有关项目的状态和其他信息。
    • 一个函数应用:提供用于执行函数代码的环境。 函数应用允许将函数分组为逻辑单元,以便更轻松地管理、部署和共享同一托管计划中的资源。
    • 应用服务计划,用于定义函数应用的基础主机。
    • 连接到函数应用的 Application Insights 实例,该实例跟踪应用中函数的使用情况。

    创建函数应用并应用部署包后会显示通知。

    小窍门

    默认情况下,函数应用所需的 Azure 资源是根据你提供的函数应用名称创建的。 默认情况下,它们也会在函数应用所在的同一新资源组中创建。 如果要自定义这些资源的名称或重复使用现有资源,则需要改为 使用高级创建选项发布项目

将项目部署到 Azure

重要

部署到现有函数应用程序时,总是会覆盖该应用程序在 Azure 中的所有内容。

  1. 选择活动栏中的 Azure 图标,然后在 工作区 区域中,选择项目文件夹,然后选择“ 部署...” 按钮。

    从 Visual Studio Code 工作区部署项目

  2. 选择“ 部署到 Function App...”,选择刚刚创建的函数应用,然后选择“ 部署”。

  3. 部署完成后,选择“ 查看输出” 以查看创建和部署结果,包括创建的 Azure 资源。 如果错过通知,请选择右下角的钟形图标,再次看到它。

    “视图输出”窗口的屏幕截图。

在 Azure 中运行函数

  1. F1 显示命令面板,然后搜索并运行命令 Azure Functions:Execute Function Now...。 如果系统提示,请选择订阅。

  2. 选择新的函数应用资源并选择 HttpExample 作为函数。

  3. Enter 请求正文 类型 { "name": "Contoso", "email": "me@contoso.com", "age": "34" }中,按 Enter 将此请求消息发送到函数。

  4. 当函数在 Azure 中执行时,响应将显示在通知区域中。 展开通知以查看完整响应。

Troubleshooting

使用下表解决使用本文时遇到的最常见问题。

问题 解决方案
无法创建本地函数项目? 确保已安装 Azure Functions 扩展
无法在本地运行函数? 确保已安装最新版本的 Azure Functions Core Tools
在 Windows 上运行时,请确保 Visual Studio Code 的默认终端 shell 未设置为 WSL Bash。
无法将函数部署到 Azure? 查看输出以获取错误信息。 右下角的钟形图标是查看输出的另一种方法。 是否发布到现有函数应用? 该操作将覆盖 Azure 中该应用程序的内容。
无法运行云端函数应用程序? 请记住使用查询字符串传递参数。

清理资源

继续进行 下一步 并将 Azure Storage 队列绑定添加到您的函数时,您需要保留所有资源,以便在已完成的工作的基础上进行构建。

否则,可以使用以下步骤删除函数应用及其相关资源,以避免产生任何进一步的成本。

  1. 在 Visual Studio Code 中,选择 Azure 图标以打开 Azure 资源管理器。
  2. 在“资源组”部分中,找到资源组。
  3. 右键单击资源组,然后选择“ 删除”。

若要详细了解 Functions 成本,请参阅 估算消耗计划成本

后续步骤

你使用了 Visual Studio Code 创建了一个具有简单 HTTP 触发器的函数应用。 在下一篇文章中,通过连接到 Azure Cosmos DB 或 Azure 存储来扩展该函数。 若要详细了解如何连接到其他 Azure 服务,请参阅 将绑定添加到 Azure Functions 中的现有函数。 若要了解有关安全性的详细信息,请参阅 保护 Azure Functions