作业排队 - Amazon Transcribe
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

作业排队

向 Amazon Transcribe 发送转录作业时,可以同时运行的作业总数是有限制的。默认情况下,有 100 个作业槽。达到限制后,您必须等到一个或多个作业完成并释放槽后,才能发送下一个作业。

要对作业进行排队,使其在有可用的槽时立即运行,您可以使用作业排队。作业排队会为您创建一个包含您的作业的队列。当有可用的槽时,Amazon Transcribe 会从队列中提取下一个作业,并立即开始对其进行处理。为了允许提交和处理新作业的资源,Amazon Transcribe 最多使用 90% 的槽来处理队列中的作业。

您可以在控制台中开启作业排队功能,也可以在调用 StartTranscriptionJob 操作时,将 JobExecutionSettings 参数中的 AllowDeferredExecution 字段设置为 true

当您在开启作业排队功能的情况下提交作业时,会发生以下一种情况。

  • 如果有可用的槽,系统会立即处理作业。

  • 如果没有可用的槽,则系统会将作业发送至队列。当出现可用的槽时,系统会按 FIFO(先进先出)的顺序处理队列中的作业。

您可以使用控制台或使用 GetTranscriptionJob 操作查看队列中作业的进度。当作业排队时, Status 字段 TranscriptionJob 对象返回 StartTranscriptionJob 操作设置为 QUEUED。状态变为 IN_PROGRESS 当 Amazon Transcribe 开始处理音频,然后更改为 COMPLETEDFAILED 处理完成后。您可以将 TranscriptionJobName 字段与 GetTranscriptionJob 操作结合使用来监视作业的状态。

您最多可以向队列提交 10000 个作业。如果超过 10000 个作业,您会收到 LimitExceededConcurrentJobException 异常。

适用于作业排队的 IAM 策略

要使用作业排队功能,您需要向 Amazon Transcribe 提供数据访问角色,以允许其访问要转录的音频文件。您可以在控制台中选择数据访问角色,也可以使用 StartTranscriptionJob 操作的 JobExecutionSettings 参数的 DataAccessRoleArn 字段来指定要使用的角色。

您应根据以下几个因素决定使用哪些角色策略:输入文件的存储位置、输出文件的存储位置以及是否使用 AWS KMS 客户主密钥 (CMK) 对输出进行加密。本部分中的 IAM 策略是该角色的必需策略。这些策略使 Amazon Transcribe 能够代表您执行操作、访问您作业的输入和输出位置,并让 Amazon Transcribe 能够使用 AWS KMS CMK 来对转录进行加密。

信任策略

用于执行转录的数据访问角色必须具有允许 Amazon Transcribe 承担该角色的信任策略。您可以使用以下信任策略。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "transcribe.amazonaws.com", ] }, "Action": "sts:AssumeRole" } ] }

输入存储桶策略

以下 IAM 策略可授予数据访问角色从输入存储桶读取文件的权限。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::input-bucket-name", "arn:aws:s3:::input-bucket-name/*" ] } }

输出存储桶策略

以下 IAM 策略可授予数据访问角色将文件写入输出存储桶的权限。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::output-bucket-name/*" ] } }

输入存储桶的 AWS KMS 密钥策略

如果您对输入文件进行了加密,则数据访问角色需要具有使用 AWS KMS 密钥来解密文件的权限。以下策略可提供该权限。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:::input-bucket-cmk-name" ] } }

输出存储桶的 AWS KMS 密钥策略

要对输出转录进行加密,数据访问角色需要具有使用 AWS KMS 密钥的权限。以下策略可提供该权限。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:GenerateDataKey*" ], "Resource": [ "arn:aws:kms:::output-bucket-cmk-name" ] } }