端到端批处理翻译工作流

批处理文档翻译是具有固定 API 调用序列的异步工作流。 它不同于 异步翻译,该服务在后台处理文档并将翻译的输出存储在Azure Blob 存储目标容器中。 由于每个步骤都依赖于上一步,因此了解完整序列有助于构建可靠的重试安全集成。 在这里,我们将引导你按顺序完成每个步骤:

  • 提交翻译作业并获取返回的作业 ID。
  • 轮询 作业级别和文档级状态,直到作业达到终端状态。
  • 检索你的 Azure Blob 存储 目标容器中的翻译输出。
  • (可选)列出 所有作业或 取消 正在进行的作业。

工作流概述

批处理翻译 API 公开以下操作。 每个步骤都以上一步为基础:在调用任何状态查询或取消端点之前,您需要先获取步骤 2 中的作业 ID。

  1. 启动批量翻译作业POST 提交一个包含源容器和目标容器 URL 以及目标语言的请求。 该服务会将作业加入队列,并返回 202 Accepted 响应。
  2. 记录作业 ID:从 operation-location 响应头中提取 GUID。 所有后续的状态查询和取消调用都需要此 ID。
  3. GET 作业状态GET 总体作业状态和文档摘要。 轮询,直到状态变为以下终端状态之一:SucceededFailedCancelledValidationFailed
  4. 获取所有文档的状态GET 已完成或失败的作业中每个文档的状态。 支持对大型文档集进行分页、排序和筛选。
  5. 获取特定文档的状态GET通过 jobIddocumentId 获取单个文档的状态和错误详情。 使用此功能可获取输出 URL 或诊断单个文档的失败问题。
  6. 列出所有作业GET 提交到资源的所有翻译作业,以及分页和筛选。 可用于审计或找回作业 ID。
  7. 取消作业DELETE 取消处于 NotStartedRunning 状态的作业。 已完成的文档将保留在目标容器中并按正常计费。

步骤 1:启动批处理翻译作业

使用“开始批处理翻译 API”提交异步翻译作业。 请求正文指定源和目标Azure Blob 存储容器 URL 和目标语言。 每种目标语言都需要一个唯一的 targetUrl

   POST {endpoint}/translator/document/batches?api-version=2026-03-01

Important

如果目标容器中已存在同名的文件,作业将失败。 在提交之前,请确保目标容器为空或文件名不冲突。

有关完整请求架构,请参阅 “开始批处理翻译”。

步骤 2:获取作业 ID

从随 operation-location 响应返回的 202 Accepted 响应标头中提取并存储作业 ID。 作业 ID 是该 URL 路径段中的 GUID,所有后续的状态查询和取消调用都需要用到它。

operation-location: {endpoint}/translator/document/batches/{jobId}?api-version=2026-03-01

步骤 3:获取作业状态

轮询作业状态端点,以获取翻译作业的整体状态以及文档级结果的摘要。 重复调用此终结点,直到状态从 NotStartedRunning 转换为终态。

GET {endpoint}/translator/document/batches/{jobId}?api-version=2026-03-01

响应包括返回以下值之一status的字段:NotStarted、、、RunningSucceededFailedCancelledCancellingValidationFailed

有关响应详细信息,请参阅 GET 翻译状态

步骤 4:获取作业中所有文档的状态

检索作业中每个文档的翻译状态。 当整个作业状态显示 SucceededFailed 需要确定哪些文档已完成、失败或被跳过时,请使用此操作。 响应支持分页、排序和筛选,以便可以有效地查询大型作业。

GET {endpoint}/translator/document/batches/{jobId}/documents?api-version=2026-03-01

有关响应详细信息,请参阅 所有文档的 GET 状态

步骤 5:获取特定文档的状态

使用作业 ID 和 documentId 检索单个文档的状态详细信息。 这是获取错误详细信息或一个文档的输出 URL 的最有效方法,无需分页完整文档列表。 documentId 会在 获取所有文档的状态 操作的响应中返回。

GET {endpoint}/translator/document/batches/{jobId}/documents/{documentId}?api-version=2026-03-01

有关响应详细信息,请参阅 GET 文档状态

步骤 6:列出所有作业

获取所有已提交到您的资源的翻译作业。 此操作支持分页和筛选,这对于审核作业历史记录、跟踪提交模式或恢复在提交时未捕获的作业 ID 非常有用。

GET {endpoint}/translator/document/batches?api-version=2026-03-01

有关响应详细信息,请参阅 所有翻译作业的 GET 状态

步骤 7:取消作业

取消处于 NotStartedRunning 状态的作业。 该服务会尝试停止处理,但已完成翻译的任何文档都将保留在目标容器中并按正常计费。 无法取消处于终端状态(Succeeded、、FailedCancelled)的作业。

DELETE {endpoint}/translator/document/batches/{jobId}?api-version=2026-03-01

有关请求详细信息,请参阅 “取消翻译”。