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 密钥或用户数据。
相反,使用 inputPropsenvVariables 选项的 renderMediaOnLambda() 在渲染过程中传递数据。
这些值永远不会公开访问。

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

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

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

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

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