

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

# 部署自动化
<a name="deploying-automations"></a>

在 Amazon Quick Automate 中创建并测试自动化后，下一步是**部署**它们，以便它们可以在触发器上定期运行。部署使自动化可以运行并准备执行。您可以向已部署的自动化添加触发器，使其按预定义的计划运行。部署包括配置运行时设置、为人工在环任务分配用户、验证凭据和集成。

本节介绍部署过程的每个步骤，以及如何配置自动化以实现可靠性、安全性和最佳性能。

## 先决条件
<a name="deployment-prerequisites"></a>

在部署自动化之前，请确保完成以下步骤：
+ **自动化经过全面测试**-通过端到端测试验证您的自动化，以确认所有逻辑、操作和代理交互均按预期运行。
+ **已提交部署的版本**-只能部署已提交的自动化版本。在继续操作之前，请查看您的更改，完成版本并提交。
+ **已配置集成**-如果您的自动化通过 API 与 Salesforce 或 Jira 等外部应用程序进行交互，请确保配置了所有必要的集成。
  + 导航到左侧面板中的 “**连接” → “集成**” 以创建新的集成。
  + 目前，Amazon Quick Automate 仅支持 “**操作**” 选项卡下可用的集成。
  + 创建集成操作后，将其与要使用该操作的**自动化组**相关联。
  + 然后，相关的操作将出现在画布中。在部署期间，您可以选择要由已部署的自动化使用的相应连接。
+ **已配置凭据**-验证您的自动化所需的所有凭据是否设置正确。

## 部署自动化
<a name="deploying-an-automation"></a>

您可以直接从画布部署自动化，方法是单击 “部署”，或者导航到自动化登录页面上的 “部署” 选项卡。启动部署后，系统将引导您完成一系列步骤以完成配置和发布过程。

### 发行版详细信息
<a name="release-details"></a>

在**版本详细信息**页面上，选择要部署的自动化版本。只有已**提交的版本**可供部署，并且会显示在下拉列表中。

### 其他设置
<a name="additional-settings"></a>

其他设置包括：
+ **运行时配置**
+ **任务（适用于 HITL 任务）**
+ **访问**

#### 运行时配置
<a name="runtime-configuration"></a>

运行时配置是在开发、测试和生产等环境之间可能存在差异的参数。

例如，发送电子邮件的自动化步骤可能会在测试期间使用您的个人电子邮件地址，但在生产环境中应切换到共享的团队地址。在创作自动化时，可以将此类与环境相关的值定义为**运行时配置**。

在部署时，您可以查看和覆盖这些配置，以确保自动化在预期环境中正确运行。运行时参数可以包括：
+ 电子邮件地址或通知收件人
+ 特定于环境的文件路径或 URL

这种灵活性有助于在不同环境中保持单一的自动化定义，同时根据需要调整关键参数。

#### 任务
<a name="tasks"></a>

为需要人机交互的每项任务选择解析者用户或用户组。

#### 访问权限（凭证和连接）
<a name="access-credentials-connections"></a>

自动化通常需要连接到外部系统、数据库或服务。Amazon Quick Automate 提供了管理凭证和连接的安全方法，无需在自动化逻辑中嵌入敏感信息。

连接和凭证数据被安全存储和加密，并在运行时可供工作流程使用，而不会将其暴露给作者或最终用户。这种设计可确保将机密与自动化定义牢固分开，从而提高安全性和可维护性。

您可以存储和使用两种主要类型的证书：
+ **网站凭证**-用于需要网站登录（用户名和密码）的用户界面自动化步骤。
+ **操作凭证（集成）**-用于通过配置的集成（例如 Salesforce、Jira）连接 AWS 服务（例如 S3）或外部系统。

在部署时，请确保选择正确的凭据和连接，以便自动化可以安全、成功地访问所有必需的系统。

## 设置触发器
<a name="setting-up-triggers"></a>

触发器决定自动化的运行时间和方式。您可以将自动化配置为根据预定义的计划启动，也可以通过 Ama QuickSight zon API 以编程方式调用自动化。

### Schedules
<a name="setting-up-triggers-schedules"></a>

