Azure Functions本地运行时和工具参考

本文提供了本地运行时和支持 Azure Functions 工具的参考文档。 使用这些工具从本地电脑开发、管理和运行 Azure Functions 项目。 二进制名称为func(或Windows上的func.exe)。

CLI 有两个版本。 使用版本选择器选择观看哪个版本。

重要

Azure Functions CLI(v5)目前处于预览阶段。 该预览版尚未支持 Java 和 PowerShell。 要处理目前未受支持的语言,请继续使用Azure Functions Core Tools v4

有两个版本的 func.exe 可用于本地开发 Azure Functions:

v4 v5
API 名称 Azure Functions Core Tools Azure Functions CLI
支持级别 正式发布(GA) 预览
安装占用空间 包含所有本机语言的所有命令和功能的完整二进制文件。 精简的基础安装,以及按语言提供的工作负载和其他可按需添加的功能。 主机作为独立工作负载发布,所以你无需重新下载 CLI 就能获得最新的主机版本。
在以下情况下使用... 你需要为所有开发工作流提供全面的 GA 支持。 你需要一个轻量级、基于工作负载的体验,并配备新功能,比如快速启动模板和配置文件,让你的本地环境与你的 Azure 托管计划配置保持同步。

若要了解有关使用 Core Tools 的详细信息,请参阅 Work with Azure Functions Core Tools

Core Tools 命令归纳为以下上下文,每个上下文提供一组独特的操作。

命令上下文 说明
func 用于在本地计算机上创建和运行函数的命令。
func azure 用于处理Azure资源的命令,包括发布。
func azurecontainerapps 用于将容器化函数应用部署到Azure 容器应用的命令。
func bundles 用于管理扩展捆绑包的命令。
func durable 用于Durable Functions的命令。
func extensions 用于安装和管理扩展的命令。
func kubernetes 用于 Kubernetes 和Azure Functions的命令。
func settings 用于管理本地 Functions 主机的环境设置的命令。
func templates 用于列出可用函数模板的命令。

在使用本文中的命令之前, 请安装 Core Tools

重要

Azure Functions CLI(v5)目前处于预览阶段。 该预览版尚未支持 Java 和 PowerShell。 要处理目前未受支持的语言,请继续使用Azure Functions Core Tools v4

如需了解更多关于使用CLI的信息,包括安装和工作负载,请参见Develop,Azure Functions本地使用Azure Functions CLI

以下内置命令随基础CLI安装一同发布:

命令 说明
func init 初始化新的Azure Functions项目。
func new 从模板创建一个新函数。
func run Launch the Azure Functions host runtime in locally. func start 是一个向下兼容的别名。
func quickstart 浏览并搭建快速入门模板目录中的完整功能应用。
func profile Inspect and management Azure Functions CLI profiles.
func setup Prepare local Azure Functions CLI dependencies (host runtime, language workers, extension bundles).
func workload 管理已安装的CLI工作负载。

工作负载可能会贡献额外的顶层命令。 这些命令只有在你安装了相关工作负载后才会出现。

func init

使用特定语言创建新的 Functions project。

func init [<PROJECT_FOLDER>]

当你输入 <PROJECT_FOLDER>时,命令会在一个名为该名字的新文件夹中创建项目。 否则,它会使用当前的文件夹。

func init 命令支持以下选项,具体取决于版本:

选项 说明
--bundles-channel-c 扩展捆绑包发布通道。 支持的值包括: GA (默认值) PreviewExperimental。 仅适用于非.NET项目。
--configuration-profile 使用主机配置文件初始化项目。 该 --configuration-profile 选项目前处于预览状态。 有关详细信息,请参阅 配置文件
--csx 创建 .NET 函数,作为 C# 脚本 。 仅对 --worker-runtime dotnet 有效。
--docker 通过基于所选 --worker-runtime的基础镜像为容器创建 Dockerfile 。 计划部署容器化函数应用时,请使用此选项。
--docker-only 将 Dockerfile 添加到现有project。 如果未在 local.settings.json中指定或设置,则提示输入辅助角色运行时。 如果计划部署容器化函数应用并已存在project,请使用此选项。
--force 即使项目中已有已有文件,也会初始化项目。 此设置会覆盖同名的现有文件。 project 文件夹中的其他文件不会受到影响。
--language-l 初始化特定于语言的project。 当前在设置为 /> 时受支持。 选项包括 typescriptjavascript。 你也可使用 --worker-runtime javascript--worker-runtime typescript
--managed-dependencies 安装托管的依赖项。 目前,只有 PowerShell 辅助角色运行时支持此功能。
--model-m 当有多个模型可用时,设置目标语言的编程模型。 支持的选项为 Python 的 V1V2V3V4 用于 Node.js。 有关详细信息,请参阅 Python 开发人员指南Node.js 开发人员指南
--no-bundle 请勿在 host.json中配置扩展捆绑包。 仅适用于非.NET项目。
--no-docs 跳过生成“入门”文档文件。 适用于Python项目。
--skip-npm-install 在创建项目后跳过运行 npm install 。 适用于 Node.js 项目。
--source-control 控制是否创建 Git 存储库。 默认不会创建存储库。 如果为 true,则会创建存储库。
--worker-runtime 设置project的语言运行时。 支持的值为:csharp、、、dotnetdotnet-isolatedjavascriptnode JavaScript powershellpythontypescript。 对于 Java,请使用 Maven。 若要仅使用project文件生成与语言无关的project,请使用 custom。 如果未设置,则初始化期间系统会提示你选择运行时。
--target-framework 设置函数应用project的目标框架。 仅对 --worker-runtime dotnet-isolated 有效。 支持的值包括:net10.0(预览)、net9.0net8.0(默认值)、net6.0net48(.NET Framework 4.8)。

注意

使用 --docker--docker-only 选项时,Core Tools 会自动为 C#、JavaScript、Python 和 PowerShell 函数创建 Dockerfile。 对于 Java 函数,你必须手动创建 Dockerfile。 有关详细信息,请参阅创建容器化函数应用

配置文件

重要

对配置文件的支持目前为预览版。

