

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

# 執行截止日期雲端工作者代理程式
<a name="run-worker"></a>

您必須先在工作者主機上以開發人員模式執行 AWS 截止日期雲端工作者代理程式，才能執行您提交至開發人員陣列上的佇列的任務。

在本教學課程的其餘部分中，您將使用兩個 AWS CloudShell 索引標籤在開發人員陣列上執行 AWS CLI 操作。在第一個索引標籤中，您可以提交任務。在第二個索引標籤中，您可以執行工作者代理程式。

**注意**  
如果您讓 CloudShell 工作階段閒置超過 20 分鐘，將會逾時並停止工作者代理程式。若要重新啟動工作者代理程式，請遵循下列程序的指示。

您必須先設定截止日期雲端陣列、佇列和機群，才能啟動工作者代理程式。請參閱 [建立截止日期雲端陣列](create-a-farm.md)。

**在開發人員模式下執行工作者代理程式**

1. 在第一個 CloudShell 索引標籤中仍開啟您的陣列時，開啟第二個 CloudShell 索引標籤，然後建立 `demoenv-logs`和 `demoenv-persist`目錄。

   ```
   mkdir ~/demoenv-logs 
   mkdir ~/demoenv-persist
   ```

1. 從 PyPI 下載並安裝截止日期雲端工作者代理程式套件：
**注意**  
在 上Windows，代理程式檔案必須安裝在 Python 的全域網站套件目錄中。目前不支援 Python 虛擬環境。

   ```
   python -m pip install deadline-cloud-worker-agent
   ```

1. 若要允許工作者代理程式為執行中的任務建立臨時目錄，請建立目錄：

   ```
   sudo mkdir /sessions
   sudo chmod 750 /sessions
   sudo chown cloudshell-user /sessions
   ```

1. 使用`DEV_FARM_ID``DEV_CMF_ID`您新增至 的變數，在開發人員模式下執行截止日期雲端工作者代理程式`~/.bashrc`。

   ```
   deadline-worker-agent \
       --farm-id $DEV_FARM_ID \
       --fleet-id $DEV_CMF_ID \
       --run-jobs-as-agent-user \
       --logs-dir ~/demoenv-logs \
       --persistence-dir ~/demoenv-persist
   ```

   當工作者代理程式初始化然後輪詢 `UpdateWorkerSchedule` API 操作時，會顯示下列輸出：

   ```
   INFO    Worker Agent starting
   [2024-03-27 15:51:01,292][INFO    ] 👋 Worker Agent starting
   [2024-03-27 15:51:01,292][INFO    ] AgentInfo 
   Python Interpreter: /usr/bin/python3
   Python Version: 3.9.16 (main, Sep  8 2023, 00:00:00)  - [GCC 11.4.1 20230605 (Red Hat 11.4.1-2)]
   Platform: linux
   ...
   [2024-03-27 15:51:02,528][INFO    ] 📥 API.Resp 📥 [deadline:UpdateWorkerSchedule](200) params={'assignedSessions': {}, 'cancelSessionActions': {}, 'updateIntervalSeconds': 15} ...
   [2024-03-27 15:51:17,635][INFO    ] 📥 API.Resp 📥 [deadline:UpdateWorkerSchedule](200) params=(Duplicate removed, see previous response) ...
   [2024-03-27 15:51:32,756][INFO    ] 📥 API.Resp 📥 [deadline:UpdateWorkerSchedule](200) params=(Duplicate removed, see previous response) ...
   ...
   ```

1. 選取您的第一個 CloudShell 標籤，然後列出機群中的工作者。

   ```
   deadline worker list --fleet-id $DEV_CMF_ID
   ```

   會顯示如下所示的輸出：

   ```
   Displaying 1 of 1 workers starting at 0
   
   - workerId: worker-8c9af877c8734e89914047111f
     status: STARTED
     createdAt: 2023-12-13 20:43:06+00:00
   ```

在生產組態中，截止日期雲端工作者代理程式需要將多個使用者和組態目錄設定為主機上的管理使用者。您可以覆寫這些設定，因為您在自己的開發陣列中執行任務，只有您可以存取。

## 後續步驟
<a name="gs-run-worker-agent-next"></a>

現在，工作者代理程式正在您的工作者主機上執行，您可以將任務傳送給工作者。您可以：
+ [使用截止日期雲端提交](submit-a-job.md) 使用簡單的 OpenJD 任務套件。
+ [在截止日期雲端中使用任務附件提交任務](run-jobs-job-attachments.md) 使用不同的作業系統在工作站之間共用檔案。