您可以将自动化配置为根据预定义的计划启动。要设置触发器，请执行以下操作：
+ 在 “部署” 页面上，单击 “创建触发器” 并配置规则。
+ 选择频率
+ 选择开始日期和时间（请注意，实际执行将在所选开始时间的 15 分钟内启动）
+ 选择结束日期和时间
+ 选择时区
+ Amazon 快速自动提供了内置的可扩展性。选择自动化的并行执行次数（每个触发器最多可以选择 10 个并行执行，在一个账户内的所有自动化中最多可以选择 50 个并行执行。 请联系 AWS）
+ 对于复杂的调度需求，你可以使用 cron 表达式来定义精确的运行模式。例如，要在每周一、周三和周五凌晨 2:30 运行自动化，可以使用 cron 表达式:。`30 2 * * 1,3,5`

### API 触发器
<a name="setting-up-triggers-api"></a>

Automation Job API 使您能够以编程方式启动和监控来自外部应用程序的自动化作业。您可以使用这些 API 调用带有自定义输入负载的已部署自动化，并通过 AWS SDK 和检索执行结果。 AWS CLI

Automation Job API 包括两个操作：
+ **StartAutomationJob**— 使用可选的输入有效载荷为已部署的自动化启动一项新作业。
+ **DescribeAutomationJob**— 检索指定任务的状态、时间戳以及可选的输入和输出负载。

这些 API 是亚马逊 QuickSight 服务命名空间的一部分。您可以通过 AWS SDK 中的`quicksight`命名空间访问它们，然后 AWS CLI。

