

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

在 Amazon Quick Automate 中建立和測試自動化之後，下一步是**部署**它們，以便它們可以在觸發時定期執行。部署可讓自動化運作並準備好執行。您可以將觸發新增至部署的自動化，以預先定義的排程執行它。部署涉及設定執行時間設定、為human-in-the-loop任務指派使用者、驗證登入資料和整合。

本節說明部署程序的每個步驟，以及如何設定自動化以取得可靠性、安全性和最佳效能。

## 先決條件
<a name="deployment-prerequisites"></a>

部署自動化之前，請確定下列步驟已完成：
+ **自動化經過徹底測試** - 透過end-to-end測試來驗證您的自動化，以確認所有邏輯、動作和客服人員互動都能如預期運作。
+ **遞交以進行部署的版本** - 只能部署遞交的自動化版本。檢閱您的變更、完成版本，然後在繼續之前遞交。
+ **已設定的整合** - 如果您的自動化透過 APIs 與 Salesforce 或 Jira 等外部應用程式互動，請確定已設定所有必要的整合。
  + 導覽至左側面板中的**連線 → 整合**，以建立新的整合。
  + 目前，Amazon Quick Automate 僅支援**動作**索引標籤下可用的整合。
  + 建立整合動作後，將其與要使用的**自動化群組**建立關聯。
  + 然後，相關聯的動作會出現在畫布中。在部署期間，您可以選擇部署自動化要使用的適當連線。
+ **已設定的登入**資料 - 確認您的自動化所需的所有登入資料都已正確設定。

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

您可以按一下部署，或導覽至自動化登陸頁面上的部署索引標籤，直接從 Canvas 部署自動化。啟動部署後，系統會引導您完成一系列步驟，以完成組態和發行程序。

### 版本詳細資訊
<a name="release-details"></a>

在**版本詳細資訊**頁面上，選取您要部署的自動化版本。只有**遞交的版本**可供部署，並會出現在下拉式清單中。

### 其他設定
<a name="additional-settings"></a>

其他設定包括：
+ **執行期組態**
+ **任務 （適用於 HITL 指派）**
+ **存取**

#### 執行時期組態
<a name="runtime-configuration"></a>

執行期組態是不同環境的參數，例如開發、測試和生產。

例如，傳送電子郵件的自動化步驟可能會在測試期間使用您的個人電子郵件地址，但應該切換到生產環境中的共用團隊地址。編寫自動化時，這類環境相關值可以定義為**執行期組態**。

在部署時間，您可以檢閱和覆寫這些組態，以確保自動化在預期環境中正確執行。執行期參數可能包括：
+ 電子郵件地址或通知收件人
+ 環境特定的檔案路徑或 URLs 

此彈性有助於維持跨環境的單一自動化定義，同時視需要調整關鍵參數。

#### 任務​
<a name="tasks"></a>

為需要human-in-the-loop的每個任務選取解析程式使用者或使用者群組。

#### 存取 （憑證和連線）
<a name="access-credentials-connections"></a>

自動化通常需要連線到外部系統、資料庫或服務。Amazon Quick Automate 提供安全方法來管理登入資料和連線，而無需在自動化邏輯中嵌入敏感資訊。

連線和登入資料會安全地存放和加密，並在執行時間提供給工作流程，而不會向作者或最終使用者公開。此設計可確保將秘密與自動化定義緊密分離，同時改善安全性和可維護性。

您可以存放和使用兩種主要的登入資料類型：
+ **網站登入**資料 - 用於需要網站登入的 UI 自動化步驟 （使用者名稱和密碼）。
+ **動作登入資料 （整合）** - 用於透過設定的整合 （例如 Salesforce、Jira) 連接 AWS 服務 （例如 S3) 或外部系統。

在部署時，請確定已選取正確的登入資料和連線，以便自動化能夠安全且成功地存取所有必要的系統。

## 設定觸發條件
<a name="setting-up-triggers"></a>

觸發會決定自動化執行的時間和方式。您可以將自動化設定為根據預先定義的排程啟動，或透過 Amazon QuickSight API 以程式設計方式叫用。

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

您可以設定自動化以根據預先定義的排程開始。若要設定觸發條件：
+ 在部署頁面上，按一下「建立觸發」並設定規則。
+ 選取頻率
+ 選取開始日期和時間 （請注意，實際執行會在所選開始時間的 15 分鐘內啟動）
+ 選取結束日期和時間
+ 選取時區
+ Amazon Quick Automate 提供內建可擴展性。選取自動化的平行執行次數 （每個觸發最多可以選取 10 個平行執行，以及帳戶內所有自動化最多 50 個平行執行。 請聯絡 AWS)
+ 對於複雜的排程需求，您可以使用 Cron 表達式來定義精確的執行模式。例如，若要在每週一、週三和週五的凌晨 2：30 執行自動化，您可以使用 cron 表達式：`30 2 * * 1,3,5`。

### API 觸發程序
<a name="setting-up-triggers-api"></a>

自動化任務 APIs 可讓您以程式設計方式從外部應用程式啟動和監控自動化任務。您可以使用這些 APIs，透過自訂輸入承載叫用部署的自動化，並透過 AWS SDK 和 擷取執行結果 AWS CLI。

自動化任務 APIs 包含兩個操作：
+ **StartAutomationJob** – 使用選用的輸入承載啟動已部署自動化的新任務。
+ **DescribeAutomationJob** – 擷取指定任務的狀態、時間戳記，以及選用的輸入和輸出承載。

