Skip to main content

常见问题

有关 Remotion Lambda 的一些常见问题。

Lambda 是自托管的吗?​

是的,您需要在自己的 AWS 账户中托管 Remotion Lambda。目前 Remotion 不提供托管的渲染解决方案。

每次渲染都需要部署一个函数吗?​

一般来说,您只需要部署一个函数,它就能够渲染多个视频,甚至跨不同项目。

有三种情况下可能需要部署多个函数:

  • 如果您使用多个区域,需要为每个区域部署一个函数。
  • 如果您要升级到 Remotion Lambda 的新版本,需要部署一个新函数。然后您可以同时运行新旧函数。@remotion/lambda CLI 将始终选择您 AWS 账户中与客户端包版本相同的函数。如果使用 getFunctions() Node.JS API,请将 compatibleOnly 标志设置为 true,以过滤掉与 @remotion/lambda 包版本不匹配的函数。
  • 如果要部署具有不同内存大小、磁盘大小或超时时间的函数,则可以创建一个新函数。但是,目前如果有多个合适的函数可用,Remotion 将随机选择一个。因此,您应该只使用此策略来更改函数的参数而不会导致停机时间。

是否需要创建多个存储桶?​

只建议每个区域一个存储桶。

是否需要部署多个站点?​

您可以部署一个站点,并根据需要进行多次渲染。如果有多个站点,您可以部署它们所有,并重复使用相同的 Lambda 函数。

如果我想渲染更长的视频怎么办?​

您不需要担心 Lambda 函数的超时,因为 Remotion 将视频分割成多个部分并并行渲染它们。但是,您需要注意可能不得超过的存储限制。请参阅:磁盘大小

为什么您不使用Amazon EFS?​

我们已经评估了Amazon Elastic File System(EFS),发现EFS的速度优势不足以证明增加的复杂性 - 要集成EFS,需要创建VPC和安全组,这将禁用公共互联网访问。要恢复公共互联网访问,需要创建一个持久的EC2实例来代理流量,抵消了Lambda的许多优势。

Remotion Lambda的成本是多少?​

有两个成本组成部分:Remotion许可费(请参阅定价,仅适用于公司),以及AWS成本。 AWS成本取决于您为Lambda函数分配的内存量。我们会为您估算Lambda的成本,并在API响应中报告。

如何升级/重新部署Lambda函数?​

Remotion将查找与Node.JS库/CLI匹配的Lambda函数版本。

如果您不再依赖旧函数,可以首先删除所有现有函数:

bash
npx remotion lambda functions rmall
bash
npx remotion lambda functions rmall

您可以使用以下命令部署新函数:

bash
npx remotion lambda functions deploy
bash
npx remotion lambda functions deploy

如果您正在使用Node.JS API,则以下API非常有用:getFunctions(),deployFunction()和deleteFunction()。

我可以修改在Lambda内运行的代码吗?​

在Lambda内运行的代码是由Remotion提供的执行器二进制文件。您不能编写要在Remotion为您部署的函数内运行的代码,但可以利用许多配置选项,并使用像renderMediaOnLambda这样的API从另一个Lambda函数调用Remotion Lambda函数。

在Remotion Lambda函数内运行的源代码可以在此处找到,如果需要,可以进行分叉。我们建议首先与Remotion团队联系,并检查是否真的需要进行分叉。

我可以将网站设为私密吗?​

在 Lambda 上渲染视频时,您需要指定一个 Serve URL,指向 Remotion 代码的 Webpack 捆绑包。
这是一个 URL,如果被知晓,任何人都可以公开访问。

Lambda 函数需要启动一个无头浏览器并访问此 URL 以渲染视频。
存储桶中的项目不能设为私密,因为它们需要通过 URL 在无头浏览器中访问。

确保不要在代码中硬编码敏感数据,如 API 密钥或用户数据。
相反,使用 inputProps 和 envVariables 选项的 renderMediaOnLambda() 在渲染过程中传递数据。
这些值永远不会公开访问。

通过将您的网站提供在 Serve URL 下,您可能会暴露您的被缩小的 React 代码。
通常这不是问题,因为任何网站都会暴露他们的被缩小的前端代码。

如果您希望使您的网站更私密,您可以:

  • 使用更难猜测的更长的网站名称
  • 在您的存储桶根目录中放置一个 robots.txt 文件,其中包含一个 Disallow: / 规则,以防止爬虫访问您的网站并使您的网站出现在搜索结果中。

只有您可以触发您账户上的渲染​

通过 Serve URL 访问网站不会允许任何人触发您账户上的 Lambda 渲染。
该 URL 仅提供 HTML、JavaScript 和资源,但确实公开了在您的 AWS 账户上调用任何计算的访问权限。