

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

# 從命令提示字元執行自動化
<a name="run-automations-from-command-prompt"></a>

雖然我們建議透過 Web 界面執行自動化任務，但您可以從自動化伺服器上的命令列手動執行自動化指令碼。這提供額外的選項，讓組織無法或不想在環境中使用 AWS CMF Credentials Manager、AWS Secrets Manager 和 AWS Systems Manager 的組合，或者如果 AWS 上的 Cloud Migration Factory 使用者需要提供多重要素驗證 (MFA) 一次性存取碼，才能登入 AWS 上的 Cloud Migration Factory。

從命令列執行指令碼時，無法在 Web 界面的任務檢視中使用**任務**歷史記錄和日誌。日誌輸出只會導向至命令列輸出。指令碼仍然可以存取 AWS APIs以讀取和更新記錄，以及透過 APIs 提供的其他功能。

我們建議您將指令碼存放在指令碼程式庫或其他中央位置，以確保您存取並使用最新版本的指令碼，或目前核准使用的版本。

## 手動執行自動化套件
<a name="manually-running-an-automation-package"></a>

本節說明從 AWS 上的 Cloud Migration Factory 下載套件，並在自動化伺服器上手動執行套件的步驟。您也可以使用來源特定的下載步驟取代步驟 1 和 2，以遵循其他指令碼來源位置的程序。

1. 如果指令碼存放在 AWS 上的 Cloud Migration Factory 中，請依照[下載指令碼套件](scripts-management.md#download-script-packages)中涵蓋的步驟取得自動化套件 zip 檔案。

1. 將 zip 檔案複製到自動化伺服器上的位置，例如 `c:\migrations\scripts`，然後解壓縮內容。

1. 將 `FactoryEndpoints.json` 檔案複製到每個解壓縮的指令碼資料夾。使用包含伺服器之 Cloud Migration Factory 執行個體的特定 API 端點，或此自動化任務將參考的其他記錄，來設定 檔案。如需如何建立此檔案的詳細資訊，請參閱[建立 FactoryEndpoints.json](#creation-of-the-factoryendpoints.json) 

1. 從命令列，確定您位於解壓縮套件的根目錄中，並執行下列命令：

```
python [package master script file] [script arguments]
```

 *套件主要指令碼檔案 -* 這可以從 `MasterFileName`金鑰`Package-Structure.yml`下的 取得。

 *指令碼引數* - 有關引數的資訊會在 `Arguments`金鑰`Package-Structure.yml`下的 中提供。

1. 指令碼會請求 AWS APIs 和遠端伺服器上 Cloud Migration Factory 所需的登入資料。在此程序期間，任何手動輸入的登入資料都會快取在記憶體中，以避免再次輸入相同的登入資料。如果您輸入指令碼引數來存取使用 Credentials Manager 功能存放的秘密，則需要存取 AWS Secrets Manager 和相關聯的秘密。如果秘密擷取因任何原因失敗，指令碼會提示 使用者登入資料。

## 建立 FactoryEndpoints.json
<a name="creation-of-the-factoryendpoints.json"></a>

我們建議您在 AWS 解決方案上部署 Cloud Migration Factory 時建立此檔案一次，因為內容在初始部署後不會變更，並存放在自動化伺服器的中央位置。此檔案提供具有 Cloud Migration Factory on AWS API 端點和其他金鑰參數的自動化指令碼。檔案的預設內容範例如下所示：

```
{
 "UserApi": "cmfuserapi",
 "VpceId": "",
 "ToolsApi": "cmftoolsapi",
 "Region": "us-east-1",
 "UserPoolId": "us-east-1_AbCdEfG",
 "UserPoolClientId": "123456abcdef7890ghijk",
 "LoginApi": "cmfloginapi"
}
```

**注意**  
編寫已部署 AWS Cloud Migration Factory 執行個體此檔案所需的大多數資訊，皆可從已部署堆疊的 AWS CloudFormation **Outputs** 索引標籤取得，但 除外`UserPoolClientId`。完成下列步驟以取得此值：

1. 導覽至 Amazon Cognito 主控台。

1. 開啟**使用者集區組態**。

1. 選取**應用程式整合**，以提供**應用程式用戶端組態**。

```
{
 "UserApi": <UserApi-value>,
 "Region": <Region-value>,
 "UserPoolId": <UserPoolId-value>,
 "UserPoolClientId": <Amazon-Cognito-user-pool-app-clients-console>,
 "LoginApi": <LoginApi-value>
}
```

將 *<LoginApi-value>*、*<UserApi-value>*、*<Region-value>* 和 *<UserPoolId-value>* 取代為您從 AWS CloudFormation Outputs 主控台擷取的對應值。請勿將正斜線 (/) 新增至 URLs的結尾。

檔案具有選用`DefaultUser`金鑰。您可以將此金鑰的值設定為預設使用者 ID，用於存取 AWS 執行個體上的 Cloud Migration Factory，以避免每次都必須輸入。出現 Cloud Migration Factory 使用者 ID 提示時，您可以輸入使用者 ID，或按 Enter 鍵使用預設值。您只能在手動執行指令碼時執行此操作。