這些 APIs是 Amazon QuickSight 服務命名空間的一部分。您可以透過 AWS SDK 和 中的`quicksight`命名空間來存取它們 AWS CLI。

如需 AWS SDKs和工具組的詳細資訊，請參閱 [AWS 入門資源中心](https://aws.amazon.com/getting-started/tools-sdks/)。

#### 先決條件
<a name="api-triggers-prerequisites"></a>

呼叫自動化任務 APIs之前，請完成下列設定步驟。

##### 尋找您的自動化識別符
<a name="api-triggers-find-identifiers"></a>

若要呼叫自動化任務 APIs，您需要下列識別符：
+ **AWS 帳戶 ID** – 您的 12 位數 AWS 帳戶 ID。
+ **自動化群組 ID** – 包含自動化之自動化群組的唯一 ID。
+ **自動化 ID** – 您要叫用之自動化的唯一 ID。

當您開啟任何自動化並具有部署版本時，可以在部署區段中找到自動化群組 ID 和自動化 ID。

**尋找您的識別符**
+ 登入 Amazon Quick Automate。
+ 在左側導覽窗格中，選擇**自動化**。
+ 選擇包含自動化的自動化群組。
+ 選擇自動化名稱以開啟自動化編輯器。
+ 選擇 **Deployment** (部署) 索引標籤。
+ 選擇**動作 (⋮)** 和**檢視部署詳細資訊**，以取得部署詳細資訊標題下方的頂部**自動化 ID** 和**群組 ID**。

##### 設定 IAM 許可
<a name="api-triggers-configure-iam"></a>

自動化任務 APIs需要連接到 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 區段。若要允許描述自動化下的任何任務，請使用任務區段的萬用字元 (\$1)。

```
{
    "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 QuickSight 的 IAM 政策範例](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 目標僅部署自動化。您必須先在 Amazon Quick Automate 主控台中遞交和部署自動化，才能透過 API 叫用它。

#### 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** （字串，必要） – 自動化群組 (UUID) 的 ID。
+ **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** – 內部服務錯誤。

如需詳細資訊，請參閱 [ StartAutomationJob 的 API 參考指南](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** （字串，必要） – 自動化群組 (UUID) 的 ID。
+ **AutomationId** （字串，必要） – 自動化的 ID (UUID)。
+ **JobId** （字串，必要） – (`StartAutomationJob`UUID) 傳回的任務 ID。
+ **IncludeInputPayload** （布林值，選用） – 在回應中包含輸入承載。預設：`false`。
+ **IncludeOutputPayload** （布林值，選用） – 在回應中包含輸出承載。預設：`false`。

##### 回應欄位
<a name="describe-job-response-fields"></a>
+ **Arn** （字串） – 自動化任務的 ARN。
+ **CreatedAt** （時間戳記） – 建立任務的時間 (epoch 秒）。
+ **StartedAt** （時間戳記） – 任務開始執行的時間 (epoch 秒）。
+ **EndedAt** （時間戳記） – 任務完成時 (epoch 秒）。
+ **JobStatus** （字串） – `QUEUED`、`RUNNING`、`FAILED`、 `SUCCEEDED`或 `STOPPED`。
+ **InputPayload** （字串） – 輸入承載。除非 `IncludeInputPayload`是 ，否則省略回應`true`。
+ **OutputPayload** （字串） – 輸出承載。除非 `IncludeOutputPayload`是 ，否則省略回應`true`。
+ **RequestId** （字串） – AWS 請求 ID。

##### 錯誤
<a name="describe-job-errors"></a>
+ **AccessDeniedException** – 許可不足或憑證無效。
+ **InvalidParameterValueException** – 一或多個參數的值無效。
+ **ResourceNotFoundException** – 找不到任務、自動化或自動化群組。
+ **ThrottlingException** – 已調節請求。
+ **InternalFailureException** – 內部服務錯誤。

如需詳細資訊，請參閱 [ DescribeAutomationJob 的 API 參考指南](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 觸發程序執行自動化之前，請確定已備妥下列項目：
+ 自動化已部署。
+ 自動化在 Start 節點中定義了輸入結構描述。
+ 您有自動化群組 ID 和自動化 ID。

### 透過 API 傳送輸入值
<a name="api-triggers-sending-input"></a>

若要包含輸入值，請使用 InputPayload 參數在 **StartAutomationJob** 請求中傳遞 JSON 承載。 **InputPayload** 

```
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 序列化字串，其中包含符合您自動化輸入結構描述的輸入欄位值。

### 透過 API 擷取輸出值
<a name="api-triggers-retrieving-output"></a>

您可以呼叫 **DescribeAutomationJob** API 來擷取輸出值。若要在回應中包含輸入和輸出承載，請將 **includeInputPayload** 和 **includeOutputPayload** 查詢參數設定為 `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"
}
```

**注意**  
**OutputPayload** 欄位只有在自動化成功完成後 （當 **JobStatus** 為 時） 才能使用`SUCCEEDED`。如果自動化失敗或仍在執行中，回應不包含 **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>

當您部署已定義輸入或輸出結構描述的自動化時，部署對話方塊會在**資料模型**區段中顯示結構描述資訊，包括：
+ 輸入和輸出欄位定義 （名稱、資料類型、描述、必要或選用狀態，以及預設值）。
+ API 發起人可用於整合的輸入和輸出的可複製 JSON 結構描述。

**重要**  
結構描述會在部署時間與自動化程式碼一起凍結。如果您在部署之後更新結構描述，則必須重新部署自動化，變更才會生效。

若要完成部署，請檢閱結構描述資訊，然後選擇**部署**。

### 手動執行部署的自動化
<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 檔案