

# 在 Ray 作业中使用作业参数
<a name="author-job-ray-job-parameters"></a>

**重要**  
自 2026 年 4 月 30 日起，AWS Glue for Ray 将不再向新客户开放。要使用 AWS Glue for Ray，请在该日期之前注册。现有客户可以继续正常使用该服务。要获取与 AWS Glue for Ray 相似的功能，可探索 Amazon EKS。有关更多信息，请参阅 [AWS Glue for Ray 终止支持](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html)。

为 AWS Glue Ray 任务设置参数的方式与为 AWS Glue Spark 作业设置参数的方法相同。有关 AWS Glue API 的更多信息，请参阅[作业](aws-glue-api-jobs-job.md)。您可以使用本参考中列出的不同参数配置 AWS Glue Ray 作业。也可以提供自己的参数。

您可以在控制台的 **Job details**（作业详细信息）选项卡的 **Job Parameters**（作业参数）标题下配置作业。还可以设置作业上的 `DefaultArguments` 或作业运行上的 `Arguments` 来通过 AWS CLI 配置作业。默认参数和作业参数将在多次运行时保留在作业中。

例如，以下是运行任务的语法，使用 `--arguments` 设置特殊参数。

```
$ aws glue start-job-run --job-name "CSV to CSV" --arguments='--scriptLocation="s3://my_glue/libraries/test_lib.py",--test-environment="true"'
```

设置参数后，您可以通过环境变量从 Ray 作业中访问作业参数。这为您提供了一种为每次运行配置作业的方法。环境变量的名称将是不带 `--` 前缀的作业参数名称。

