ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Remotion Lambda 如何完成从 IAM 配置到部署并渲染第一个视频的完整设置?

Remotion Lambda 如何完成从 IAM 配置到部署并渲染第一个视频的完整设置? Remotion Lambda 如何完成从 IAM 配置到部署并渲染第一个视频的完整设置【免费下载链接】remotion Make videos programmatically with React项目地址: https://gitcode.com/GitHub_Trending/re/remotion目标很直接在你的 AWS 账户里配置好 Remotion 需要的 IAM 权限部署一个能渲染视频的 Lambda 函数把本地 Remotion 项目发布成 S3 上的 Serve URL然后用一条 CLI 命令渲染出你的第一个视频。整个过程全部在本地终端和 AWS 控制台完成前提是本地有一个可以运行的 Remotion 项目即包含registerRoot()入口文件的项目以及一个已登录的 AWS 账户。主路径使用 Remotion CLINode.JS API 的等价写法在对应步骤中作为可选分支给出。安装remotion/lambda在项目根目录安装 Lambda 客户端包。使用 Remotion CLI 的方式npx remotion add remotion/lambda如果你用其他包管理器对应命令为npm i --save-exact remotion/lambda版本、pnpm i remotion/lambda版本、bun i remotion/lambda版本或yarn --exact add remotion/lambda版本其中版本需替换为你项目使用的 Remotion 版本号保持版本一致。在 AWS 控制台配置 IAM以下四步都在 AWS 控制台的 IAM 区域完成顺序不能颠倒先建策略再建角色然后建用户并配置用户的密钥和策略。1. 创建角色策略remotion-lambda-policy在本地终端执行下面命令它会打印出 Lambda 角色所需的完整 IAM 策略 JSONnpx remotion lambda policies role在 AWS 控制台进入 IAM 的 Policies策略页面点击 Create policy切换到 JSON 标签页把上面命令的输出粘贴进去。下一步给策略命名必须精确命名为remotion-lambda-policy其余字段保持默认Tags 页留空直接通过。这个 JSON 与你当前 Remotion 版本匹配升级版本后需要重新生成。2. 创建角色remotion-lambda-role进入 IAM 的 Roles角色页面点击 Create roleUse cases 选择 Lambda点 NextPermissions policies 中过滤remotion-lambda-policy勾选它点 Next最后一步把角色精确命名为remotion-lambda-role点 Create role 确认。这两处名称是硬性要求因为部署函数时默认会引用arn:aws:iam::账户ID:role/remotion-lambda-role这个角色名称对不上就无法工作。角色策略的权限清单S3 读写remotionlambda-*开头的桶、调用自身、写 CloudWatch 日志等及其原因可以在 Permissions 文档 的权限对照表中逐条查看。3. 创建用户并生成 Access Key进入 IAM 的 Users用户页面点击 Add users输入任意用户名例如remotion-user不要勾选Enable console access程序化调用用不到控制台访问连续点击 Next 通过权限和评审步骤点 Create user。然后点进这个用户在 Security Credentials 标签页的 Access Keys 区域点 Create access key选择 Application running on an AWS compute service勾选 I understand the recommendations... 提示点击 Next 再点 Create access key。把生成的 Access key ID 和 Secret access key 填入项目根目录新建的.env文件REMOTION_AWS_ACCESS_KEY_IDAccess key ID REMOTION_AWS_SECRET_ACCESS_KEYSecret access key其中Access key ID和Secret access key替换为刚复制的两个值。CLI 会自动读取.env中的环境变量如果走 Node.JS API则需要自己读取.env例如用dotenv。关于凭据的其他提供方式和优先级见 Authentication 文档。4. 给用户添加内联策略选中刚创建的用户在 Permissions policies 面板的 Add Permissions 下拉中选择 Add inline policy切换到 JSON 标签页在终端执行npx remotion lambda policies user把输出粘贴进 AWS 的策略编辑器点 Review policy给策略任意命名例如remotion-user-policy点 Create policy 确认。校验权限配置IAM 配完后可以用 AWS 的策略模拟器校验用户权限npx remotion lambda policies validate它会逐项检查用户权限并与 AWS Policy simulator 比对。注意角色的策略无法用这种方式校验只有用户侧策略可以验证permissions.mdx 明确了这一点。部署渲染函数npx remotion lambda functions deploy该命令在你的 AWS 账户创建一个包含 Chromium、FFMPEG 二进制和 JavaScript 代码的 Lambda 函数它接收一个 Serve URL 并据此发起渲染。文档中的示例输出如下仅供参考实际 Region、版本号等会不同Region eu-central-1, Memory 2048MB, Disk 2048MB, Timeout 120sec, Version 2021-12-17, CloudWatch Enabled true, CloudWatch Retention Period 14 days Deployed as remotion-render-2021-12-17-2048mb-120sec几个要点命令是幂等的同区域、同 Remotion 版本、同内存/磁盘/超时的函数已存在时直接返回已有函数名不会重复创建。你只需要每个 AWS 区域 每个 Remotion 版本部署一个函数。函数与 Remotion 版本绑定将来升级 Remotion 后需要部署新函数函数本身不包含你的项目代码。常用可选参数--region必须与后续项目部署在同一区域、--memory默认 2048MB范围 512–10240MB成本与内存成正比建议保持尽量低、--timeout必须小于 900 秒官方推荐 120 秒以内视频渲染慢时建议提高并发而不是拉长超时、--diskRemotion 5.0.0 默认 2048MB5.0.0 默认 10240MB、--custom-role-arn默认使用remotion-lambda-role。完整参数见 functions deploy 参考。可选分支用 Node.JS API 部署deployFunction()参数与 CLI 对应函数名通过返回值的functionName获取import {deployFunction} from remotion/lambda; const {functionName} await deployFunction({ region: us-east-1, timeoutInSeconds: 120, memorySizeInMb: 2048, createCloudWatchLogGroup: true, });部署站点拿到 Serve URL把本地 Remotion 项目打包并上传到 S3入口文件调用registerRoot()的文件作为参数传入npx remotion lambda sites create src/index.ts --site-namemy-videosrc/index.ts换成你的入口文件路径。--site-name是可选的传了会得到确定性 URL以后用同名重新部署会覆盖旧版本不传则每次部署生成唯一 URL。文档示例输出仅供参考桶名和路径以实际为准(1/3) [] Bundled video 3975ms (2/3) [] Created bucket 457ms (3/3) [] Uploaded to S3 25118ms Deployed to S3! Serve URL: https://remotionlambda-12345.s3.eu-central-1.amazonaws.com/sites/abcdef/index.html Site Name: abcdef记下这个 Serve URL下一步渲染要用。注意--site-name只能包含0-9、a-z、A-Z、-、!、_、.、*、、(、)这些字符。可选分支用 Node.JS API 走getOrCreateBucket()bundle()来自remotion/bundlerdeploySiteFromBundle()三步完成同样的事siteName参数同样决定 URL 是否可覆盖见 Setup 文档。可选检查账户并发限额渲染一次视频最多可能并发使用 200 个函数。检查你的账户配额npx remotion lambda quotas默认是每区域 1000 次并发调用但新账户可能低至 10。如果你的限额很低需要在 AWS 侧申请提高等待期间可以在渲染时传--concurrency1v4.0.517 起支持在单个主函数上渲染牺牲速度换取可用。渲染第一个视频把上一步的 Serve URL 和你项目中的 Composition ID 传入npx remotion lambda render serve-url composition-idserve-url替换为sites create打印出的完整 URL或站点名缩写但缩写形式必须同时提供 composition ID因为列表拉取只在完整 URL 下可用composition-id替换为要渲染的合成 ID。命令会持续打印进度直到视频渲染完成。不指定输出位置时视频保存在你的 S3 桶里也可以在命令末尾加一个本地路径例如out/video.mp4作为第三个参数渲染完成后会额外下载到本地。如果需要传 input props、调整编码或并发常用参数详见 render CLI 参考# 传 propsWindows shell 不支持内联 JSON 字符串改用文件 npx remotion lambda render --props{hi: there} testbed my-comp # 指定并发数替代 --frames-per-lambda最大 200最小 1 npx remotion lambda render --concurrency10 serve-url composition-id # verbose 日志会在渲染时打印 CloudWatch 链接方便查看函数日志 npx remotion lambda render --logverbose serve-url composition-id # 输出不公开默认 public可通过 presignUrl() 生成签名链接 npx remotion lambda render --privacyprivate serve-url composition-id可选分支用 Node.JS API 渲染时先调用getFunctions({region, compatibleOnly: true})获取与当前版本匹配的函数名再调用renderMediaOnLambda()触发渲染最后循环轮询getRenderProgress({renderId, bucketName, functionName, region})直到progress.done为真此时progress.outputFile指向输出文件或progress.fatalErrorEncountered为真此时输出progress.errors。完整轮询示例见 Setup 文档 第 11 步。验证与后续限制到这里可以按结果确认每个环节npx remotion lambda policies validate通过说明用户侧 IAM 权限配置正确角色侧无法校验靠部署函数时的行为验证functions deploy打印出Deployed as remotion-render-...形式的函数名说明函数部署成功sites create打印出Serve URL: https://...说明项目已上传到 S3lambda render打印进度直到结束随后到 S3 桶中能找到视频文件即完成第一个视频的渲染。几个文档明确给出的边界函数绑定 Remotion 版本升级 Remotion 后必须重新部署函数详见 upgrading 文档桶只能访问remotionlambda-前缀的桶输出默认公开需要私有输出时用--privacyprivate上正式环境前建议过一遍 Production checklist并在 region-selection 中确认你要运行的 AWS 区域——项目与函数必须位于同一区域。【免费下载链接】remotion Make videos programmatically with React项目地址: https://gitcode.com/GitHub_Trending/re/remotion创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表