本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
作业队列
相比于并发处理,使用作业队列可以提交更多的转录作业请求。如果不使用作业队列,一旦达到允许的并发请求配额,则必须等到一个或多个请求完成后才能提交新请求。
对于转录作业请求,可以选择作业队列。通话后分析请求会自动启用作业队列。
如果您启用任务队列,则 Amazon Transcribe 会创建一个包含所有超出限制的请求的队列。请求完成后,系统会立即从您的队列中提取一个新请求并进行处理。排队的请求按照先进先出 (FIFO) 顺序进行处理。
您最多可以向队列添加 10000 个作业。如果超过此限制,您会收到 LimitExceededConcurrentJobException
错误。为了保持最佳性能,最多 Amazon Transcribe 只能使用配额的 90%(带宽比为 0.9)来处理排队的作业。请注意,这些是默认值,可以根据请求相应增加。
提示
您可以在《AWS 一般参考》中找到 Amazon Transcribe 资源的默认限制和配额列表。可以根据请求增加其中的一些默认值。
如果您启用了作业队列但未超过并发请求的配额,则所有请求都将并发处理。
启用作业队列
您可以使用、或启用作业队列 AWS SDKs;有关示例 AWS Management ConsoleAWS CLI,请参阅以下内容;有关示例,请参阅以下内容:
-
在导航窗格中,选择转录作业,然后选择创建作业(右上角)。这将打开指定作业详细信息页面。
-
在作业设置框中,有一个其它设置面板。如果展开此面板,则可以选中添加到作业队列框来启用作业队列。
-
在指定作业详细信息页面上填写要包含的任何其它字段,然后选择下一步。此时您将会看到配置作业 - 可选页面。
-
选择创建作业以运行您的转录作业。
此示例使用带有AllowDeferredExecution
子job-execution-settings
参数的start-transcription-jobAllowDeferredExecution
,则还必须包括 DataAccessRoleArn
。
有关更多信息,请参阅StartTranscriptionJob
和JobExecutionSettings
。
aws transcribe start-transcription-job \ --region
us-west-2
\ --transcription-job-namemy-first-transcription-job
\ --media MediaFileUri=s3://amzn-s3-demo-bucket
/my-input-files
/my-media-file
.flac
\ --output-bucket-nameamzn-s3-demo-bucket
\ --output-keymy-output-files
/ \ --language-codeen-US
\ --job-execution-settings AllowDeferredExecution=true,DataAccessRoleArn=arn:aws:iam::111122223333
:role/ExampleRole
以下是另一个使用start-transcription-job
aws transcribe start-transcription-job \ --region
us-west-2
\ --cli-input-json file://my-first-queueing-request
.json
my-first-queueing-request.json 文件包含以下请求正文。
{ "TranscriptionJobName": "
my-first-transcription-job
", "Media": { "MediaFileUri": "s3://amzn-s3-demo-bucket
/my-input-files
/my-media-file
.flac
" }, "OutputBucketName": "amzn-s3-demo-bucket
", "OutputKey": "my-output-files
/", "LanguageCode": "en-US
", "JobExecutionSettings": { "AllowDeferredExecution": true, "DataAccessRoleArn": "arn:aws:iam::111122223333
:role/ExampleRole
" } }
此示例使用 start_transcription_AllowDeferredExecution
参数启用作业队列。 AWS SDK for Python (Boto3) 请注意,如果您在请求中包含 AllowDeferredExecution
,则还必须包括 DataAccessRoleArn
。有关更多信息,请参阅StartTranscriptionJob
和JobExecutionSettings
。
有关使用的其他示例 AWS SDKs,包括特定功能示例、场景示例和跨服务示例,请参阅本章。使用 Amazon Transcribe 的代码示例 AWS SDKs
from __future__ import print_function import time import boto3 transcribe = boto3.client('transcribe', '
us-west-2
') job_name = "my-first-queueing-request
" job_uri = "s3://amzn-s3-demo-bucket
/my-input-files
/my-media-file
.flac
" transcribe.start_transcription_job( TranscriptionJobName = job_name, Media = { 'MediaFileUri': job_uri }, OutputBucketName = 'amzn-s3-demo-bucket
', OutputKey = 'my-output-files
/', LanguageCode = 'en-US
', JobExecutionSettings = { 'AllowDeferredExecution': True, 'DataAccessRoleArn': 'arn:aws:iam::111122223333
:role/ExampleRole
' } ) while True: status = transcribe.get_transcription_job(TranscriptionJobName = job_name) if status['TranscriptionJob']['TranscriptionJobStatus'] in ['COMPLETED', 'FAILED']: break print("Not ready yet...") time.sleep(5) print(status)
您可以通过 AWS Management Console 或提交GetTranscriptionJob
请求来查看排队作业的进度。当作业在排队时,Status
为 QUEUED
。当作业开始处理时,该状态会更改为 IN_PROGRESS
,在处理完成后,该状态会更改为 COMPLETED
或 FAILED
。