Azure Functions Core Tools 参考

本文提供 Azure Functions Core Tools 的参考文档,该工具集允许你从本地计算机开发、管理和部署 Azure Functions 项目。 若要详细了解如何使用 Core Tools,请参阅使用 Azure Functions Core Tools

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

命令上下文 说明
func 用于在本地计算机上创建和运行函数的命令。
func azure 用于处理 Azure 资源(包括发布)的命令。
func durable 用于使用 Durable Functions 的命令。
func extensions 用于安装和管理扩展的命令。
func kubernetes 用于使用 Kubernetes 和 Azure Functions 的命令。
func settings 用于管理本地 Functions 主机的环境设置的命令。
func templates 用于列出可用函数模板的命令。

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

func init

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

func init <PROJECT_FOLDER>

当你提供 <PROJECT_FOLDER> 时,系统会在具有此名称的新文件夹中创建项目。 否则,将使用当前文件夹。

func init 支持以下选项。除非另有说明,否则这些选项仅限版本 3.x/2.x:

选项 描述
--csx 以 C# 脚本的形式创建 .NET 函数,这是版本 1.x 行为。 仅对 --worker-runtime dotnet 有效。
--docker 使用基于所选 --worker-runtime 的基础映像创建容器的 Dockerfile。 如果打算发布到自定义 Linux 容器,请使用此选项。
--docker-only 将 Dockerfile 添加到现有项目中。 如果未在 local.settings.json 中指定或设置 worker-runtime,则会进行相应提示。 如果你打算将现有项目发布到自定义 Linux 容器,请使用此选项。
--force 即使项目中存在现有的文件,也要初始化该项目。 此设置会覆盖同名的现有文件。 项目文件夹中的其他文件不受影响。
--language 初始化特定于语言的项目。 当前在 --worker-runtime 设为 node 时受支持。 选项包括 typescriptjavascript。 你也可使用 --worker-runtime javascript--worker-runtime typescript
--managed-dependencies 安装托管的依赖项。 目前只有 PowerShell 辅助运行时支持此功能。
--source-control 控制是否创建 git 存储库。 默认不会创建存储库。 如果为 true,则会创建存储库。
--worker-runtime 设置项目的语言运行时。 支持的值为:csharpdotnetdotnet-isolatedjavascriptnode (JavaScript)、powershellpythontypescript。 对于 Java,请使用 Maven。 若要仅使用项目文件生成与语言无关的项目,请使用 custom。 如果未设置,则初始化期间系统会提示你选择运行时。
--target-framework 设置函数应用项目的目标框架。 仅对 --worker-runtime dotnet-isolated 有效。 支持的值为 net6.0(默认值)、net7.0net48

注意

当你使用 --docker--dockerfile 选项时,Core Tools 会自动为 C#、JavaScript、Python 和 PowerShell 函数创建 Dockerfile。 对于 Java 函数,你必须手动创建 Dockerfile。 使用 Azure Functions 映像列表为运行 Azure Functions 的容器查找正确的基础映像。

func logs

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

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

func logs 操作支持以下选项:

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

若要了解详细信息,请参阅 Kubernetes 上使用 KEDA 的 Azure Functions

func new

基于模板在当前项目中创建新函数。

func new

func new 操作支持以下选项:

选项 说明
--authlevel 允许设置 HTTP 触发器的授权级别。 支持的值为:functionanonymousadmin。 在本地运行时,不会强制实施授权。 有关详细信息,请参阅 HTTP 绑定一文。
--csx (2.x 及更高版本。)生成版本 1.x 和门户所用的相同 C# 脚本 (.csx) 模板。
--language, -l C#、F# 或 JavaScript 等模板编程语言。 此选项在版本 1.x 中是必需的。 在版本 2.x 和更高版本中,无需使用此选项,因为语言由辅助角色运行时定义。
--name, -n 函数名称。
--template, -t 使用 func templates list 命令查看每种受支持语言的可用模板的完整列表。

若要了解详细信息,请参阅创建函数

func run

仅限 1.x 版。

可用于直接调用函数,此命令类似于在 Azure 门户中使用“测试”选项卡运行函数。 此操作仅在版本 1.x 中受支持。 对于更高版本,请使用 func start直接调用函数终结点

func run

func run 操作支持以下选项:

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

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

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

func start

启动本地运行时主机并加载当前文件夹中的函数项目。

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

func start

func start 支持以下选项:

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

项目运行时,可以验证各个函数终结点

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 logstream

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

func azure functionapp logstream <APP_NAME>

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

deploy 操作支持以下选项:

选项 说明
--browser 在默认浏览器中为函数应用打开 Azure Application Insights 实时流。

若要了解详细信息,请参阅启用流式处理日志

func azure functionapp publish

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

func azure functionapp publish <FunctionAppName>

有关详细信息,请参阅部署项目文件

以下发布选项适用于不同的版本:

