

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

# 使用 Amazon S3 在 AWS PCS 中部署 CLI 筛选插件脚本
<a name="slurm-cli-filter-plugins-deploy-s3"></a>

如果您想在不重建 AMI 的情况下更新实时集群上的任务提交逻辑，请使用 S3 部署 CLI 筛选器插件脚本。此方法在实例启动期间使用用户数据从 S3 下载脚本。

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

在使用 S3 部署脚本之前，请完成以下任务：
+ 使用 CLI 过滤器插件 Lua 脚本创建 S3 存储桶
+ 配置 IAM 实例配置文件，使其具有对 S3 存储桶的读取权限
+ 设置 S3 VPC 网关终端节点，无需互联网即可直接访问
+ 准备要从 S3 下载的用户数据脚本

**使用 S3 部署 CLI 过滤器插件脚本**

1. 将您的`cli_filter.lua`脚本上传到 S3 存储桶。

1. 使用存储桶的 S3 读取权限配置您的 IAM 实例配置文件。

1. 在启动模板用户数据中添加 shell 代码以下载脚本：

   ```
   aws s3 cp s3://my-bucket/cli_filter.lua /etc/aws/pcs/scheduler/slurm-24.11/cli_filter.lua
   chmod 644 /etc/aws/pcs/scheduler/slurm-24.11/cli_filter.lua
   ```

1. 使用更新的启动模板部署计算节点组。

1. 测试作业提交以验证脚本的功能。

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

完成 S3 部署后：
+ CLI 筛选插件脚本将在启动期间自动下载到所有实例
+ S3 中的脚本更新会反映在新启动的实例上
+ Job 提交策略在整个集群中得到一致执行

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

**S3 访问被拒**  
**症状：**实例启动失败或脚本未下载。  
**可能的原因：**缺少 IAM 权限或 S3 VPC 终端节点。  
**解决方案：**验证 IAM 实例配置文件是否具有`s3:GetObject`权限并且已配置 S3 VPC 终端节点。