例如，在上面的实例中，变量名将为 `scriptLocation` 和 `test-environment`。然后，您可以通过标准库中提供的方法检索参数：`test_environment = os.environ.get('test-environment')`。有关使用 Python 访问环境变量的更多信息，请参阅 Python 文档中的 [os module](https://docs.python.org/3/library/os.html)。

## 配置 Ray 作业生成日志的方式
<a name="author-job-ray-logging-configuration"></a>

默认情况下，Ray 作业生成的日志和指标会发送到 CloudWatch 和 Amazon S3。您可以使用 `--logging_configuration` 参数更改日志的生成方式，目前还可以用它来阻止 Ray 作业生成各种类型的日志。该参数会获取一个 JSON 对象，其键对应于您要更改的日志/行为。它支持以下键：
+ `CLOUDWATCH_METRICS` - 配置 CloudWatch 指标系列，这些指标可用于可视化作业运行状况。有关指标的更多信息，请参阅 [使用指标监控 Ray 作业](author-job-ray-monitor.md)。
+ `CLOUDWATCH_LOGS` - 配置 CloudWatch 日志，这些日志提供有关作业运行状态的 Ray 应用程序级别详细信息。有关日志的更多信息，请参阅[对日志中的 AWS Glue for Ray 错误进行故障排除](troubleshooting-ray.md)。
+ `S3` - 配置 AWS Glue 写入 Amazon S3 的内容，这些内容主要是类似于 CloudWatch 日志的信息，但以文件而不是日志流的形式写入。

要禁用 Ray 日志记录行为，请提供值 `{\"IS_ENABLED\": \"False\"}`。例如，要禁用 CloudWatch 指标和 CloudWatch 日志，请提供以下配置：

```
"--logging_configuration": "{\"CLOUDWATCH_METRICS\": {\"IS_ENABLED\": \"False\"}, \"CLOUDWATCH_LOGS\": {\"IS_ENABLED\": \"False\"}}"
```

## 参考
<a name="author-job-ray-parameters-reference"></a>

 Ray 作业可识别以下参数名称，这些参数名称可用于设置 Ray 作业和作业运行的脚本环境：
+ `--logging_configuration` - 用于停止生成 Ray 作业创建的各种日志。默认情况下，所有 Ray 作业都会生成这些日志。格式：字符串转义的 JSON 对象。有关更多信息，请参阅 [配置 Ray 作业生成日志的方式](#author-job-ray-logging-configuration)。
+ `--min-workers` — 分配给 Ray 作业的 Worker 节点的最小数量。一个 Worker 节点可以运行多个副本，每个虚拟 CPU 一个副本。格式：整数。最小值：0。最大值：`--number-of-workers (NumberOfWorkers)` 在作业定义中指定的值。有关 Worker 节点会计的更多信息，请参阅 [Ray 作业的工作线程会计](ray-jobs-section.md#author-job-ray-worker-accounting)。
+ `--object_spilling_config` - AWS Glue for Ray 支持使用 Amazon S3 作为扩展 Ray 对象存储可用空间的一种方式。要启用此行为，您可以为 Ray 提供一个带有此参数的*对象溢出* JSON 配置对象。有关 Ray 对象溢出配置的更多信息，请参阅 Ray 文档中的 [Object Spilling](https://docs.ray.io/en/latest/ray-core/objects/object-spilling.html)。格式：JSON 对象。

  AWS Glue for Ray 仅支持一次性溢出到磁盘或溢出到 Amazon S3。您可以提供多个溢出地点，前提是它们遵守此限制。溢出到 Amazon S3 时，您还需要为该存储桶的作业添加 IAM 权限。

  在 CLI 中提供 JSON 对象作为配置时，必须将其作为字符串提供，并对 JSON 对象进行字符串转义。例如，溢出到一个 Amazon S3 路径的字符串值将如下所示：`"{\"type\": \"smart_open\", \"params\": {\"uri\":\"s3path\"}}"`。在 AWS Glue Studio 中，将此参数作为 JSON 对象提供，无需额外格式。
+ `--object_store_memory_head` — 分配给 Ray 头节点上的 Plasma 对象存储的内存。此实例运行集群管理服务以及工作线程副本。该值表示热启动后实例上可用内存的百分比。使用此参数调整内存密集型工作负载，默认值对于大多数使用案例来说是可接受的。格式：正整数。最小值：1。最大值：100。

  有关 Plasma 的更多信息，请参阅 Ray 文档中的 [Plasma 内存对象存储](https://ray-project.github.io/2017/08/08/plasma-in-memory-object-store.html)。
+ `--object_store_memory_worker` — 分配给 Ray Worker 节点上的 Plasma 对象存储的内存。这些实例仅运行工作线程副本。该值表示热启动后实例上可用内存的百分比。此参数用于调整内存密集型工作负载，默认值对于大多数使用案例来说是可接受的。格式：正整数。最小值：1。最大值：100。

  有关 Plasma 的更多信息，请参阅 Ray 文档中的 [Plasma 内存对象存储](https://ray-project.github.io/2017/08/08/plasma-in-memory-object-store.html)。
+ `--pip-install` — 一组要安装的 Python 软件包。可以使用此参数从 PyPI 安装软件包。格式：以逗号分隔的列表。

  PyPI 软件包条目的格式为 `package==version`，带有目标软件包的 PyPI 名称和版本。条目使用 Python 版本匹配以匹配软件包和版本，例如 `==`，而不是单一等于 `=`。还有其他版本匹配运算符。有关更多信息，请参阅 Python 网站上的 [PEP 440](https://peps.python.org/pep-0440/#version-matching)。您还可以使用 `--s3-py-modules` 提供自定义模块。
+ `--s3-py-modules` - 一组托管 Python 模块分发的 Amazon S3 路径。格式：以逗号分隔的列表。

  您可以用它来将自己的模块分发到您的 Ray 作业中。您还可以使用 `--pip-install` 提供来自 PyPI 的模块。与 AWS Glue ETL 不同，自定义模块不是通过 pip 设置的，而是传递给 Ray 供分发。有关更多信息，请参阅 [用于 Ray 作业的其他 Python 模块](edit-script-ray-env-dependencies.md#edit-script-ray-python-libraries-additional)。
+ `--working-dir` - 托管在 Amazon S3 中的.zip 文件的路径，该文件包含要分发到运行 Ray 作业的所有节点的文件。格式：字符串。有关更多信息，请参阅 [为您的 Ray 作业提供文件](edit-script-ray-env-dependencies.md#edit-script-ray-working-directory)。