

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 翻译 Slurm Job 提交插件脚本以便在 PCS 中使用 CLI 过滤器插件 AWS
<a name="slurm-cli-filter-plugins-translate"></a>

当你从其他 Slurm 环境迁移时，将你现有的 Job Submit Plugin Lua 脚本翻译为 CLI 过滤器插件。翻译过程包括更新函数名称和字段访问模式以使用 CLI 过滤器插件 API。

## 先决条件
<a name="slurm-cli-filter-plugin-translate-prerequisites"></a>

在翻译脚本之前，请完成以下任务：
+ 查看你现有的 Job Submit 插件 Lua 脚本
+ 了解 Job Submit 和 CLI 筛选插件 API 之间的区别
+ 访问 Slurm CLI 过滤器插件文档

**将 Job Submit 插件脚本翻译为 CLI 过滤器插件**

1. 查看您现有的 Job Submit 插件脚本函数 (`slurm_job_submit`,`slurm_job_modify`)。

1. 确定等效的 CLI 过滤器插件函数：
   + `slurm_job_submit` 变为 `slurm_cli_pre_submit`
   + `slurm_cli_setup_defaults`为默认参数设置添加
   + `slurm_cli_post_submit`为提交后的操作添加

1. 将作业验证逻辑从`job_desc`字段转换为`options`数组访问权限：
   + `job_desc.account` 变为 `options["account"]`
   + `job_desc.partition` 变为 `options["partition"]`
   + `job_desc.features` 变为 `options["constraint"]`

1. 将记录呼叫从更新`slurm.log_user()`为`slurm.log_error()`。

1. 在开发集群上测试已翻译的脚本。

1. 按照标准的 CLI 过滤器插件部署流程部署到您的生产集群。

## 预期结果
<a name="slurm-cli-filter-plugin-translate-results"></a>

完成翻译后：
+ 您的翻译脚本提供了同等的作业提交验证
+ 用户看到的错误消息和提示与你最初的 Job Submit 插件类似
+ 在迁移到 AWS PCS 期间，将维护作业提交策略

## 问题排查
<a name="slurm-cli-filter-plugin-translate-troubleshooting"></a>

**脚本翻译错误**  
**症状：**Job 提交失败，导致 Lua 执行错误。  
**可能的原因：**翻译后的脚本中的字段访问或函数调用不正确。  
**解决方案：**查看 CLI 筛选插件 API 文档，比较 Job Submit 和 CLI 筛选器接口之间的字段映射。