部署型函数:常驻执行模式
函数默认是无服务器(serverless)的,但也可以部署成常驻服务。这篇讲两种执行模式怎么选、部署架构长什么样。
https://www.palantir.com/docs/foundry/functions/functions-deployed/
原始标题:Language-agnostic features > Deploy functions
先记住这几条
写在前面
前置条件
前置条件
本指南要求你已编写并发布了一个 Python 或 TypeScript v2 函数。关于教程,请查阅 Python 函数上手或 TypeScript v2 函数上手文档。
两种执行模式怎么选
两种执行模式怎么选
如果你的租户启用了 serverless 函数,新仓库默认会使用它。对于大多数场景,我们通常建议使用 serverless 函数。虽然部署式(deployed)函数在某些情形下有用,但 serverless 执行模式需要更少的维护,且能避免与长期运行的部署相关的开销。
部署式函数拥有一些 serverless 函数不具备的能力:
- 部署式函数长期运行的性质意味着,如果函数能够容忍重启,则可能实现本地缓存。
- Serverless 函数支持使用所提供的源对象上的客户端调用外部源,但不支持第三方客户端。你必须部署你的函数,才能用第三方客户端发起外部 API 调用。
- 部署式函数支持 GPU 分配,通过并行处理加速计算密集的模型训练与推理工作流,而 serverless 函数不支持。
- 部署式函数可以访问完整的服务发现(service discovery)API,而 serverless 函数只能访问有限的服务发现 API 子集,例如
api_gateway和telemetry。
部署式函数也有一些不适用于 serverless 执行的限制:
- Serverless 函数支持按需执行同一函数的不同版本,使升级更安全。而部署式函数同一时刻只能运行一个函数版本。
- Serverless 函数仅在执行时产生费用,而部署式函数只要部署在运行就会产生费用。
- Serverless 函数需要更少的前期搭建与长期维护,因为基础设施是自动管理的。
要为你的租户启用 serverless 函数,请联系你的 Palantir 管理员。
部署架构
部署架构
函数可以以 serverless 模式运行(利用按需资源),也可以被部署到一个长期运行的容器中。
如果你的租户已启用,我们建议使用 serverless 函数而非部署式函数。尽管某些情况下部署式函数很有用,但 serverless 执行器通常更灵活。
当你的函数被部署时,会创建一个长时运行的环境来处理进入的执行请求。该环境会根据请求量自动扩缩容,并偶尔被自动化进程重启。来自同一仓库的所有函数都由同一个部署托管。
函数的执行模式与部署配置,在函数通过 Marketplace 分发时会被打包并复现。详情与限制见部署式函数在 Marketplace 中。
:::callout{theme="warning" title="计算成本"}
部署式函数会就运行中的部署产生计算成本。Serverless 函数仅在执行时产生成本。
Deploy a function
Deploy a function
按照以下步骤配置并部署一个函数:
- 打开你的函数仓库,导航到 Branches(分支) 标签页,然后选择 Tags and releases(标签与发布)。
- 悬停在你想要部署的函数上,然后选择 Open in Ontology Manager(在 Ontology Manager 中打开)。

- 从左侧的版本选择器中选择你想使用的函数版本。
- 选择 Configure execution(配置执行)。

- 如果你的环境中启用了 serverless 函数,你会看到在 serverless 与 deployed 之间切换的选项。如果未选择且不存在部署,默认使用 serverless。

- 选择 Deployed(部署式) 执行模式选项。
- 如果函数还没有部署,选择 Create deployment(创建部署)。

- 部署首次创建时,会应用默认配置。你可以滚动到页面底部查看完整配置。

- 按需修改部署配置。你可以配置以下内容:
- 分配给部署的计算资源,包括 CPU、GPU 和内存。
- 基于请求负载的自动扩缩容最小值与最大值。
- 部署启动时将设置的环境变量。
- 函数在返回超时错误之前被允许运行的总时长。与其他部署设置不同,超时是针对每个函数版本单独配置的。

- 选择 Save and start deployment(保存并启动部署),保存任何改动并启动部署。你也可以选择 Save without starting deployment(保存但不启动部署),仅保存配置而不启动部署。

- 如果你选择了 Save and start deployment,需要等待托管该函数的部署启动完成。这可能需要几分钟。
- 要验证部署是否运行,导航到包含该函数的代码仓库并运行该函数。函数应当成功执行并返回预期结果。

延伸阅读 · 相关页面
按主题横向跳转,不必顺着目录一篇篇读。
常见问题速答 · FAQ
关于「部署型函数:常驻执行模式」,读者最常问的几个问题。