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

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

Job 排队

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

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

您可以在控制台中开启作业排队功能,也可以设置AllowDeferredExecution字段中的JobExecutionSettings参数到true当你打电话给StartTranscriptionJobAPI。

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

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

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

您可以在控制台中查看排队作业的进度,也可以使用GetTranscriptionJobAPI。当作业排队时,Status字段中的TranscriptionJob返回的对象StartTranscriptionJobAPI 设置为QUEUED. 状态将变为IN_PROGRESS当 Amazon Transcribe 开始处理音频,然后将其中任一COMPLETED要么FAILED处理完成时。您可以使用TranscriptionJobName字段与GetTranscriptionJobAPI 来监控作业状态。

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

IAM 作业队列策略

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

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

信任策略

用于执行转录的数据访问角色必须具有允许 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/*" ] } }

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

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

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-west-2:111122223333:key/input-bucket-key-id" ] } }

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

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

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:GenerateDataKey*" ], "Resource": [ "arn:aws:kms:us-west-2:111122223333:key/output-bucket-key-id" ] } }