

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

# 從儲存體設定檔衍生路徑映射規則
<a name="deriving-path-mapping-rules-from-storage-profiles"></a>

 路徑映射規則描述路徑應如何從任務重新映射到工作者主機上路徑的實際位置。當任務在工作者上執行時，任務的儲存設定檔會與工作者機群的儲存設定檔進行比較，以衍生任務的路徑映射規則。

 截止日期 雲端會為佇列組態中的每個必要檔案系統位置建立映射規則。例如，使用`WSAll`儲存描述檔提交到佇列的任務`Q1`具有路徑映射規則：
+  `FSComm`: `/shared/common -> /mnt/common` 
+  `FS1`: `/shared/projects/project1 -> /mnt/projects/project1` 

 Deadline Cloud 會建立 `FSComm`和 `FS1` 檔案系統位置的規則，但即使 `WSAll`和 `WorkerConfig`儲存設定檔都定義 ，也無法建立`FS2`檔案系統位置`FS2`。這是因為佇列 `Q1`的必要檔案系統位置清單為 `["FSComm", "FS1"]`。

 您可以提交列印 [Open Job Description 路徑映射規則檔案的任務，然後在任務完成後讀取工作階段日誌，以確認使用特定儲存設定檔提交的任務可用的路徑映射規則](https://github.com/OpenJobDescription/openjd-specifications/wiki/How-Jobs-Are-Run#path-mapping)：

```
# Change the value of FARM_ID to your farm's identifier
FARM_ID=farm-00112233445566778899aabbccddeeff
# Change the value of QUEUE1_ID to queue Q1's identifier
QUEUE1_ID=queue-00112233445566778899aabbccddeeff
# Change the value of WSALL_ID to the identifier of the WSALL storage profile
WSALL_ID=sp-00112233445566778899aabbccddeeff

aws deadline create-job --farm-id $FARM_ID --queue-id $QUEUE1_ID \
  --priority 50 \
  --storage-profile-id $WSALL_ID \
  --template-type JSON --template \
  '{
    "specificationVersion": "jobtemplate-2023-09",
    "name": "DemoPathMapping",
    "steps": [
      {
        "name": "ShowPathMappingRules",
        "script": {
          "actions": {
            "onRun": {
              "command": "/bin/cat",
              "args": [ "{{Session.PathMappingRulesFile}}" ]
            }
          }
        }
      }
    ]
  }'
```

 如果您使用[截止日期雲端 CLI](https://pypi.org/project/deadline/) 提交任務，其`settings.storage_profile_id`組態設定會設定使用 CLI 提交的任務將擁有的儲存設定檔。若要使用`WSAll`儲存描述檔提交任務，請設定：

```
deadline config set settings.storage_profile_id $WSALL_ID
```

 若要像在範例基礎設施中執行一樣執行客戶受管工作者，請遵循*在截止日期雲端使用者指南*中[執行工作者代理](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/run-worker.html)程式中的程序來執行工作者 AWS CloudShell。如果您之前遵循這些指示，請先刪除 `~/demoenv-logs`和 `~/demoenv-persist`目錄。此外，設定方向參考的 `DEV_FARM_ID`和 `DEV_CMF_ID`環境變數值，如下所示，然後再執行此操作：

```
DEV_FARM_ID=$FARM_ID
DEV_CMF_ID=$FLEET_ID
```

 任務執行後，您可以在任務的日誌檔案中看到路徑映射規則：

```
cat demoenv-logs/${QUEUE1_ID}/*.log
...
JJSON log results (see below)
...
```

日誌包含 `FS1`和 `FSComm` 檔案系統的映射。重新格式化可讀性，日誌項目如下所示：

```
{
    "version": "pathmapping-1.0",
    "path_mapping_rules": [
        {
            "source_path_format": "POSIX",
            "source_path": "/shared/projects/project1",
            "destination_path": "/mnt/projects/project1"
        },
        {
            "source_path_format": "POSIX",
            "source_path": "/shared/common",
            "destination_path": "/mnt/common"
        }
    ]
```

 您可以提交具有不同儲存設定檔的任務，以查看路徑映射規則如何變更。