有关 AWS SDK 和工具包的更多信息，请参阅[AWS 入门资源中心](https://aws.amazon.com/getting-started/tools-sdks/)。

#### 先决条件
<a name="api-triggers-prerequisites"></a>

在调用 Automation Job API 之前，请完成以下设置步骤。

##### 查找您的自动化标识符
<a name="api-triggers-find-identifiers"></a>

要调用 Automation Job API，你需要以下标识符：
+ **AWS 账户 ID** — 您的 12 位数 AWS 账户 ID。
+ **自动化组 ID** — 包含您的自动化的自动化组的唯一 ID。
+ **自动化 ID**-您要调用的自动化的唯一 ID。

当您打开任何自动化并部署版本时，可以在部署部分中找到自动化组 ID 和自动化 ID。

**要查找您的标识符**
+ 登录 Amazon Quick Automate。
+ 在左侧导航窗格中，选择 “**自动化**”。
+ 选择包含您的自动化的自动化组。
+ 选择自动化名称以打开自动化编辑器。
+ 选择**部署**选项卡。
+ 选择 “**操作” (‹)** 和 “**查看部署详细信息**”，即可在顶部的 “部署详细信息” 标题下方获取**自动化 ID** **和群组 ID**。

##### 配置 IAM 权限
<a name="api-triggers-configure-iam"></a>

Automation Job API 需要附加到您的 IAM 身份（用户、角色或群组）的 IAM 权限。每个操作都需要单独的权限。

**的许可 StartAutomationJob**

附上授予`quicksight:StartAutomationJob`操作权限的策略。将资源 ARN 的范围限定为要允许的特定自动化。

```
{
    "Version": "2012-10-17"		 	 	 ,
    "Statement": [
        {
            "Sid": "AllowStartAutomationJob",
            "Effect": "Allow",
            "Action": [
                "quicksight:StartAutomationJob"
            ],
            "Resource": [
                "arn:aws:quicksight:us-west-2:111122223333:automation-group/EXAMPLE-GROUP-ID/automation/EXAMPLE-AUTOMATION-ID"
            ]
        }
    ]
}
```

**的许可 DescribeAutomationJob**

附上授予`quicksight:DescribeAutomationJob`操作权限的策略。此操作的资源 ARN 包括任务 ID 段。要允许描述自动化下的任何作业，请使用通配符 (\*) 作为任务区段。

```
{
    "Version": "2012-10-17"		 	 	 ,
    "Statement": [
        {
            "Sid": "AllowDescribeAutomationJob",
            "Effect": "Allow",
            "Action": [
                "quicksight:DescribeAutomationJob"
            ],
            "Resource": [
                "arn:aws:quicksight:us-west-2:111122223333:automation-group/EXAMPLE-GROUP-ID/automation/EXAMPLE-AUTOMATION-ID"
            ]
        }
    ]
}
```

AWS 建议将每项权限限定为尽可能具体的资源 ARN，以遵循最小权限原则。有关更多信息，请参阅下列内容：
+ [Amazon 的 IAM 政策示例 QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/iam-policy-examples.html)
+ [操作、资源和条件键](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonquicksight.html)
+ [IAM JSON 策略元素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)

##### 部署您的自动化
<a name="api-triggers-deploy-automation"></a>

 StartAutomationJob API 仅针对已部署的自动化。在通过 API 调用自动化之前，您必须在 Amazon Quick Automate 控制台中提交并部署自动化。

#### StartAutomationJob
<a name="api-triggers-start-automation-job"></a>

为已部署的自动化启动一项新作业。该操作是异步的 — Amazon Quick Automate 接受请求，对任务进行排队，然后**JobId**立即返回。自动化在后台运行。如果自动化定义了输入架构，则 Amazon Quick Automate **InputPayload**会在接受任务之前根据架构进行验证。无效的有效载荷会导致**InvalidParameterValueException**。

##### 请求语法
<a name="start-job-request-syntax"></a>

```
POST /accounts/{{AwsAccountId}}/automation-groups/{{AutomationGroupId}}/automations/{{AutomationId}}/jobs HTTP/1.1
Content-type: application/json

{
    "InputPayload": "string"
}
```

##### 请求参数
<a name="start-job-request-parameters"></a>
+ **AwsAccountId**（字符串，必填）-您的 AWS 账户 ID（12 位数字）。
+ **AutomationGroupId**（字符串，必填）-自动化组的 ID (UUID)。
+ **AutomationId**（字符串，必填）-要运行的自动化的 ID (UUID)。
+ **InputPayload**（字符串，可选）-以 JSON 字符串形式输入作业。

##### 响应元素
<a name="start-job-response-elements"></a>
+ **Arn**（字符串）— 自动化作业的 ARN。
+ **JobId**（字符串）-已启动作业的 ID。将其与之配合使用`DescribeAutomationJob`来跟踪状态。
+ **状态**（整数）-响应的 HTTP 状态码。
+ **RequestId**（字符串）- AWS 请求 ID。

##### 错误
<a name="start-job-errors"></a>
+ **AccessDeniedException**— 权限不足或凭证无效。
+ **InvalidParameterValueException**— 一个或多个参数的值无效。
+ **ResourceNotFoundException**— 未找到自动化组或自动化。
+ **LimitExceededException**— 已超出限制。
+ **ThrottlingException**— 请求已被限制。
+ **InternalFailureException**— 内部服务错误。

如需了解更多详情，请参阅的 [API 参考指南 StartAutomationJob](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_StartAutomationJob.html)。

#### DescribeAutomationJob
<a name="api-triggers-describe-automation-job"></a>

检索指定自动化作业的状态和详细信息，包括执行时间戳以及可选的输入和输出负载。使用此操作可在调用后轮询任务是否完成**StartAutomationJob**。

默认情况下，响应不包括输入和输出负载。将**IncludeInputPayload**和**IncludeOutputPayload**查询参数设置为`true`以请求它们。只有满足以下所有条件时，Amazon Quick Automate 才会返回输出有效负载：
+ **IncludeOutputPayload** 为 `true`。
+ **JobStatus** 为 `SUCCEEDED`。
+ 自动化产生了输出值。

##### 请求语法
<a name="describe-job-request-syntax"></a>

```
GET /accounts/{{AwsAccountId}}/automation-groups/{{AutomationGroupId}}/automations/{{AutomationId}}/jobs/{{JobId}}?IncludeInputPayload={{boolean}}&IncludeOutputPayload={{boolean}} HTTP/1.1
```

##### 请求参数
<a name="describe-job-request-parameters"></a>
+ **AwsAccountId**（字符串，必填）-您的 AWS 账户 ID（12 位数字）。
+ **AutomationGroupId**（字符串，必填）-自动化组的 ID (UUID)。
+ **AutomationId**（字符串，必填）-自动化 ID (UUID)。
+ **JobId**（字符串，必填）-`StartAutomationJob` (UUID) 返回的任务的 ID。
+ **IncludeInputPayload**（布尔值，可选）-在响应中包含输入有效负载。默认值：`false`。
+ **IncludeOutputPayload**（布尔值，可选）-在响应中包含输出负载。默认值：`false`。

##### 响应字段
<a name="describe-job-response-fields"></a>
+ **Arn**（字符串）— 自动化作业的 ARN。
+ **CreatedAt**（时间戳）-任务创建时间（纪元秒）。
+ **StartedAt**（时间戳）-作业开始运行的时间（纪元秒）。
+ **EndedAt**（时间戳）-作业完成的时间（纪元秒）。
+ **JobStatus**（字符串）— `QUEUED` `RUNNING`、`SUCCEEDED`、`FAILED`、或`STOPPED`。
+ **InputPayload**（字符串）-输入有效载荷。除非`IncludeInputPayload`是，否则从响应中省略`true`。
+ **OutputPayload**（字符串）-输出有效负载。除非`IncludeOutputPayload`是，否则从响应中省略`true`。
+ **RequestId**（字符串）- AWS 请求 ID。

##### 错误
<a name="describe-job-errors"></a>
+ **AccessDeniedException**— 权限不足或凭证无效。
+ **InvalidParameterValueException**— 一个或多个参数的值无效。
+ **ResourceNotFoundException**— 未找到 Job、自动化或自动化组。
+ **ThrottlingException**— 请求已被限制。
+ **InternalFailureException**— 内部服务错误。

如需了解更多详情，请参阅的 [API 参考指南 DescribeAutomationJob](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_DescribeAutomationJob.html)。

## 使用输入和输出通过 API 触发器运行自动化
<a name="run-automations-api-triggers-io"></a>

通过 API 启动自动化作业时，您可以将输入值作为 JSON 有效负载。Amazon Quick Automate 会在执行开始之前根据自动化的输入架构验证有效负载，并在任务完成时返回结构化输出值。

### 先决条件
<a name="api-triggers-io-prerequisites"></a>

在使用 API 触发器运行自动化之前，请确保以下各项准备就绪：
+ 自动化已部署。
+ 自动化在 “开始” 节点中定义了输入架构。
+ 你有自动化组 ID 和自动化 ID。

### 通过 API 发送输入值
<a name="api-triggers-sending-input"></a>

要包含输入值，**StartAutomationJob**请使用**InputPayload**参数在请求中传递 JSON 有效负载。

```
Sample Request

POST /accounts/123456789012/automation-groups/a1b2c3d4-e5f6-7890-abcd-ef1234567890/automations/11111111-2222-3333-4444-555555555555/jobs
{
    "InputPayload": "{\"customer_id\":\"C-98765\",\"threshold\":100,\"region\":\"us-east-1\"}"
}

Sample Response

{
    "Arn": "arn:aws:quicksight:us-west-2:123456789012:automation-group/a1b2c3d4-e5f6-7890-abcd-ef1234567890/automation/11111111-2222-3333-4444-555555555555/job/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
    "JobId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
    "Status": 200,
    "RequestId": "req-12345678-abcd-efgh-ijkl-123456789012"
}
```

**注意**  
该`InputPayload`值必须是一个 JSON-serialized 字符串，其中包含与自动化的输入架构相匹配的输入字段值。

### 通过 API 检索输出值
<a name="api-triggers-retrieving-output"></a>

您可以通过调用 **DescribeAutomationJob**API 来检索输出值。要在响应中包含输入和输出负载，请将**包含InputPayload和**包含OutputPayload****查询参数设置为。`true`

仅当自动化成功完成时，响应才会包含该**OutputPayload**字段。

```
Sample Request

GET /accounts/123456789012/automation-groups/a1b2c3d4-e5f6-7890-abcd-ef1234567890/automations/11111111-2222-3333-4444-555555555555/jobs/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee?includeInputPayload=true&includeOutputPayload=true

Sample Response

{
    "Arn": "arn:aws:quicksight:us-west-2:123456789012:automation-group/a1b2c3d4-e5f6-7890-abcd-ef1234567890/automation/11111111-2222-3333-4444-555555555555/job/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
    "JobStatus": "SUCCEEDED",
    "CreatedAt": "2026-03-11T09:59:50Z",
    "StartedAt": "2026-03-11T10:00:00Z",
    "EndedAt": "2026-03-11T10:05:00Z",
    "InputPayload": "{\"customer_id\":\"C-98765\",\"threshold\":100,\"region\":\"us-east-1\"}",
    "OutputPayload": "{\"result\":\"success\",\"records_processed\":42,\"summary\":{\"passed\":40,\"failed\":2}}",
    "RequestId": "req-12345678-abcd-efgh-ijkl-123456789012"
}
```

**注意**  
只有在自动化成功完成后（何时 **JobStatus**`SUCCEEDED`），该**OutputPayload**字段才可用。如果自动化失败或仍在运行，则响应中不包含该**OutputPayload**字段。

## 使用输入和输出部署和运行自动化
<a name="deploy-run-inputs-outputs"></a>

本节介绍如何部署使用输入和输出架构的自动化、手动或按计划运行这些自动化，以及如何查看运行结果。

### 部署前查看架构信息
<a name="view-schema-before-deployment"></a>

在部署自动化之前，必须提交自动化以创建版本。有关更多信息，请参阅[维护自动化版本](https://docs.aws.amazon.com/quicksuite/latest/userguide/building-automations.html#managing-automation-versions)。

提交带有输入或输出架构的自动化后，您可以在版本详细信息页面**的数据模型**部分查看架构详细信息。本部分显示输入和输出的完整字段定义。

### 使用输入和输出架构部署自动化
<a name="deploy-with-schemas"></a>

部署已定义输入或输出架构的自动化时，部署对话框将在**数据模型**部分显示架构信息，包括：
+ 输入和输出字段定义（名称、数据类型、描述、必填或可选状态以及默认值）。
+ 用于输入和输出的可复制 JSON 架构，API 调用者可以将其用于集成。

**重要**  
架构与自动化代码一起在部署时被冻结。如果您在部署后更新架构，则必须重新部署自动化才能使更改生效。

要完成部署，请查看架构信息并选择 **Deploy**。

### 手动运行已部署的自动化
<a name="run-deployed-manually"></a>

要使用输入启动已部署的自动化，请完成以下步骤：
+ 在部署页面上，选择**操作**菜单 (‹)。
+ 选择 “**立即运行**”。
+ 在**提供输入值**对话框中，为每个输入字段输入值。
+ 选择 “**开始**” 以开始自动化运行。

输入表单与您在 Studio 中测试时使用的表单相同。

### 使用计划触发器运行自动化
<a name="run-with-scheduled-triggers"></a>

对于计划触发器，您可以在创建或编辑触发器时提供输入值。每次触发器触发时，存储的值都会传递给自动化。

您可执行以下操作：
+ 为同一个自动化创建具有不同输入值的多个触发器
+ 无需重新部署自动化即可编辑触发器的输入值

要配置定时触发器的输入，请完成以下步骤：
+ 导航到部署页面以进行自动化。
+ 选择 “**创建触发器**”。
+ 在**步骤 1：设置触发器**中，配置时间表。
+ 在 “**步骤 2：定义运行**” 中，在自动生成的表单中为每个输入字段输入值。
+ 选择 “**下一步**”，查看您的配置，然后选择 “**创建触发器**”。

**注意**  
如果您使用特定架构版本创建触发器，然后使用更新的架构部署自动化，则必须修改该触发器。当架构版本更改并且自动化运行将失败时，触发器将变得不兼容。

### 查看已部署运行的输入和输出
<a name="viewing-inputs-outputs-deployed"></a>

自动化运行完成后（无论是手动启动还是通过计划触发器启动），输入和输出值将作为结构化构件显示在 “**运行**” 页面的日志面板中。

这些神器以专用卡牌的形式出现：
+ **输入对象**-显示在日志面板的顶部
+ **输出对象**-显示在日志面板的底部（仅在自动化成功完成后才可用）

默认情况下，两张牌都处于折叠状态。当你扩展它们时，你可以：
+ 查看完整架构和实际值
+ 下载输入或输出中包含的所有文件对象
+ 将结构化数据复制为 JSON
+ 将完整的负载下载为 JSON 文件