认证
您可以使用 @remotion/lambda
包进行身份验证,方法如下:
- 使用指向文件的
REMOTION_AWS_PROFILE
或AWS_PROFILE
环境变量 - 使用
REMOTION_AWS_ACCESS_KEY_ID
和REMOTION_AWS_SECRET_ACCESS_KEY
环境变量 - 使用
AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
环境变量
如果您使用 Remotion CLI,则会自动读取位于 .env
文件中的环境变量,但如果您使用 Node.JS APIs,则不会。如果提供了多种方式,Remotion 将按照上述顺序使用第一个找到的凭据。
我们建议使用以 REMOTION_
为前缀的环境变量变体,因为:
- 在某些环境中,未带前缀的变体可能已被保留(例如 Vercel 部署)
- 如果使用未带前缀的版本,可能会导致 Remotion 与 AWS CLI 之间的冲突。
旋转凭据
使用多个 AWS 帐户可以是一种可行的扩展策略,以增加并发限制。为此,您可以在使用 @remotion/lambda
进行操作之前,为 REMOTION_AWS_ACCESS_KEY_ID
和 REMOTION_AWS_SECRET_ACCESS_KEY
或其他环境变量设置新值。以下是一个实现示例。
.envini
# Account 1AWS_KEY_1=AK...AWS_SECRET_=M/# Account 2AWS_KEY_2=AK...AWS_SECRET_2=M/
.envini
# Account 1AWS_KEY_1=AK...AWS_SECRET_=M/# Account 2AWS_KEY_2=AK...AWS_SECRET_2=M/
您需要使用 dotenv
包自行读取 .env
文件。
rotate-credentials.tstsx
constgetAccountCount = () => {letcount = 0;while (process .env ["AWS_KEY_" + (count + 1)] &&process .env ["AWS_SECRET_" + (count + 1)]) {count ++;}returncount ;};constgetRandomAwsAccount = () => {returnMath .ceil (Math .random () *getAccountCount ());};constsetEnvForKey = (key : number) => {process .env .REMOTION_AWS_ACCESS_KEY_ID =process .env [`AWS_KEY_${key }`];process .env .REMOTION_AWS_SECRET_ACCESS_KEY =process .env [`AWS_SECRET_${key }`];};// Set random account credentialssetEnvForKey (getRandomAwsAccount ());
rotate-credentials.tstsx
constgetAccountCount = () => {letcount = 0;while (process .env ["AWS_KEY_" + (count + 1)] &&process .env ["AWS_SECRET_" + (count + 1)]) {count ++;}returncount ;};constgetRandomAwsAccount = () => {returnMath .ceil (Math .random () *getAccountCount ());};constsetEnvForKey = (key : number) => {process .env .REMOTION_AWS_ACCESS_KEY_ID =process .env [`AWS_KEY_${key }`];process .env .REMOTION_AWS_SECRET_ACCESS_KEY =process .env [`AWS_SECRET_${key }`];};// Set random account credentialssetEnvForKey (getRandomAwsAccount ());
使用 AWS 配置文件
从 v3.3.9 开始可用
如果您更喜欢 AWS 配置文件,您可以使用它们。配置文件列表位于 macOS 和 Linux 上的 ~/.aws/credentials
,格式如下:
~/.aws/credentialsini
[default]# ...[remotion]aws_access_key_id = YOUR_ACCESS_KEY_IDaws_secret_access_key = YOUR_SECRET_ACCESS_KEY
~/.aws/credentialsini
[default]# ...[remotion]aws_access_key_id = YOUR_ACCESS_KEY_IDaws_secret_access_key = YOUR_SECRET_ACCESS_KEY
在此示例中,我们添加了一个 remotion
配置文件。现在,通过设置 REMOTION_AWS_PROFILE=remotion
,您可以选择配置文件,而无需再单独传递每个环境变量。
跳过凭证检查v4.0.160
S3 客户端可以通过其他方式进行身份验证,比如来自 EC2 实例元数据。
如果您已经设置了这个,您可以将 REMOTION_SKIP_AWS_CREDENTIALS_CHECK
环境变量设置为任何值。
ts
process.env.REMOTION_SKIP_AWS_CREDENTIALS_CHECK = "1";
ts
process.env.REMOTION_SKIP_AWS_CREDENTIALS_CHECK = "1";
Remotion 将不会检查凭证,如果未设置凭证也不会抛出错误。
但是,如果存在配置错误,您仍然可能会从 AWS SDK 得到错误。
还请阅读关于禁用缓存客户端的注意事项。
禁用缓存v4.0.160
为了节省内存并加快初始化速度,AWS 客户端被缓存起来。
缓存键基于凭证和区域。
如果您选择了跳过凭证检查,该实例将在进程的生命周期内被缓存。
如果您想禁用缓存,请将 REMOTION_SKIP_AWS_CREDENTIALS_CHECK
环境变量设置为任何值。
您不太可能需要设置这个值。只有在您在 API 调用之间更改身份验证方式时才需要。