使用该 --configuration-profile 选项时,你会创建一套预定义的项目配置和设置。 指定配置文件时,初始化可能会跳过所有其他初始化步骤。

配置文件值 说明 特定操作
mcp-custom-handler 创建一个项目,该项目使用 自定义处理程序 来托管 AI 代理和其他 MCP 客户端可以连接到的 MCP(模型上下文协议) 服务器。 • 使用特定的自定义处理程序设置配置 "configurationProfile": "mcp-custom-handler"host.json 文件中的元素。
• 设置为 MCP_EXTENSION_ENABLEDtruelocal.settings.json
func init [<PATH>] [options]

当你提供 <PATH>时,项目会在该文件夹中创建。 否则,将使用当前文件夹。

func init 命令支持以下内置选项:

选项 说明
--stack-s 要用于项目的堆栈(例如, pythonnodedotnet)。 跑去 func workload list 看看你安装工作负载贡献的堆栈。
--name-n 功能应用项目的名称。
--language-l 编程语言(例如,C#F#JavaScriptTypeScriptPython)。 当一个堆栈支持多种语言时使用。 支持值是从已安装的栈工作负载中计算出来的。
--force 即使目标文件夹不是空的,也要重新初始化。 在搭建脚手架前清除文件夹(除了 .git)。

工作负载贡献了额外的选项,这些选项在工作负载名称下被分组。func init --help 请参见工作负载 特定选项 ,了解每栈的选项。

如果没有工作负载提供请求的栈,CLI会打印指向的 func workload install 提示,并以非零的退出码退出。

工作负载特定的选项

当你安装一个或多个工作负载时,命令 init 会展开:

选项 说明
--target-framework-tfm 目标 .NET项目框架(例如,net10.0)。 默认值:net10.0

.NET初始化器不写扩展包块,因此--no-bundles--bundles-channel不适用。

当多个已安装工作负载贡献同一选项时,该选项只出现在 func init --help中。

共享选项

目前,共享选项为 --no-bundles--bundles-channel。 你写入的默认扩展包 ID 取决于所选信道 host.json

Channel 包 ID
GA(默认值) Microsoft.Azure.Functions.ExtensionBundle
Preview Microsoft.Azure.Functions.ExtensionBundle.Preview
Experimental Microsoft.Azure.Functions.ExtensionBundle.Experimental

默认版本范围为 [4.*, 5.0.0)

func new

基于模板在当前project中创建一个新函数。

func new

func new 命令支持以下选项,具体取决于版本:

选项 说明
--authlevel-a 设置 HTTP 触发器的授权级别。 支持的值为:functionanonymousadmin。 在本地运行时,不会强制实施授权。 有关详细信息,请参阅授权级别
--csx 生成与版本1和门户中使用相同的C#脚本(.csx)模板。
--file-f 新函数的目标文件。 对于 Python v2 项目,指定要将函数添加到的文件(默认为 function_app.py)。 对于 Node.js v4 项目,指定文件夹中的 src/functions 输出文件名。 不适用于已编译.NET项目。
--name-n 函数名称。
--template-t 使用 func templates list 命令查看每种受支持语言的可用模板的完整列表。

有关详细信息,请参阅创建函数

func new [<PATH>] [options]

重要

func new 目前为预览小作品。 它会打印一个工作负载安装提示,并以非零的退出码退出,直到模板工作负载安装并接线完成。 模板专用选项是从模板元数据动态调节的,因此添加新模板选项不需要CLI发布。

func new 命令支持以下内置选项:

选项 说明
--name-n 函数名称。
--template-t 函数模板名称。 可用的模板来自项目堆栈的已安装 <stack>-templates 工作负载。
--force 覆盖现有文件。

所选模板动态贡献了额外的选项。 跑 func new --template <name> --help 去看看某个特定模板的选项。

如果当前项目没有安装模板工作负载,CLI会打印指向 func workload install的提示。

func logs

获取在 Kubernetes 群集中运行的函数的日志。

func logs --platform kubernetes --name <APP_NAME>

func logs 命令支持以下选项:

选项 说明
--platform 函数应用的托管平台。 有效选项: kubernetes.
--name Azure中的函数应用名称。

有关详细信息,请参阅使用 KEDA 的 Kubernetes 上的 Azure Functions

func pack

创建一个部署包,其中包含处于可运行状态的project代码。 如果需要在 func azure functionapp publish 命令外部的本地计算机上手动为应用创建部署包,请使用此方法。 默认情况下, func pack 根据需要生成项目。

func pack [<FOLDER_PATH>]

默认情况下, func pack 打包当前目录,输出 .zip 文件的名称与项目的根文件夹相同。 在包含 func pack 项目文件的目录中运行。 如果需要在另一个目录中运行 func pack ,请设置为 <FOLDER_PATH> 项目根路径,例如 func pack ./myprojectroot。 如果特定 .zip 文件已存在,则首先将其删除,然后替换为更新的版本。

func pack 命令支持以下选项:

选项 说明
--output-o 设置创建部署 .zip 包文件的位置的路径。
--no-build 包装前不会生成Project。 对于 C# 应用,仅在已生成二进制文件时使用。 对于 Node.js 应用,同时 npm install 跳过并 npm run build 跳过。
--skip-install 打包基于 Node.js的函数应用时跳过运行 npm install 。 用于避免覆盖自定义 npm 模块。
--build-native-deps 使用与Azure中使用的环境匹配的映像在本地安装Python依赖项。 启用后,Core Tools 将启动 Docker 容器,在该容器内部生成应用,并创建一个 .zip 文件,其中还原 .python_packages了所有依赖项。 在 Windows 上运行此选项,以避免在 Azure 中部署到 Linux 时出现潜在的库问题。

func run (仅限第一版)

注意

该命令仅适用于Core Tools第1版,已被弃用。 对于版本4,直接使用 func start调用函数端点

直接调用函数,类似于通过Azure门户中的Test标签执行函数。

func run

func run 命令支持以下选项:

选项 说明
--content 传递给函数的内联内容。
--debug 运行函数前,将调试程序附加到主机进程。
--file 要用作内容的文件名。
--no-interactive 不提示输入,这适用于自动化方案。
--timeout 本地 Functions 主机准备就绪前的等待时间(以秒为单位)。

例如,若要调用 HTTP 触发的函数并传递内容正文,请运行以下命令:

func run MyHttpTrigger --content '{\"name\": \"Azure\"}'

func start

启动本地运行时主机,并在当前文件夹中加载函数project。

具体命令取决于运行时版本

func start

func start 命令支持以下选项:

选项 说明
--cert 包含私钥的 .pfx 文件的路径。 仅支持与 --useHttps 一起使用。
--cors 以逗号分隔的 CORS 来源列表,其中不包含空格。
--cors-credentials 允许使用 Cookie 和身份验证标头的跨域身份验证请求。
--dotnet-isolated-debug 设置为 true 时,将暂停.NET工作进程,直到调试程序从正在调试的.NET隔离project附加。
--enable-json-output 尽可能以 JSON 的形式发出控制台日志。
--enableAuth 启用具有授权要求的完整身份验证处理管道。
--functions 要加载的以空格分隔的函数列表。
--json-output-file 如果提供,则为使用时 --enable-json-output用于写入输出的文件的路径。
--language-worker 用于配置语言辅助角色的参数。 例如,可以通过提供 debug 端口和其他必需参数来为语言辅助角色启用调试。
--no-build 在运行之前不要生成当前project。 仅适用于.NET类项目。 默认值为 false
--password 密码或包含 .pfx 文件密码的文件。 只能与 --cert 配合使用。
--port-p 要侦听的本地端口。 默认值:7071。
--runtime 设置要启动的主机版本。 允许的值为: inproc6inproc8default (运行进程外主机)。
--timeout-t Functions 主机启动的超时时间(以秒为单位)。 默认值:20 秒。
--useHttps 绑定到 https://localhost:{port} ,而不是绑定到 http://localhost:{port} 。 默认情况下,此选项会在计算机上创建可信证书。
--user-log-level 设置用户日志的最低日志级别。 有效值为:Trace、、、DebugInformationWarningErrorCriticalNone。 此设置不会影响系统日志。 对于.NET独立项目,还可以使用 Program.cs 设置 builder.Logging.SetMinimumLevel(LogLevel.Debug) 中的最低级别,使此选项生效。

运行项目后, 验证各个函数终结点

func run

启动 Functions 主机运行时,并将项目加载到当前文件夹中。

func run [<PATH>] [options]

func start 保留为向下兼容的别名,并接受相同的参数和选项。

func run 命令支持以下选项:

选项 说明
--port-p 要侦听的本地端口。 默认值:7071
--cors 以逗号分隔的 CORS 来源列表,其中不包含空格。
--cors-credentials 允许使用Cookie和 Authentication 该头的跨源认证请求。
--functions 要加载的以空格分隔的函数列表。
--no-build 不要在运行前先建好项目。
--enable-auth 启用完整的身份验证处理流水线,包括授权要求。
--host-version-v 主机运行时版本(例如, 4.1049.0使用)。
--profile 在解析主机、工作者和捆绑版本时,应用Azure Functions配置文件。 请参阅 func profile
--offline 只使用本地安装的工作负载,跳过网络安装。
--output 输出模式: compact (交互式TUI)、 plain (CI / 非 TTY)或 json (程序化消费者和 AI 代理使用 NDJSON)。 默认是基于终端的自动检测。
--no-tui --output=plain 的别名。 禁用交互式TUI功能。
--log-file 将所有主机事件镜像到指定的日志文件。
--no-azurite 禁用托管的Azurite。 主机启动时不探测或启动本地模拟器。

项目运行时,直接调用函数端点以验证行为。

管理的蔚蓝石

当你的项目使用本地存储(例如),AzureWebJobsStorage=UseDevelopmentStorage=truefunc run会自动检查是否有运行中的Azurite模拟器,如果找不到就启动一个模拟器。 模拟器在退出时 func run 会停止。 通过 --no-azurite 以选择退出,自己管理Azurite。

输出模式

func run 根据终端自动选择输出模式:

条件 模式
交互终端(TTY) compact
非交互式标准输出、重定向输出或 CI 环境变量集 plain
明确 --output=json json

CLI从不自动 json选择 。 如果 compact 请求了但标准发布不是TTY,CLI会降级到 plain 并写一条一行通知给stderr。 该 json 模式输出换行分隔的 JSON(NDJSON),每行一个对象,a schema_version1

func quickstart

浏览和支架,完整功能应用,来自Azure Functions quickstart模板目录。 快速启动模板是完整的示例应用,如HTTP API、队列触发的工作程序或Durable Functions编排。 堆栈工作负载贡献了语言特定的解析器。 目录在命令调用时取用。

func quickstart [<PATH>] [options]

当你提供 <PATH>时,项目会在该文件夹中创建。 否则,将使用当前文件夹。

func quickstart 命令支持以下选项:

选项 说明
--stack-s 要使用的栈,例如 pythonnode、 或 dotnet
--language-l 编程语言。 支持的数值来自已安装的快速启动提供商。
--template-t 目录中的模板ID,例如 http-trigger-python-azd。 跳过所有互动提示。
--resource-r 按触发条件或绑定资源筛选,如 httptimerblobeventhubservicebuscosmossqlmcp或 。durable
--iac 按基础设施即代码类型过滤,如 bicepterraformnone
--search 模板名称和描述应用大小写不区分子字符串过滤器。
--fetch 目录取取策略: auto (默认), githttpauto 探测并 git 回退到HTTP。
--force 即使目标文件夹不是空的,也要做脚手架。 在搭建脚手架前清除文件夹(除了 .git)。

子命令:

子命令 说明
func quickstart list 列出目录中可用的模板。
func quickstart info 展示特定模板的详细信息。

func quickstart list

列出目录中可用的模板,可选过滤。

func quickstart list [options]
选项 说明
--stack-s 要使用的栈,例如 pythonnode、 或 dotnet
--language-l 编程语言。 支持的数值来自已安装的快速启动提供商。
--resource-r 按触发或绑定资源过滤。
--iac 按基础设施即代码类型过滤。
--search 大小写不区分子字符串,匹配ID、模板名称、资源类型、基础设施即代码类型和描述。
--json 输出机器可读的JSON,而不是表。

func quickstart info

显示特定模板的详细信息。

func quickstart info <ID> [options]

<ID> 是目录中的模板ID。 用 func quickstart list 来查找可用的身份证。

选项 说明
--json 输出机器可读的JSON,而不是格式化的输出。

func profile

Inspects and managements Azure Functions CLI profiles. 配置文件编码版本约束,如主机版本范围、扩展包版本范围和工作者版本范围。 它们还定义了来自其他档案的继承。 配置文件源包括项目本地()、.func/profiles/用户全局(~/.azure-functions/profiles/)和内置配置文件。 在启动主机时,使用 func run --profile <name> 选择适用哪些配置文件约束的选项。

func profile <subcommand>

子命令:

子命令 说明
func profile list 列出来自项目、用户和内置来源的配置文件。
func profile show 查看个人资料详情。
func profile set 为项目设置默认配置文件。

func profile list

列出项目、用户及内置来源的配置文件。 渲染一个包含名称、源代码、主机版本、扩展包和状态的表。

func profile list [<PATH>] [options]
选项 说明
--source 逗号分隔的来源列表包括: projectuserbuilt-in。 默认所有来源。
--json 输出机器可读的JSON,而不是表。

func profile show

显示单个配置文件的详细信息,要么是解析的(应用继承值)或原始的(按原定义,未扩展继承)。

func profile show <NAME> [<PATH>] [options]
选项 说明
--raw 展示未继承值的原始配置文件定义。

func profile set

通过将配置文件名写入项目 .func/config.json的 Functions 项目 来设置默认配置文件。 如果该配置文件还没有在项目的配置文件列表中,就添加它。

func profile set <NAME> [<PATH>]

func setup

准备本地机器以运行Azure Functions项目。 安装或验证你指定的栈的主机运行时、语言工作工具、扩展包和模板。 支持基于配置文件的版本约束、预发布选择、非交互式配置模式和仅检查模式。

func setup [<PATH>] [options]

--features 选择安装或验证的内容。 每个系统解决的功能和工作负载包括:

Feature 已安装工作负载
node hostbundlesnodenode-workernode-templates
python hostbundlespythonpython-workerpython-templates
go hostbundlesgogo-worker
dotnet hostdotnetdotnet-templates
runtime hostbundles
host host

--features 可重复且接受逗号分隔值,因此你可以在一次调用中组合功能(例如, func setup --features node,python)。 dotnet-isolated 被接受为 的 dotnet别名。

选项 说明
--features 需要安装或验证的组件。 可重复或逗号分离。 请参见上表,了解每个功能所安装的工作量。
--profile Azure Functions配置文件用于版本约束。 重复。 与 合并。--profiles
--profiles 用逗号分隔的 Azure Functions 配置文件列表用于版本约束。
--install-policy 安装策略: latest-compatible (默认)或 if-needed
--source 用于工作负载解决和安装的NuGet包源码。
--prerelease 从目录解析时允许预发布工作负载版本。 默认:工作负载预览时启用。
--non-interactive 不要主动征求意见。
--yes-y 回答设置提示的“是”。
--check 确认所选依赖是否已安装,无需更改。
--output 输出模式: plain (默认)或 json (NDJSON)。

func workload

管理为Azure Functions CLI安装的工作量。

func workload <subcommand>

子命令:

子命令 说明
func workload list 列出已安装工作负载。
func workload search 搜索工作负载目录。
func workload install 安装工作负载。
func workload update 安装好工作负载。
func workload uninstall 卸载一个工作负载。
func workload prune 移除并排不活跃的工作负载安装。

func workload list

列出已安装的工作负荷。 默认情况下,命令只显示每个工作负载的已加载版本(最高安装的 semver)。 用来 --all-versions 查看每一次并排安装。

func workload list [options]
选项 说明
--all-versions-a 列出每个工作负载的安装版本。 默认:仅加载版本。
--json 输出机器可读的JSON,而不是表。

在配置好的工作负载目录中搜索可用的工作负载包。

func workload search [<QUERY>] [options]

当你省略 <QUERY>时,命令会列出目录中的所有工作负载。

选项 说明
--source 目录来源网址用于搜索。 默认使用已配置的目录。
--prerelease 在结果中包含预发布版本。 默认:工作负载预览时启用。
--json 输出机器可读的JSON,而不是表。

func workload install

通过配置好的目录解析工作负载包的ID(或别名)并安装。

func workload install <ID> [options]

<ID> 可以是工作负载包ID、别名(例如) python或本地工作负载包文件的路径。

选项 说明
--version-v 具体安装版本。 默认:目录中最新的稳定版本。
--source 目录源 URL 或本地目录以解析。 默认:配置好的目录。
--prerelease 从目录中解析时允许预发布版本。 默认:工作负载预览时启用。
--force-f 覆盖一个相同ID和版本的现有安装。 还跳过了“改用更新”的提示。
--exact-e 禁用别名匹配。 <ID> 必须是字面上的包裹ID。

如果工作负载已经安装了某个版本,CLI会提示你改用 func workload update 。 非互动语境将提示视为拒绝。

func workload update

对已安装工作负载进行原地原子版本交换。 更新不是并排的;对于并排安装,请使用 func workload install --force

func workload update [<ID>] [options]

传递一个 <ID> 以更新单个工作负载,或者 --all 更新所有已安装工作负载。 请指定这两个选项中的一个。

选项 说明
--version-v 安装版本以替换。 默认:安装量最高的版本。
--all 更新所有已安装工作负载。 与 <ID> 互斥。
--major 允许跨越主要版本的边界。 默认:只选同一个专业。
--source 目录源 URL 或本地目录以解析。 默认:配置好的目录。
--prerelease 从目录中解析时允许预发布版本。 默认:工作负载预览时启用。
--exact-e 禁用别名匹配。 <ID> 必须是字面上的包裹ID。

func workload uninstall

移除一个或所有已安装的工作负载版本。

func workload uninstall <ID> [options]
选项 说明
--version-v 具体版本需要卸载。 默认:唯一安装的版本。
--all-versions-a 卸载所有已安装的工作负载版本。 与 --version 互斥。
--exact-e 禁用别名匹配。 <ID> 必须是字面上的包裹ID。

func workload prune

移除并排不活跃的工作负载安装。 对于每个范围内的软件包 ID,命令保留安装最高版本并卸载旧版本。 该命令仅限本地,且不触及目录。

func workload prune [<ID>] [options]

当你省略 <ID>时,命令会修剪所有已安装的工作负载。

选项 说明
--exact-e 禁用别名匹配。 <ID> 必须是字面上的包裹ID。

func azure functionapp

上下文 func azure functionapp 包含以下命令:

所有 func azure functionapp 命令都支持以下选项:

选项 说明
--slot 如果已配置,则面向特定的命名 部署槽位。
--access-token 提供访问令牌(默认令牌)用于在Azure中执行经过身份验证的操作。
--access-token-stdin 从标准输入读取特定访问令牌。 直接从上一个命令 az account get-access-token读取令牌时,请使用此选项。
--management-url 设置Azure云的管理 URL,默认为 https://management.chinacloudapi.cn。 当函数应用在主权云中运行时,请使用此选项。
--subscription 设置默认Azure订阅。

func azure functionapp fetch-app-settings

从特定函数应用获取设置。

func azure functionapp fetch-app-settings <APP_NAME> 

有关详细信息,请参阅下载应用程序设置

该命令会将项目的设置下载到 local.settings.json 文件中。 为了安全起见,将对屏幕上的值进行掩码处理。 你可以通过启用本地加密来保护 local.settings.json 文件中的设置。

func azure functionapp list-functions

列出指定函数应用中的函数。

func azure functionapp list-functions <APP_NAME>

func azure functionapp list-functions 命令支持此选项:

选项 说明
--show-keys 在返回的函数终结点 URL 中包含函数级访问键值。

func azure functionapp logstream

将本地命令提示符连接到Azure中函数应用的流式处理日志。

func azure functionapp logstream <APP_NAME>

连接的默认超时时间为 2 小时。 通过添加名为 SCM_LOGSTREAM_TIMEOUT 的应用设置(以秒为单位)来更改超时值。 在 消耗 计划中尚不支持 Linux。 对于这些应用,请使用 --browser 选项在门户中查看日志。

func azure functionapp logstream 命令支持此选项:

选项 说明
--browser 在默认浏览器中打开函数应用的 Azure 应用程序 Insights Live Stream。

有关详细信息,请参阅 Azure Functions 中启用流式处理执行日志。

func azure functionapp publish

将 Functions project部署到Azure中的现有函数应用资源。

func azure functionapp publish <APP_NAME>

有关详细信息,请参阅 Deploy project 文件

以下发布选项基于版本适用:

选项 说明
--additional-packages 构建本机依赖项时要安装的包列表。 例如:python3-dev libevent-dev
--build-b 部署到 Linux 函数应用时执行生成操作。 接受:remotelocal
--build-native-deps 发布Python函数应用时,跳过生成 .wheels 文件夹。
--csx 发布 C# 脚本 (.csx) project。
--dotnet-cli-params 发布编译的 C# (.csproj) 函数时,核心工具调用 dotnet build --output bin/publish。 传递给此选项的任何参数将追加到命令行。
--dotnet-version 对于 dotnet-isolated 应用程序,指定目标.NET版本(例如,8.0)。
--force 在某些情况下忽略预发布验证。
--list-ignored-files 根据 .funcignore 文件显示发布过程中忽略的文件列表。
--list-included-files 显示已发布的文件列表,该文件基于 .funcignore 文件。
--no-build 发布期间不会生成Project。 对于 Python,pip install不会运行。
--nozip 关闭默认的 Run-From-Package 模式。 将文件提取到 wwwroot 服务器上的文件夹,而不是直接从部署包运行这些文件。
--overwrite-settings-y 禁止在使用 --publish-local-settings -i时覆盖应用设置的提示。
--publish-local-settings-i 将 local.settings.json 中的设置发布到Azure,提示覆盖设置(如果已存在)。 如果使用 local storage 模拟器,请先将应用设置更改为 actual storage 连接
--publish-settings-only-o 仅发布设置并跳过内容。 默认为提示。
--show-keys 将函数键添加到日志中显示的 URL。

func azure storage fetch-connection-string

获取指定Azure 存储帐户的连接字符串。

func azure storage fetch-connection-string <STORAGE_ACCOUNT_NAME>

有关详细信息,请参阅 download a storage 连接字符串

func azurecontainerapps deploy

将容器化函数应用部署到Azure 容器应用环境。 默认的主机存储账户、功能应用和环境必须已经存在。

func azurecontainerapps deploy --name <APP_NAME> --environment <ENVIRONMENT_NAME> --storage-account <STORAGE_CONNECTION> --resource-group <RESOURCE_GROUP> --image-name <IMAGE_NAME> --registry-server <REGISTRY_SERVER> --registry-username <USERNAME> --registry-password <PASSWORD>

以下部署选项适用:

选项 说明
--environment 现有容器应用环境的名称。
--image-build true设置为跳过本地 Docker 生成。
--image-name 容器注册表中现有容器映像的名称,包括标记名称。
--location 用于部署的区域。 理想情况下,此区域与环境和存储帐户资源相同。
--name 用于容器应用环境中函数应用部署的名称。 在门户中管理函数应用时,也会显示此名称。 该名称在环境中必须是唯一的。
--registry 设置后,将运行 Docker 生成,并将映像推送到注册表集中 --registry。 不能将 --registry--image-name 一起使用。 对于Docker Hub,也可以使用 --registry-username
--registry-password 用于从专用注册表检索映像的密码或令牌。
--registry-username 用于从专用注册表检索映像的用户名。
--resource-group 要在其中创建与函数相关的资源的资源组。
--storage-account 函数应用要使用的storage帐户的连接字符串。
--worker-runtime 设置函数应用的运行时语言。 此参数仅用于和 --image-name--image-build;否则,在本地生成期间确定语言。 支持的值包括:dotnet、、dotnetIsolatednodepython、和 powershellcustom (对于自定义处理程序)。

重要

Storage连接字符串和其他服务凭据是重要的机密。 安全地存储使用 func azurecontainerapps deploy 的任何脚本文件,并且不会将其存储在任何可公开访问的源代码管理中。

func deploy

func deploy 命令已弃用。 请改用 func kubernetes deploy

func bundles add

将扩展捆绑包配置添加到 host.json 文件。

func bundles add

func bundles add 命令支持以下选项:

选项 说明
--force-f 覆盖现有的扩展捆绑包配置(如果存在)。
--channel-c 扩展捆绑包发布通道。 支持的值包括: GA (默认值) PreviewExperimental

func bundles download

下载 在host.json中配置的扩展捆绑包。

func bundles download

func bundles download 命令支持以下选项:

选项 说明
--force-f 强制重新加载扩展捆绑包(即使它已存在)。

func bundles list

列出下载的扩展捆绑包。

func bundles list

func bundles path

获取下载的扩展捆绑包的路径。

func bundles path

func durable delete-task-hub

删除Durable Functions任务中心中的所有storage artifacts。

func durable delete-task-hub

func durable delete-task-hub 命令支持以下选项:

选项 说明
--connection-string-setting 包含要使用的存储连接字符串的设置的名称。
--task-hub-name 要使用的 Durable 任务中心的名称。

有关详细信息,请参阅 Durable Functions 文档

func durable get-history

返回指定业务流程实例的历史记录。

func durable get-history --id <INSTANCE_ID>

func durable get-history 命令支持以下选项:

选项 说明
--id 业务流程实例的 ID。 (必需)
--connection-string-setting 具有要使用的存储连接字符串的设置的名称。
--task-hub-name 要使用的 Durable 任务中心的名称。

有关详细信息,请参阅 Durable Functions 文档

func durable get-instances

返回所有业务流程实例的状态。 该命令通过参数 top 支持分页。

func durable get-instances

func durable get-instances 命令支持以下选项:

选项 说明
--continuation-token 指示要返回的请求的特定页面或部分的令牌。
--connection-string-setting 包含要使用的存储连接字符串的应用设置的名称。
--created-after 获取在此日期和时间之后创建的实例(UTC)。 接受所有 ISO 8601 格式的日期时间。
--created-before 获取在特定日期和时间(UTC)之前创建的实例。 接受所有 ISO 8601 格式的日期时间。
--runtime-status 获取其状态与特定状态(包括 runningcompletedfailed)匹配的实例。 可以提供一个或多个空格分隔的状态。
--top 限制给定请求中返回的记录数。
--task-hub-name 要使用的Durable Functions任务中心的名称。

有关详细信息,请参阅 Durable Functions 文档

func durable get-runtime-status

返回指定业务流程实例的状态。

func durable get-runtime-status --id <INSTANCE_ID>

func durable get-runtime-status 命令支持以下选项:

选项 说明
--connection-string-setting 包含要使用的存储连接字符串的设置的名称。
--id 业务流程实例的 ID。 (必需)
--show-input 设置时,响应包括函数的输入。
--show-output 设置时,响应包括执行历史记录。
--task-hub-name 要使用的Durable Functions任务中心的名称。

有关详细信息,请参阅 Durable Functions 文档

func durable purge-history

清除早于指定阈值的业务流程的业务流程实例状态、历史记录和 Blob 存储。

func durable purge-history

func durable purge-history 命令支持以下选项:

选项 说明
--connection-string-setting 包含要使用的存储连接字符串的设置的名称。
--created-after 删除在此日期/时间(UTC)之后创建的实例的历史记录。 接受所有 ISO 8601 格式的日期时间值。
--created-before 删除在此日期/时间(UTC)之前创建的实例的历史记录。 接受所有 ISO 8601 格式的日期时间值。
--runtime-status 删除其状态与特定状态(包括completedterminatedcanceledfailed)匹配的实例的历史记录。 提供一个或多个空格分隔的状态。 如果不包括 --runtime-status,则无论状态如何,都会删除实例历史记录。
--task-hub-name 要使用的Durable Functions任务中心的名称。

有关详细信息,请参阅 Durable Functions 文档

func durable raise-event

向指定的业务流程实例引发事件。

func durable raise-event --event-name <EVENT_NAME> --event-data <DATA>

func durable raise-event 命令支持以下选项:

选项 说明
--connection-string-setting 包含要使用的存储连接字符串的设置的名称。
--event-data 要传入或传入 JSON 文件的事件的数据。 对于文件,请为文件的路径添加一个登录前缀(@例如 @path/to/file.json。 (必需)
--event-name 要引发的事件的名称。 (必需)
--id 业务流程实例的 ID。 (必需)
--task-hub-name 要使用的Durable Functions任务中心的名称。

有关详细信息,请参阅 Durable Functions 文档

func durable rewind

回退指定的业务流程实例。

func durable rewind --id <INSTANCE_ID> --reason <REASON>

func durable rewind 命令支持以下选项:

选项 说明
--connection-string-setting 包含要使用的存储连接字符串的设置的名称。
--id 业务流程实例的 ID。 (必需)
--reason 回退业务流程的原因。 (必需)
--task-hub-name 要使用的Durable Functions任务中心的名称。

有关详细信息,请参阅 Durable Functions 文档

func durable start-new

启动指定业务流程协调程序函数的新实例。

func durable start-new --id <INSTANCE_ID> --function-name <FUNCTION_NAME> --input <INPUT>

func durable start-new 命令支持以下选项:

选项 说明
--connection-string-setting 包含要使用的存储连接字符串的设置的名称。
--function-name 要启动的业务流程协调程序函数的名称。 (必需)
--id 指定业务流程实例的 ID。 (必需)
--input 内联或来自 JSON 文件的业务流程协调程序函数的输入。 对于文件,请使用与号(@@path/to/file.json)作为文件路径的前缀。 (必需)
--task-hub-name 要使用的Durable Functions任务中心的名称。

有关详细信息,请参阅 Durable Functions 文档

func durable terminate

结束指定的业务流程实例。

func durable terminate --id <INSTANCE_ID> --reason <REASON>

func durable terminate 命令支持以下选项:

选项 说明
--connection-string-setting 包含要使用的存储连接字符串的设置的名称。
--id 指定业务流程实例的 ID。 (必需)
--reason 结束业务流程的原因。 (必需)
--task-hub-name 要使用的Durable Functions任务中心的名称。

有关详细信息,请参阅 Durable Functions 文档

func extensions install

在非.NET项目或 C# 脚本项目中手动安装 Functions 扩展。

func extensions install --package Microsoft.Azure.WebJobs.Extensions.<EXTENSION> --version <VERSION>

func extensions install 命令支持以下选项:

选项 说明
--configPath-c 包含 extensions.csproj 文件的目录的路径。
--csx 支持 C# 脚本 (.csx) 项目。
--force-f 更新现有扩展的版本。
--output-o 扩展的输出路径。
--package-p 特定扩展包的标识符。 如果未指定,则与 func extensions sync 一样,安装所有引用的扩展。
--source-s 不使用 NuGet.org 时的 NuGet 馈送源。
--version-v 扩展包版本。

以下示例在本地project中安装事件中心扩展的版本 5.0.1:

func extensions install --package Microsoft.Azure.WebJobs.Extensions.EventHubs --version 5.0.1

使用 func extensions install以下注意事项时适用:

  • 对于已编译的 C# 项目(进程内和独立工作进程),请改用标准 NuGet 包安装方法,例如 dotnet add package

  • 若要使用 Core Tools 手动安装扩展,必须安装 .NET SDK

  • 如果可能,应改为使用扩展捆绑包。 下面是可能需要手动安装扩展的一些原因:

    • 需要访问捆绑包中不可用的扩展的特定版本。
    • 需要访问捆绑包中不可用的自定义扩展。
    • 需要访问单个捆绑包中不可用的特定扩展组合。
  • 必须先从extensionBundle 文件中删除对象,然后才能手动安装扩展。 在 host.json 文件中已设置扩展捆绑包时,不执行任何操作。

  • 首次显式安装扩展时,会将名为 extensions.csproj 的.NET项目文件添加到应用项目的根目录中。 此文件定义函数所需的 NuGet 包集。 虽然可以在此文件中使用 NuGet 包引用,但 Core Tools 允许你安装扩展,而无需手动编辑此 C# project文件。

func extensions sync

安装函数应用所需的所有扩展。

func extensions sync 命令支持以下选项:

选项 说明
--configPath-c 包含 extensions.csproj 该文件的目录路径。
--csx 支持 C# 脚本 (.csx) 项目。
--output-o 扩展的输出路径。

重新生成一个缺失 extensions.csproj 的文件。 当你的 host.json 文件中定义了扩展包时,它不会采取任何操作。

func kubernetes deploy

将 Functions project作为自定义 Docker 容器部署到 Kubernetes 群集。

func kubernetes deploy 

此命令将project生成为自定义容器并将其发布到 Kubernetes 群集。 自定义容器必须有一个 Dockerfile。 若要使用 Dockerfile 创建应用,请使用 --docker 选项和 func init 命令。

func kubernetes deploy 命令支持以下选项:

选项 说明
--dry-run 显示部署模板,但不执行。
--config-map-name 用于部署的 函数应用设置 的现有配置映射的名称。 需要 --use-config-map。 默认行为是基于 Values 文件中的对象创建设置
--cooldown-period 在部署缩减到零之前,所有触发器(以秒为单位)的冷却期(以秒为单位)不再处于活动状态,默认值为 300 秒。
--ignore-errors 在资源返回错误后继续部署。 默认行为是出错时停止。
--image-name 要用于 Pod 部署以及从中读取函数的映像的名称。
--keda-version 设置要安装的 KEDA 版本。 有效选项为:v1v2(默认)。
--keys-secret-name 用于存储 access 密钥的 Kubernetes 机密集合的名称。
--max-replicas 设置水平 Pod 自动缩放程序(HPA)缩放到的最大副本计数。
--min-replicas 设置 HPA 不会缩放的最小副本计数。
--mount-funckeys-as-containervolume 访问密钥 装载为容器卷。
--name 用于 Kubernetes 中的部署和其他artifacts的名称。
--namespace 设置要部署到的 Kubernetes 命名空间。 默认为默认命名空间。
--no-docker 从当前目录读取函数,而不是从映像读取函数。 需要装载映像文件系统。
--registry 设置后,Docker 生成将运行,并将映像推送到该名称的注册表。 不能将 --registry--image-name 一起使用。 对于 Docker,请使用你的用户名。
--polling-interval 检查非 HTTP 触发器的轮询间隔(以秒为单位),默认为 30 秒。
--pull-secret 用于access专用注册表凭据的机密。
--secret-name 现有 Kubernetes 机密集合的名称,该集合具有要用于部署的 函数应用设置 。 默认行为是基于 Values 文件中的对象创建设置
--show-service-fqdn 使用 Kubernetes FQDN 显示 HTTP 触发器的 URL,而不是使用 IP 地址的默认行为。
--service-type 设置 Kubernetes 服务的类型。 支持的值为:ClusterIPNodePortLoadBalancer(默认)。
--use-config-map 使用 ConfigMap 对象(v1)而不是 Secret 对象(v1)来配置 function 应用设置。 映射名称是使用 --config-map-name 设置的。
--use-git-hash-version 使用 Git 哈希作为容器映像的版本。
--write-configs 将 Kubernetes 配置输出为 YAML 文件,而不是部署。
--config-file 使用 --write-configs时输出文件路径。 默认值: functions.yaml
--hash-files 要哈希的文件以确定映像版本。
--image-build 如果设置为 false,则跳过 Docker 生成。
--key-secret-annotations 要添加到密钥机密的批注, key1=val1,key2=val2 格式。

Core Tools 使用本地 Docker CLI 生成并发布映像。 确保已在本地安装 Docker。 运行 docker login 命令以连接到帐户。

Azure Functions支持在Azure Functions中托管容器化函数。

func kubernetes delete

从 Kubernetes 群集中删除 Functions 部署。

func kubernetes delete --name <APP_NAME>

func kubernetes delete 命令支持以下选项:

选项 说明
--name Kubernetes 中的部署和其他项目的名称。 (必需)
--namespace 设置 Kubernetes 命名空间。 默认为 default 命名空间。
--registry 容器注册表的名称。
--image-name 用于 Pod 部署的映像。
--keda-version 设置 KEDA 的版本。 有效选项为 v1v2 (默认值)。

func kubernetes install

在 Kubernetes 群集中安装 KEDA

func kubernetes install 

将 KEDA 安装到 kubectl 配置文件中定义的群集。

func kubernetes install 命令支持以下选项:

选项 说明
--dry-run 显示部署模板而不执行。
--keda-version 设置要安装的 KEDA 版本。 有效选项为:v1v2(默认)。
--namespace 安装到特定的 Kubernetes 命名空间。 如果未设置,则使用默认命名空间。

有关详细信息,请参阅 在 Kubernetes 中管理 KEDA 和函数

func kubernetes remove

从配置文件中 kubectl 定义的 Kubernetes 群集中删除 KEDA。

func kubernetes remove

从配置文件中 kubectl 定义的群集中删除 KEDA。

func kubernetes remove 命令支持此选项:

选项 说明
--namespace 从特定的 Kubernetes 命名空间中卸载。 如果未设置,则使用默认命名空间。

有关详细信息,请参阅 从 Kubernetes 卸载 KEDA

func settings add

Values中的 集合添加新设置。

func settings add <SETTING_NAME> <VALUE>

替换为 <SETTING_NAME> 应用设置的名称。

func settings add 命令支持此选项:

选项 说明
--connectionString 将名称/值对添加到 ConnectionStrings 集合,而不是 Values 集合。 ConnectionStrings仅当某些框架需要该集合时,才使用该集合。 有关详细信息,请参阅 local.settings.json 文件

func settings decrypt

解密 Values 文件中集合中的加密值

func settings decrypt

此命令还会解密 ConnectionStrings 集合中的连接字符串值。 在 local.settings.json中,命令设 IsEncryptedfalse。 加密本地设置以降低 local.settings.json敏感信息的风险。 在Azure中,应用程序设置始终存储为加密。

func settings delete

Values 集合中删除现有设置。

func settings delete <SETTING_NAME>

<SETTING_NAME> 替换为应用设置的名称,将 <VALUE> 替换为设置的值。

func settings delete 命令支持此选项:

选项 说明
--connectionString ConnectionStrings 集合中删除名称/值对, Values 而不是集合。

func settings encrypt

加密 Values 集合中各个项的值。

func settings encrypt

该命令还会加密 ConnectionStrings 集合中的连接字符串值。 在 local.settings.json中,命令设置为 IsEncryptedtrue这表示本地运行时在使用设置前会解密。 加密本地设置以降低 local.settings.json敏感信息的风险。 在Azure中,应用程序设置始终存储为加密。

func settings list

输出 Values 集合中的设置列表。

func settings list

输出还包括集合中的 ConnectionStrings 连接字符串。 默认情况下,该命令会为安全起见遮蔽数值。 使用选项 --showValue 显示实际值。

func settings list 命令支持此选项:

选项 说明
--showValue-a 显示输出中实际未屏蔽的值。

func templates list

列出可用的函数(触发器)模板。

func templates list 命令支持此选项:

选项 说明
--language-l 用于筛选返回模板的语言。 默认情况下返回所有语言。

全局选项

大多数核心工具命令支持以下选项:

选项 说明
--script-root 设置函数应用的根目录,并更改命令的工作目录。
--verbose 启用详细日志记录的详细输出。 并非所有命令都支持这个选项。
--offline 在脱机模式下运行,无需进行外部网络调用。 func start func init, , 和func new命令都支持这个选项。 你也可以通过环境变量设置。FUNCTIONS_CORE_TOOLS_OFFLINE
--version-v 显示 Azure Functions Core Tools 的版本。
--help-h 显示帮助信息。
--pause-on-error 在退出进程之前暂停其他输入。 当你从集成开发环境(IDE)启动核心工具时,这个选项非常有用。

大多数命令支持以下选项:

选项 说明
--help-h 显示命令的帮助。
--version 显示Azure Functions CLI 版本。 --verbose与 一起使用--version以获取详细的构建信息。
--verbose 启用详细输出。 传播到所有子指挥部。 当在根节点传递且无子命令时,会打印详细的构建、运行时、操作系统和架构信息。

可用工作负载

快去 func workload search 看看最新目录。 目前可用的工作负载如下:

Name 说明
host func run 使用的Azure Functions主机运行时。
bundles 安装 扩展包,使所有绑定扩展都能启用。 任何非.NET栈都可以使用这个工作负载。 .NET项目不使用这种工作负载。 相反,他们在项目中直接引用扩展。
dotnet Azure Functions CLI tooling for .NET (C#, F#) projects. 还贡献了模板。func quickstart .NET 不需要单独的 Worker 工作负载,因为 Worker 本身就是编译项目的一部分。
dotnet-templates .NET 孤立工作项目的功能支架模板。
python Azure Functions用于Python项目的 CLI 工具。 还贡献了模板。func quickstart
python-worker 函数主机使用的Python语言工作器。
python-templates Python(v1和v2编程模型)的函数支架模板。
node Azure Functions Node.js 项目(JavaScript、TypeScript)的CLI工具。 还贡献了模板。func quickstart
node-worker 函数主机使用的 Node.js 语言工作器。
node-templates 函数支架模板用于 Node.js(JavaScript、TypeScript)。
go Azure Functions Go 项目的 CLI 工具。 还贡献了模板。func quickstart
go-worker 函数主机使用的 Go 语言工作器。

注意

并非所有函数语言栈目前都作为工作负载可用。 Java 和 PowerShell 栈目前不支持 Azure Functions CLI。