

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

# 使用批处理命令创建和删除
<a name="about-batch-update-schedule"></a>

要在通道计划中创建和删除操作，请使用批处理更新计划命令。此命令允许您在一个请求中执行多个操作。无需一个命令用于创建操作，另一个用于删除操作。

**重要**  
使用已启动且正在运行的频道时，使用**batch-update-schedule**命令添加或删除操作。仅对空闲状态的通道使用 **delete-schedule** 命令。**delete-schedule** 命令将删除所有计划的操作，如果在实时通道上使用，可能会导致服务中断。

您将按如下方式使用命令：
+ 提交*单个*请求，例如执行以下操作的请求：
  + 创建一个操作。
  + 删除一个操作。
+ 提交*批处理*请求，例如一个执行以下操作的请求：
  + 创建多个操作。
  + 删除多个操作。
  + 创建一个或多个操作以及删除一个或多个操作。

**重要**  
在集合了创建操作和删除操作的命令中，删除操作*始终*在创建操作之前执行。这意味着，在 MediaLive 将创建操作添加到计划之前，会将删除操作从计划中删除。

**Topics**
+ [批处理请求的工作原理](how-batch-schedule-requests-work.md)
+ [不同界面中的批处理命令](batchupdatecommand-interfaces.md)
+ [不同界面中的 JSON 有效载荷](batchupdatecommand-payloads.md)

# 批处理请求的工作原理
<a name="how-batch-schedule-requests-work"></a>

批处理旨在使所有操作一起通过或失败。因此，AWS Elemental MediaLive 会同时验证批处理操作。 MediaLive 执行以下验证：
+ 它会确保创建或删除的每个操作都有显式或隐式的启动时间，且至少为未来 15 秒。
+ 如果操作参考计划中的现有操作，其将确保对现有操作的参考正确。例如，跟随输入切换包括对其所跟随的操作的参考。该操作必须存在。

如果对任一操作的验证失败，则对批处理中所有操作的验证都将失败。

如果您不希望操作一起通过或失败，请勿提交批处理。相反，请在每个操作的批处理更新计划命令中创建该操作。

如果验证成功，则无论操作的开始时间如何，都将在创建请求之前 MediaLive 处理所有删除请求。

**示例 1**  
批处理的重要用途是，执行必须一起通过或失败的多个操作。例如，假设您要删除公司徽标并立即插入 splice\$1insert（以便转到广告效用）。为此，您必须创建一个操作来删除徽标，并需要另一个操作来插入 splice\$1insert。但是，如果 splice\$1 MediaLive insert 操作失败，则不想插入移除操作，反之亦然。如果两个操作都失败，那就更好了，因为这可以让您修复格式错误的操作，然后重新提交这两个操作。

因此，在一个批处理更新计划命令中同时提交两个操作。

**示例 2**  
批处理的另一个重要用途是，修复计划中操作的错误。例如，您可能需要修复尚未启动并且使用错误的启动时间创建的图像叠加。为此，您需要提交一个使用 JSON 的批处理更新计划命令，其中包含以下内容：
+ 删除用于激活图像叠加的原始操作的有效载荷。此操作的启动时间不正确。
+ 添加新操作以激活相同图像叠加的有效载荷。此操作的启动时间正确。

# 不同界面中的批处理命令
<a name="batchupdatecommand-interfaces"></a>

在不同的界面中，批处理更新计划命令的表示方式不同：
+ 在中 AWS CLI，命令是`batch-update-schedule`。
+ 在 API 中，命令由 `channels/channelId/schedule` 上的 `HTTP PUT` 表示。
+ 在中 AWS SDKs，命令由适用于该 SDK 语言的构造表示。

# 不同界面中的 JSON 有效载荷
<a name="batchupdatecommand-payloads"></a>

在不同的界面中，命令的 JSON 有效载荷有所不同：
+ 在中 AWS CLI，有效载荷的内容取决于您如何使用以下命令：
  + 您可以输入带有以下两个参数的命令：`channel-id` 和 `--cli-input-json`。在这种情况下，您将创建一个重复通道 ID 并包含 JSON 有效载荷的文件。
  + 您可以输入包含三个参数的命令：一个用于通道 ID，一个用于创建操作的 JSON 有效载荷（如果适用），另一个用于删除操作的 JSON 有效载荷（如果适用）。您在命令中传递有效载荷。如果两个参数都存在，则每个参数使用单独的有效载荷。但是这两个有效载荷是在一个批处理中进行验证和执行的。

  的有效载荷始终 AWS CLI 是 pascal case（大驼壳）。
+ 在 API 中，有一个分为两部分的有效载荷，一个 `CREATES` 部分和一个 `DELETES` 部分。一个请求可以包含一个部分或两个部分。

  API 的负载始终为变量名使用驼峰拼写法，为类使用 Pascal 拼写。
+ 在中 AWS SDKs，JSON 负载由适用于该 SDK 语言的结构表示。

为了更熟悉各个操作，我们建议您使用 MediaLive 控制台创建操作。创建操作后，使用相应接口（例如， AWS CLI 或 SDK）中的[DescribeSchedule](viewing-schedule-using-cli.md)命令来获取整个计划的原始 JSON 负载。然后，可以复制各个操作并将它们另存为要在以编程方式工作时使用的模型。