

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

# 管理 AWS Batch 任務定義中的修訂
<a name="batch-jobs"></a>

此範例假設您使用 AWS Batch 服務並使用 Terraform 做為 IaC 工具來部署批次任務。

## 挑戰
<a name="batch-job-challenges"></a>

AWS Batch 會在每次更新時建立新的任務定義修訂，進而隨著時間累積修訂。這可能會使資源管理變得複雜，並導致混淆哪些修訂是最新的，尤其是在經常更新任務定義且下游資源需要準確參考最新版本的企業環境中。

## 解決方案
<a name="batch-job-solution"></a>

下列 Terraform 程式碼使用數個關鍵元件來處理 AWS Batch 修訂管理。

```
resource "terraform_data" "batch_job_definition_cleanup" {
  triggers_replace = {
    always_run = timestamp()
  }

  provisioner "local-exec" {
    command = "..."  # AWS CLI commands to list and de-register older revisions
  }
}
```

在此程式碼中：
+ `terraform_data` 在 Terraform 操作期間， 會與`local-exec`佈建器結合以執行 AWS Command Line Interface (AWS CLI) 命令。
+ 時間戳記觸發可確保每個`terraform apply`命令執行清除指令碼。
+ AWS CLI AWS Batch 所有作用中任務定義修訂的 整合查詢，並取消註冊較舊的修訂。
+ 您可以將自訂保留組態新增至命令區段，以指定要保留的最新修訂數量。

## 優勢
<a name="batch-job-benefits"></a>
+ **簡化管理**：防止將過時的修訂累積至任務定義。
+ **清除參考**：維護任務定義目前版本的準確指標。
+ **資源最佳化**：減少 AWS Batch 環境中的雜亂。
+ **自動化**：與現有的 Terraform 工作流程徹底整合。

此方法示範 Terraform 的可擴展性功能如何克服提供者限制，同時維護 IaC 最佳實務。對於需要動態資源探索和管理的類似案例，您可以使用此解決方案作為範本。