

# 触发
<a name="aws-glue-api-jobs-trigger"></a>

触发器 API 介绍与在 AWS Glue 中创建、更新或删除以及开启和停止任务触发器相关的数据类型和 API。

## 数据类型
<a name="aws-glue-api-jobs-trigger-objects"></a>
+ [Trigger 结构](#aws-glue-api-jobs-trigger-Trigger)
+ [TriggerUpdate 结构](#aws-glue-api-jobs-trigger-TriggerUpdate)
+ [Predicate 结构](#aws-glue-api-jobs-trigger-Predicate)
+ [Condition 结构](#aws-glue-api-jobs-trigger-Condition)
+ [Action 结构](#aws-glue-api-jobs-trigger-Action)
+ [EventBatchingCondition 结构](#aws-glue-api-jobs-trigger-EventBatchingCondition)

## Trigger 结构
<a name="aws-glue-api-jobs-trigger-Trigger"></a>

有关特定触发器的信息。

**字段**
+ `Name` – UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  触发器的名称。
+ `WorkflowName` – UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  与触发器关联的工作流程的名称。
+ `Id` – UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  留待将来使用。
+ `Type` – UTF-8 字符串（有效值：`SCHEDULED` \$1`CONDITIONAL` \$1 `ON_DEMAND` \$1 `EVENT`）。

  触发器的类型。
+ `State` – UTF-8 字符串（有效值：`CREATING` \$1 `CREATED` \$1 `ACTIVATING` \$1 `ACTIVATED` \$1 `DEACTIVATING` \$1 `DEACTIVATED` \$1 `DELETING` \$1 `UPDATING`）。

  触发器的当前状态。
+ `Description` – 描述字符串，长度不超过 2048 个字节，与 [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri) 匹配。

  此触发器的描述。
+ `Schedule` – UTF-8 字符串。

  用于指定计划的 `cron` 表达式 (请参阅[用于作业和爬网程序的基于时间的计划](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html)）。例如，要每天 12:15 UTC 运行某些任务，您应该指定：`cron(15 12 * * ? *)`。
+ `Actions` – [操作](#aws-glue-api-jobs-trigger-Action) 对象的数组。

  通过此触发器发起的操作。
+ `Predicate` – 一个 [谓词](#aws-glue-api-jobs-trigger-Predicate) 对象。

  此触发器的谓词，用于定义触发器将在何时触发。
+ `EventBatchingCondition` – 一个 [EventBatchingCondition](#aws-glue-api-jobs-trigger-EventBatchingCondition) 对象。

  在 EventBridge 事件触发器触发之前必须满足的批处理条件（接收的事件数量或批处理时间段已过期）。

## TriggerUpdate 结构
<a name="aws-glue-api-jobs-trigger-TriggerUpdate"></a>

提供用于更新触发器的信息的结构。此对象通过完全覆盖以前的触发器定义来更新以前的触发器定义。

**字段**
+ `Name` – UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  留待将来使用。
+ `Description` – 描述字符串，长度不超过 2048 个字节，与 [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri) 匹配。

  此触发器的描述。
+ `Schedule` – UTF-8 字符串。

  用于指定计划的 `cron` 表达式 (请参阅[用于作业和爬网程序的基于时间的计划](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html)）。例如，要每天 12:15 UTC 运行某些任务，您应该指定：`cron(15 12 * * ? *)`。
+ `Actions` – [操作](#aws-glue-api-jobs-trigger-Action) 对象的数组。

  通过此触发器发起的操作。
+ `Predicate` – 一个 [谓词](#aws-glue-api-jobs-trigger-Predicate) 对象。

  此触发器的谓词，用于定义触发器将在何时触发。
+ `EventBatchingCondition` – 一个 [EventBatchingCondition](#aws-glue-api-jobs-trigger-EventBatchingCondition) 对象。

  在 EventBridge 事件触发器触发之前必须满足的批处理条件（接收的事件数量或批处理时间段已过期）。

## Predicate 结构
<a name="aws-glue-api-jobs-trigger-Predicate"></a>

定义触发器的谓词，确定触发器何时触发。

**字段**
+ `Logical` – UTF-8 字符串（有效值：`AND` \$1 `ANY`）。

  如果只列出了一个条件，则为可选字段。如果列出了多个条件，则此字段为必需字段。
+ `Conditions` – [状况](#aws-glue-api-jobs-trigger-Condition) 对象数组，不超过 500 个结构。

  确定触发器将何时触发的条件列表。

## Condition 结构
<a name="aws-glue-api-jobs-trigger-Condition"></a>

定义触发器将触发的条件。

**字段**
+ `LogicalOperator` – UTF-8 字符串（有效值：`EQUALS`）。

  一个逻辑运算符。
+ `JobName` – UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  此条件应用于其 `JobRuns` 并且此触发器在其上等待的作业的名称。
+ `State` - UTF-8 字符串（有效值：`STARTING` \$1 `RUNNING` \$1 `STOPPING` \$1 `STOPPED` \$1 `SUCCEEDED` \$1 `FAILED` \$1 `TIMEOUT` \$1 `ERROR` \$1 `WAITING` \$1 `EXPIRED`）。

  条件状态。目前，触发器可侦听的仅有作业为 `SUCCEEDED`、`STOPPED`、`FAILED` 和 `TIMEOUT`。触发器可侦听的仅有爬网程序状态为 `SUCCEEDED`、`FAILED` 和 `CANCELLED`。
+ `CrawlerName` – UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  此条件应用于的爬网程序的名称。
+ `CrawlState` – UTF-8 字符串（有效值：`RUNNING` \$1 `CANCELLING` \$1 `CANCELLED` \$1 `SUCCEEDED` \$1 `FAILED` \$1 `ERROR`）。

  此条件应用于的爬网程序的状态。

## Action 结构
<a name="aws-glue-api-jobs-trigger-Action"></a>

定义触发器发起的操作。

**字段**
+ `JobName` – UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  要运行的任务的名称。
+ `Arguments` – 键值对的映射数组。

  每个键是一个 UTF-8 字符串。

  每个值是一个 UTF-8 字符串。

  此触发器触发时使用的作业参数。对于此任务运行，它们会替换任务定义本身中的默认参数集。

  可以在此处指定您自己的任务执行脚本使用的参数以及 AWS Glue 本身使用的参数。

  有关如何指定和使用您自己的任务参数的信息，请参阅开发人员指南中的[在 Python 中调用 AWS Glue API ](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html)主题。

  有关 AWS Glue 用于设置任务的键值对的信息，请参阅开发人员指南中的[由 AWS Glue 使用的特殊参数](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html)主题。
+ `Timeout` - 数字（整数），至少为 1。

  `JobRun` 超时（分钟） 这是任务运行在终止并进入 `TIMEOUT` 状态前可以使用资源的最长时间。此值会覆盖父任务中设置的超时值。

  作业的超时值必须小于 7 天或 10080 分钟。否则，作业会引发异常。

  该值留空时，超时值默认为 2880 分钟。

  任何超时值大于 7 天的现有 AWS Glue 作业，该值默认为 7 天。例如，若为批处理作业指定了 20 天的超时值，则该作业将在第 7 天停止。

  对于流式传输作业，如果设置了维护时段，则将于 7 天后在维护时段内重新启动。
+ `SecurityConfiguration` – UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  该操作将使用的 `SecurityConfiguration` 结构的名称。
+ `NotificationProperty` – 一个 [NotificationProperty](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-NotificationProperty) 对象。

  指定任务运行通知的配置属性。
+ `CrawlerName` – UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  要用于此操作的爬网程序的名称。

## EventBatchingCondition 结构
<a name="aws-glue-api-jobs-trigger-EventBatchingCondition"></a>

在 EventBridge 事件触发器触发之前必须满足的批处理条件（接收的事件数量或批处理时间段已过期）。

**字段**
+ `BatchSize` – *必填*：数字（整数），不小于 1 或大于 100。

  在 EventBridge 事件触发器触发之前，必须从 Amazon EventBridge 接收的事件数。
+ `BatchWindow` – 数字（整数），不小于 1 或大于 900。

  EventBridge 事件触发器触发的时段（以秒为单位）。时段在收到第一个事件时开始计算。

## 操作
<a name="aws-glue-api-jobs-trigger-actions"></a>
+ [CreateTrigger 操作（Python：create\$1trigger）](#aws-glue-api-jobs-trigger-CreateTrigger)
+ [StartTrigger 操作（Python：start\$1trigger）](#aws-glue-api-jobs-trigger-StartTrigger)
+ [GetTrigger 操作（Python：get\$1trigger）](#aws-glue-api-jobs-trigger-GetTrigger)
+ [GetTriggers 操作（Python：get\$1triggers）](#aws-glue-api-jobs-trigger-GetTriggers)
+ [UpdateTrigger 操作（Python：update\$1trigger）](#aws-glue-api-jobs-trigger-UpdateTrigger)
+ [StopTrigger 操作（Python：stop\$1trigger）](#aws-glue-api-jobs-trigger-StopTrigger)
+ [DeleteTrigger 操作（Python：delete\$1trigger）](#aws-glue-api-jobs-trigger-DeleteTrigger)
+ [ListTriggers 操作（Python：list\$1triggers）](#aws-glue-api-jobs-trigger-ListTriggers)
+ [BatchGetTriggers 操作（Python：batch\$1get\$1triggers）](#aws-glue-api-jobs-trigger-BatchGetTriggers)

## CreateTrigger 操作（Python：create\$1trigger）
<a name="aws-glue-api-jobs-trigger-CreateTrigger"></a>

创建新的触发器。

可能会记录任务参数。不要将明文密钥作为参数传递。如果您想要将密钥保留在作业内，请通过 AWS Glue 连接、AWS Secrets Manager 或其他密钥管理机制检索密钥。

**请求**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  触发器的名称。
+ `WorkflowName` – UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  与触发器关联的工作流程的名称。
+ `Type` – *必填*：UTF-8 字符串（有效值：`SCHEDULED` \$1 `CONDITIONAL` \$1 `ON_DEMAND` \$1 `EVENT`）。

  新触发器的类型。
+ `Schedule` – UTF-8 字符串。

  用于指定计划的 `cron` 表达式 (请参阅[用于作业和爬网程序的基于时间的计划](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html)）。例如，要每天 12:15 UTC 运行某些任务，您应该指定：`cron(15 12 * * ? *)`。

  当触发类型为 SCHEDULED 时，此字段为必需字段。
+ `Predicate` – 一个 [谓词](#aws-glue-api-jobs-trigger-Predicate) 对象。

  指定新的触发器应何时触发的谓词。

  当触发类型为 `CONDITIONAL` 时，此字段为必需字段。
+ `Actions` – *必填：*[操作](#aws-glue-api-jobs-trigger-Action) 对象的数组。

  触发器触发时所发起的操作。
+ `Description` – 描述字符串，长度不超过 2048 个字节，与 [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri) 匹配。

  新触发器的描述。
+ `StartOnCreation` – 布尔值。

  设置 `true` 为，可在创建时开启 `SCHEDULED` 和 `CONDITIONAL` 触发器。`ON_DEMAND` 触发器不支持 True。
+ `Tags` – 键值对的映射数组，不超过 50 对。

  每个键都是一个 UTF-8 字符串，长度不少于 1 个字节或超过 128 个字节。

  每个值是一个 UTF-8 字符串，不超过 256 个字节。

  要用于此触发器的标签。您可以使用标签来限制对触发器的访问。有关 AWS Glue 中的标签的更多信息，请参阅开发人员指南中的 [AWS Glue 中的 AWS 标签](https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html)。
+ `EventBatchingCondition` – 一个 [EventBatchingCondition](#aws-glue-api-jobs-trigger-EventBatchingCondition) 对象。

  在 EventBridge 事件触发器触发之前必须满足的批处理条件（接收的事件数量或批处理时间段已过期）。

**响应**
+ `Name` – UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  触发器的名称。

**错误**
+ `AlreadyExistsException`
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `IdempotentParameterMismatchException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `ConcurrentModificationException`

## StartTrigger 操作（Python：start\$1trigger）
<a name="aws-glue-api-jobs-trigger-StartTrigger"></a>

启动现有触发器。请参阅[触发作业](https://docs.aws.amazon.com/glue/latest/dg/trigger-job.html)了解有关如何启动不同类型的触发器的信息。

**请求**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  要启动的触发器名称。

**响应**
+ `Name` – UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  已启动的触发器名称。

**错误**
+ `InvalidInputException`
+ `InternalServiceException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `ConcurrentRunsExceededException`

## GetTrigger 操作（Python：get\$1trigger）
<a name="aws-glue-api-jobs-trigger-GetTrigger"></a>

检索触发器的定义。

**请求**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  要检索的触发器名称。

**响应**
+ `Trigger` – 一个 [触发器](#aws-glue-api-jobs-trigger-Trigger) 对象。

  请求的触发器定义。

**错误**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetTriggers 操作（Python：get\$1triggers）
<a name="aws-glue-api-jobs-trigger-GetTriggers"></a>

获取与一个作业关联的所有触发器。

**请求**
+ `NextToken` – UTF-8 字符串。

  延续标记 (如果这是延续调用)。
+ `DependentJobName` – UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  要为其检索触发器的作业的名称。返回可以启动此作业的触发器，如果没有这样的触发器，则返回所有触发器。
+ `MaxResults` – 数字（整数），不小于 1 或大于 200。

  响应的最大大小。

**响应**
+ `Triggers` – [触发器](#aws-glue-api-jobs-trigger-Trigger) 对象的数组。

  指定作业的触发器列表。
+ `NextToken` – UTF-8 字符串。

  延续令牌 (如果尚未返回所有请求的触发器)。

**错误**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## UpdateTrigger 操作（Python：update\$1trigger）
<a name="aws-glue-api-jobs-trigger-UpdateTrigger"></a>

更新触发器定义。

可能会记录任务参数。不要将明文密钥作为参数传递。如果您想要将密钥保留在作业内，请通过 AWS Glue 连接、AWS Secrets Manager 或其他密钥管理机制检索密钥。

**请求**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  要更新的触发器的名称。
+ `TriggerUpdate` – *必填：*一个 [TriggerUpdate](#aws-glue-api-jobs-trigger-TriggerUpdate) 对象。

  用来更新触发器的新值。

**响应**
+ `Trigger` – 一个 [触发器](#aws-glue-api-jobs-trigger-Trigger) 对象。

  生成的触发器定义。

**错误**
+ `InvalidInputException`
+ `InternalServiceException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `ConcurrentModificationException`

## StopTrigger 操作（Python：stop\$1trigger）
<a name="aws-glue-api-jobs-trigger-StopTrigger"></a>

停止指定的触发器。

**请求**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  要停止的触发器名称。

**响应**
+ `Name` – UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  已停止的触发器名称。

**错误**
+ `InvalidInputException`
+ `InternalServiceException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `ConcurrentModificationException`

## DeleteTrigger 操作（Python：delete\$1trigger）
<a name="aws-glue-api-jobs-trigger-DeleteTrigger"></a>

删除指定的触发器。未找到该触发器不会引发异常。

**请求**
+ `Name` – *必填：*UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  要删除的触发器的名称。

**响应**
+ `Name` – UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

  已删除的触发器的名称。

**错误**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ConcurrentModificationException`

## ListTriggers 操作（Python：list\$1triggers）
<a name="aws-glue-api-jobs-trigger-ListTriggers"></a>

检索此 AWS 账户中所有触发器资源的名称或带指定标签的资源。此操作可让您查看您账户中可用的资源及其名称。

此操作采用可选的 `Tags` 字段，您可以将其用作响应的筛选器，以便将标记的资源作为一个组进行检索。如果您选择使用标签筛选，则仅检索带标签的资源。

**请求**
+ `NextToken` – UTF-8 字符串。

  延续令牌 (如果这是延续请求)。
+ `DependentJobName` – UTF-8 字符串，长度不少于 1 个字节或超过 255 个字节，与 [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine) 匹配。

   要为其检索触发器的作业的名称。返回可启动此作业的触发器。如果没有这样的触发器，则返回所有触发器。
+ `MaxResults` – 数字（整数），不小于 1 或大于 200。

  要返回的列表的最大大小。
+ `Tags` – 键值对的映射数组，不超过 50 对。

  每个键都是一个 UTF-8 字符串，长度不少于 1 个字节或超过 128 个字节。

  每个值是一个 UTF-8 字符串，不超过 256 个字节。

  指定仅返回这些已标记的资源。

**响应**
+ `TriggerNames` – UTF-8 字符串数组。

  账户中所有触发器的名称或带指定标签的触发器。
+ `NextToken` – UTF-8 字符串。

  延续令牌 (如果返回的列表不包含上一个可用的指标)。

**错误**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## BatchGetTriggers 操作（Python：batch\$1get\$1triggers）
<a name="aws-glue-api-jobs-trigger-BatchGetTriggers"></a>

返回给定触发器名称列表的资源元数据的列表。调用 `ListTriggers` 操作后，您可以调用此操作来访问您有权访问的数据。此操作支持所有 IAM 权限，包括使用标签的权限条件。

**请求**
+ `TriggerNames` – *必填*：UTF-8 字符串数组。

  触发器名称列表，这些名称可能是通过 `ListTriggers` 操作返回的名称。

**响应**
+ `Triggers` – [触发器](#aws-glue-api-jobs-trigger-Trigger) 对象的数组。

  触发器定义的列表。
+ `TriggersNotFound` – UTF-8 字符串数组。

  未找到触发器名称的列表。

**错误**
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`