选项 说明
--additional-packages 构建本机依赖项时要安装的包列表。 例如:python3-dev libevent-dev
--build, -b 部署到 Linux 函数应用时执行生成操作。 接受:remotelocal
--build-native-deps 发布 Python 函数应用时跳过生成 .wheels 文件夹。
--csx 发布 C# 脚本 (.csx) 项目。
--force 在某些情况下会忽略预发布验证。
--dotnet-cli-params 发布已编译的 C# (.csproj) 函数时,Core Tools 调用 dotnet build --output bin/publish。 传递到此选项的任何参数将追加到命令行。
--list-ignored-files 基于 .funcignore 文件显示发布期间忽略的文件列表。
--list-included-files 基于 .funcignore 文件显示发布的文件列表。
--no-build 发布过程中不生成项目。 对于 Python,不执行 pip install
--nozip 关闭默认的 Run-From-Package 模式。
--overwrite-settings -y 使用 --publish-local-settings -i 时隐藏覆盖应用设置的提示。
--publish-local-settings -i 将 local.settings.json 中的设置发布到 Azure,如果该设置已存在,则提示进行覆盖。 如果使用的是 Azure 存储仿真器,请先将应用设置更改为实际的存储连接
--publish-settings-only, -o 仅发布设置,并跳过内容。 默认为提示。
--slot 要发布到的特定槽的可选名称。

func azure storage fetch-connection-string

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

func azure storage fetch-connection-string <STORAGE_ACCOUNT_NAME>

func deploy

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

func durable delete-task-hub

删除 Durable Functions 任务中心的所有存储项目。

func durable delete-task-hub

delete-task-hub 操作支持以下选项:

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

若要了解详细信息,请参阅 Durable Functions 文档

func durable get-history

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

func durable get-history --id <INSTANCE_ID>

get-history 操作支持以下选项:

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

若要了解详细信息,请参阅 Durable Functions 文档

func durable get-instances

返回所有业务流程实例的状态。 支持使用 top 参数进行分页。

func durable get-instances

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>

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

purge-history 操作支持以下选项:

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

若要了解详细信息,请参阅 Durable Functions 文档

func durable raise-event

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

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

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>

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>

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>

terminate 操作支持以下选项:

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

若要了解详细信息,请参阅 Durable Functions 文档

func extensions install

在非 C# 类库项目中安装 Functions 扩展。

如果可能,应改为使用扩展捆绑包。 若要了解详细信息,请参阅扩展捆绑包

对于 C# 类库和 .NET 独立项目,请改用标准 NuGet 包安装方法,例如 dotnet add package

install 操作支持以下选项:

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

如果在 host.json 文件中定义了扩展捆绑包,则不执行任何操作。

func extensions sync

安装添加到函数应用的所有扩展。

sync 操作支持以下选项:

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

重新生成缺少的 extensions.csproj 文件。 如果在 host.json 文件中定义了扩展捆绑包,则不执行任何操作。

func kubernetes deploy

将 Functions 项目作为自定义 docker 容器部署到 Kubernetes 群集。

func kubernetes deploy 

此命令会将项目生成为自定义容器,然后发布到 Kubernetes 群集。 自定义容器必须有一个 Dockerfile。 若要使用 Dockerfile 创建应用,请在 func init 命令中使用 --dockerfile 选项。

可使用以下 Kubernetes 部署选项:

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

Core Tools 使用本地 Docker CLI 生成并发布映像。

确保 Docker 已安装在本地。 运行 docker login 命令以连接到帐户。

有关详细信息,请参阅将函数应用部署到 Kubernetes

func kubernetes install

在 Kubernetes 群集中安装 KEDA。

func kubernetes install 

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

install 操作支持以下选项:

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

若要了解详细信息,请参阅在 Kubernetes 中管理 KEDA 和函数

func kubernetes remove

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

func kubernetes remove 

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

remove 操作支持以下选项:

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

若要了解详细信息,请参阅从 Kubernetes 卸载 KEDA

func settings add

local.settings.json 文件中的 Values 集合添加新设置。

func settings add <SETTING_NAME> <VALUE>

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

add 操作支持以下选项:

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

func settings decrypt

local.settings.json 文件Values 集合中先前加密的值进行解密。

func settings decrypt

ConnectionStrings 集合中的连接字符串值也会被解密。 在 local.settings.json 中,IsEncrypted 也设置为 false。 通过加密本地设置,可减少从 local.settings.json 泄露重要信息的风险。 在 Azure 中,应用程序设置始终以加密的形式进行存储。

func settings delete

local.settings.json 文件Values 集合中删除现有设置。

func settings delete <SETTING_NAME>

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

delete 操作支持以下选项:

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

func settings encrypt

加密 local.settings.json 文件Values 集合中各个项的值。

func settings encrypt

ConnectionStrings 集合中的连接字符串值也会被加密。 在 local.settings.json 中,IsEncrypted 也设置为 true,它指定本地运行时在使用设置之前先对其进行解密。 通过加密本地设置,可减少从 local.settings.json 泄露重要信息的风险。 在 Azure 中,应用程序设置始终以加密的形式进行存储。

func settings list

输出 local.settings.json 文件Values 集合中的设置列表。

func settings list

同时也输出 ConnectionStrings 集合中的连接字符串。 默认情况下,为了安全起见,将对值进行掩码处理。 你可以使用 --showValue 选项显示实际值。

list 操作支持以下选项:

选项 说明
--showValue 显示输出中的实际未掩码值。

func templates list

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

list 操作支持以下选项:

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