

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# 工作负载管理
<a name="workload-mgmt-config"></a>

在 Amazon Redshift 中，您可以使用工作负载管理 (WLM) 来定义可用的查询队列的数量，并定义如何将查询路由至这些队列以进行处理。WLM 是参数组配置的一部分。集群使用其关联的参数组中指定的 WLM 配置。

当您创建参数组时，默认 WLM 配置中包含一个队列，该队列最多可并发运行五个查询。如果您想要更好地控制查询处理，则可以添加更多队列并在每个队列中配置 WLM 属性。除非对其属性进行配置，否则您添加的每个队列都具有相同的默认 WLM 配置。

当您添加更多队列时，配置中的最后一个队列是*默认队列*。除非根据 WLM 配置中的标准将查询路由至另一个队列，否则该查询将由默认队列进行处理。您可以为默认队列指定模式和并发级别（查询槽），但不能为默认队列指定用户组或查询组。

 与其他参数一样，您无法修改默认参数组中的 WLM 配置。与默认参数组相关联的集群始终使用默认的 WLM 配置。要修改 WLM 配置，请创建一个新的参数组，然后将该参数组与需要自定义 WLM 配置的所有集群相关联。

## WLM 动态和静态属性
<a name="wlm-dynamic-and-static-properties"></a>

WLM 配置属性可以是动态的，也可以是静态的。您可以将动态属性应用于数据库而无需重新启动集群，但静态属性需要重新启动集群才能够使更改生效。有关静态和动态属性的更多信息，请参阅 [WLM 动态和静态配置属性](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-wlm-dynamic-properties.html)。

## WLM 配置参数的属性
<a name="wlm-json-config-properties"></a>

您可以使用 Amazon Redshift 控制台、AWS CLI、Amazon Redshift API 或 AWS 开发工具包之一配置 WLM。WLM 配置使用多个用于定义队列行为的属性，例如队列之间的内存分配、队列中可以并发运行的查询数量等。

**注意**  
 下列属性和其 Amazon Redshift 控制台名称一起显示，具体说明中提供了对应的 JSON 属性名称。

下表总结属性是适用于自动 WLM 还是手动 WLM。


****  

| WLM 属性 | 自动 WLM | 手动 WLM | 
| --- | --- | --- | 
| 自动 WLM | 是 | 是 | 
| 启用短查询加速 | 支持 | 是 | 
| 短查询的最大运行时间 | 支持 | 是 | 
| 优先级 | 是 | 否 | 
| 队列类型 | 支持 | 是 | 
| 队列名称 | 支持 | 是 | 
| 并发扩展模式 | 支持 | 是 | 
| 并发 | 否 | 是 | 
| 用户组 | 支持 | 是 | 
| 用户组通配符 | 支持 | 是 | 
| 查询组 | 支持 | 是 | 
| 查询组通配符 | 支持 | 是 | 
| 用户角色 | 支持 | 是 | 
| 用户角色通配符 | 支持 | 是 | 
| 超时 | 否 | 弃用 | 
| 内存 | 否 | 是 | 
| 查询监控规则 | 支持 | 是 | 

下面的列表说明了可以配置的 WLM 属性。

**自动 WLM**  
**自动 WLM** 设置为 `true` 以启动自动 WLM。自动 WLM 将**主要并发**和**内存(%)** 的值设置为 `Auto`。Amazon Redshift 管理查询并发性和内存分配。默认值为 `true`。  
JSON 属性：`auto_wlm`

**启用短查询加速**  
短查询加速 (SQA) 让选定的短时查询优先于长时查询。SQA 在专用空间中执行短时查询，因此 SQA 查询不会被迫排在队列中的长时查询后面等待。使用 SQA，短时查询会更快地开始执行，用户会更快地看到结果。当您启用 SQA 时，还可以为短时查询指定最大运行时间。要启用 SQA，请指定 `true`。默认为 `false`。此设置适用于每个参数组，而不是适用于队列。  
JSON 属性：`short_query_queue`

****短查询的最大运行时间****  
当您启用 SQA 时，可以指定 0 以允许 WLM 动态设置短查询的最大运行时间。或者，您也可以指定一个介于 1 到 20 秒之间的值（以毫秒为单位）。默认值为 `0`。  
JSON 属性：`max_execution_time`

**优先级**：  
优先级设置队列中运行的查询的优先级。要设置优先级，**WLM 模式**必须设置为**自动 WLM**；也即 `auto_wlm` 必须为 `true`。优先级值可以是 `highest`、`high`、`normal`、`low` 和 `lowest`。默认值为 `normal`。  
JSON 属性：`priority`

**队列类型**  
队列类型指定**自动 WLM** 或**手动 WLM** 使用的队列。将 `queue_type` 设置为 `auto` 或 `manual`。如果未指定，则默认值为 `manual`。  
JSON 属性：`queue_type`

**队列名称**  
队列的名称。可以根据业务需求设置队列的名称。队列名称在 WLM 配置中必须唯一，最多为 64 个字母数字字符、下划线或空格，并且不能包含引号。例如，如果您有一个 ETL 查询队列，则可将该队列命名为 `ETL queue`。此名称在指标、系统表值和 Amazon Redshift 控制台中用来标识队列。使用这些源中的名称的查询和报表需要能够处理名称的更改。以前，队列名称由 Amazon Redshift 生成。队列的默认名称为 `Queue 1`、`Queue 2`，依此类推，直至最后一个名为 `Default queue` 的队列。  
如果您更改队列名称，则 WLM 队列指标（例如 WLMQueueLength、WLMQueueWaitTime、WLMQueriesCompletedPerSecond、WLMQueryDuration、WLMRunningQueries 等）的 `QueueName` 维度值也会发生更改。因此，如果您更改队列的名称，则可能需要更改已设置的 CloudWatch 警报。
JSON 属性：`name`

**并发扩展模式**  
要在队列上启用并发扩展，请将**并发扩展模式**设置为 `auto`。当路由到队列的查询数超过队列的已配置并发数时，符合条件的查询将转到扩展集群。当有槽位可用时，将在主集群上运行查询。默认值为 `off`。  
JSON 属性：`concurrency_scaling`

**并发**  
手动 WLM 队列中可以并发运行的查询的数量。此属性仅适用于手动 WLM。如果启用了并发扩展，则当队列达到并发级别（查询槽）时，符合条件的查询将转到扩展集群。如果未启用并发扩展，则查询将在队列中等待，直到有槽位可用。范围介于 1-50 之间。  
JSON 属性：`query_concurrency`

**用户组**  
逗号分隔的用户组名称列表。当用户组成员在数据库中运行查询时，其查询将路由至与相应用户组相关联的队列。  
JSON 属性：`user_group`

**用户组通配符**  
用来指示是否对用户组启用通配符的布尔值。如果该值为 0，则禁用通配符；如果该值为 1，则启用通配符。启用通配符后，您可以在运行查询时使用“\$1”或“?”指定多个用户组。有关更多信息，请参阅[通配符](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-defining-query-queues.html#wlm-wildcards)。  
JSON 属性：`user_group_wild_card`

**查询组**  
逗号分隔的查询组列表。当查询组成员在数据库中运行查询时，其查询将路由至与相应查询组相关联的队列。  
JSON 属性：`query_group`

**Query Group Wildcard**  
用来指示是否对查询组启用通配符的布尔值。如果该值为 0，则禁用通配符；如果该值为 1，则启用通配符。启用通配符后，您可以在运行查询时使用“\$1”或“?”指定多个查询组。有关更多信息，请参阅[通配符](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-defining-query-queues.html#wlm-wildcards)。  
JSON 属性：`query_group_wild_card`

**用户角色**  
以逗号分隔的用户角色列表。当具有该用户角色的成员在数据库中运行查询时，其查询将路由至与其用户角色相关联的队列。有关用户角色的更多信息，请参阅[基于角色的访问控制 (RBAC)](https://docs.aws.amazon.com/redshift/latest/dg/t_Roles.html)。  
JSON 属性：`user_role`

**用户角色通配符**  
用来指示是否对查询组启用通配符的布尔值。如果该值为 0，则禁用通配符；如果该值为 1，则启用通配符。启用通配符后，您可以在运行查询时使用“\$1”或“?”指定多个查询组。有关更多信息，请参阅[通配符](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-defining-query-queues.html#wlm-wildcards)。  
JSON 属性：`user_role_wild_card`

**超时 (ms)**  
WLM 超时 (`max_execution_time`) 已弃用。使用自动 WLM 时不可用。相反，使用 `query_execution_time` 创建查询监控规则 (QMR) 来限制经过的查询执行时间。有关更多信息，请参阅 [WLM 查询监控规则](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-wlm-query-monitoring-rules.html)。  
查询在取消之前可以运行的最长时间，以毫秒为单位。在一些情况下，只读查询（例如 SELECT 语句）可能会由于 WLM 超时而取消。在这些情况下，WLM 会尝试根据 WLM 队列分配规则将该查询路由到下一个匹配的队列。如果查询不匹配任何其他队列定义，则取消查询；系统不会将其分配给默认队列。有关更多信息，请参阅 [WLM 查询队列跳过](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-defining-query-queues.html#wlm-queue-hopping)。WLM 超时不适用于已进入 `returning` 状态的查询。要查看查询的状态，请参阅 [STV\$1WLM\$1QUERY\$1STATE](https://docs.aws.amazon.com/redshift/latest/dg/r_STV_WLM_QUERY_STATE.html) 系统表。  
JSON 属性：`max_execution_time`

**“Memory”**  
分配给队列的内存百分比。如果您要为至少一个队列指定内存百分比，则必须为所有其他队列指定内存百分比，且所有队列的百分比合计不超过 100%。如果所有队列上的内存分配低于 100%，则未分配的内存将由服务管理。服务可以临时将此未分配内存提供给请求额外内存进行处理的队列。  
JSON 属性：`memory_percent_to_use`

**查询监控规则**  
您可以使用 WLM 查询监控规则，根据标准或谓词持续监控您的 WLM 队列中有无您指定的查询。例如，您可监控倾向于使用额外系统资源的查询，然后在查询超过您指定的性能界限时启动指定的操作。  
如果您选择以编程方式创建规则，强烈建议您使用控制台生成包含在参数组定义中的 JSON。
您将一个查询监控规则与特定的查询队列相关联。您可以让每个队列有最多 25 个规则，并且所有队列的总限制为 25 个规则。  
JSON 属性：`rules`  
JSON 属性层次结构：  

```
rules
    rule_name
    predicate
        metric_name
        operator
        value
    action
        value
```
对于每个规则，您可以指定以下属性：  
+ `rule_name` – 规则名称必须在 WLM 配置中是唯一的。规则名称最多可包含 32 个字母数字字符或下划线，且不能包含空格或引号。
  + `predicate` – 您最多可以为每个规则设置 3 个谓词。对于每个谓词，指定以下属性。
    + `metric_name` – 有关指标的列表，请参阅《Amazon Redshift 数据库开发人员指南》**中的[查询监控指标](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-wlm-query-monitoring-rules.html#cm-c-wlm-query-monitoring-metrics)。
    + `operator` – 操作包括 `=`、`<` 和 `>`。
    + `value` – 指定指标的可触发操作的阈值。
+ `action` – 每个规则都与一个操作相关联。有效的操作是：
  + `log`
  + `hop`（仅适用于手动 WLM）
  + `abort`
  + `change_query_priority`（仅适用于自动 WLM）
以下示例显示名为 `rule_1` 的 WLM 查询监控规则的 JSON，带有两个谓词以及操作 `hop`。  

```
"rules": [
          {
            "rule_name": "rule_1",
            "predicate": [
              {
                "metric_name": "query_execution_time",
                "operator": ">",
                "value": 100000
              },
              {
                "metric_name": "query_blocks_read",
                "operator": ">",
                "value": 1000
              }
            ],
            "action": "hop"
          }
        ]
```

有关这些属性以及用于配置查询队列的策略的更多信息，请参阅《Amazon Redshift 数据库开发人员指南》**中的[实施工作负载管理](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-implementing-workload-management.html)。

## 使用 AWS CLI 配置 WLM 参数
<a name="Configuring-the-wlm-json-configuration-Parameter"></a>

 要配置 WLM，您需要修改 `wlm_json_configuration` 参数。`wlm_json_configuration` 属性值的最大大小为 8000 个字符。相应值采用 JavaScript 对象表示法 (JSON) 格式。如果您想要使用 AWS CLI、Amazon Redshift API 或其中一个 AWS 开发工具包来配置 WLM，则可以使用此部分的其余内容来了解如何为 `wlm_json_configuration` 参数构建 JSON 结构。

**注意**  
 如果您使用 Amazon Redshift 控制台来配置 WLM，则无需了解 JSON 格式，因为您可以通过控制台轻松添加队列并配置其属性。有关使用控制台配置 WLM 的更多信息，请参阅[修改参数组](parameter-group-modify.md)。

示例

下面的示例是默认的 WLM 配置，定义了使用自动 WLM 的队列。

```
{
   "auto_wlm": true
}
```

示例

下面的示例是一个自定义 WLM 配置，它定义了一个并发级别（查询槽）为五的手动 WLM 队列。

```
{
   "query_concurrency":5
}
```

语法

默认的 WLM 配置非常简单，只有一个队列和一个属性。您可以添加更多队列并为 JSON 结构中的每个队列配置多种属性。以下语法表示您用于配置具有多种属性的多个队列的 JSON 结构：

```
[
   {
      "ParameterName":"wlm_json_configuration", "ParameterValue":
         "[
             {
                "q1_first_property_name":"q1_first_property_value",
                "q1_second_property_name":"q1_second_property_value", 
                ...
             },
             {
                "q2_first_property_name":"q2_first_property_value",
                "q2_second_property_name":"q2_second_property_value", 
                ...
             }
             ...

         ]"
   }
]
```

在上述示例中，以 **q1** 开头的代表性属性是第一个队列的数组中的对象。其中每个对象都是名称/值对；`name` 和 `value` 共同设置第一个队列的 WLM 属性。以 **q2** 开头的代表性属性是第二个队列的数组中的对象。如果您需要更多队列，则可以为每个增加的队列添加另一个数组并为每个对象设置属性。

 修改 WLM 配置时，您必须涵盖队列的整个结构，即使您只是想更改队列中的一个属性也是如此。这是因为整个 JSON 结构以字符串的形式传递为 `wlm_json_configuration` 参数的值。

### 设置 AWS CLI 命令的格式
<a name="construct-json-param-value"></a>

使用 `wlm_json_configuration` 时，您需要为 AWS CLI 参数指定具体格式。您使用的格式取决于您的客户端操作系统。操作系统可以采用不同的方式将 JSON 结构括起来，因此它可以根据命令行正确地进行传输。要详细了解如何在 Linux、Mac OS X 和 Windows 操作系统中构建相应命令，请参阅以下部分。有关封闭 AWS CLI 中的 JSON 数据结构的差异的更多信息，一般情况下，请参阅《AWS Command Line Interface 用户指南》**中的[引用字符串](https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#quoting-strings)。

示例

以下示例命令为名为 `example-parameter-group` 的参数组配置手动 WLM。该配置可启用短查询加速，其中短查询的最大运行时间设置为 0，这指示 WLM 可动态设置该值。`ApplyType` 设置为 `dynamic`。此设置表示对参数中的动态属性做出的所有更改都将立即应用，除非同时对配置做出了其他静态更改。该配置定义下列三个队列：
+  通过第一个队列，用户可以将 `report` 指定为其查询中的标签（在 `query_group` 属性中所指定的），以帮助他们将查询路由至该队列。对于 `report*` 标签，通配符搜索处于启用状态，因此标签无需完全相同，查询也可路由至该队列。例如，`reports` 和 `reporting` 都与此查询组匹配。此队列将分配所有队列总内存的 25%，并且最多可同时运行四个查询。查询限制为最大时间 20000 毫秒 (ms)。模式设置为自动，因此当队列的查询槽位已满时，符合条件的查询将发送到扩展集群。
+  通过第二个队列，作为数据库中 `admin` 或 `dba` 组成员的用户可以将其查询路由至队列以进行处理。对于用户组，通配符搜索处于禁用状态，因此用户必须与数据库中的组完全匹配，其查询才能路由至该队列。此队列将跨所有队列分配总内存的 40%，并且最多可同时运行五个查询。模式设置为关闭，因此管理员或 dba 组的成员发送的所有查询都在主集群上运行。
+  配置中的最后一个队列是默认队列。此队列将分配所有队列总内存的 35%，并且最多可同时处理五个查询。模式设置为自动。

**注意**  
 为了便于演示，该示例分为多行显示出来。实际命令中不得使用换行符。

```
aws redshift modify-cluster-parameter-group 
--parameter-group-name example-parameter-group 
--parameters
'[
  {
    "query_concurrency": 4,
    "max_execution_time": 20000,
    "memory_percent_to_use": 25,
    "query_group": ["report"],
    "query_group_wild_card": 1,
    "user_group": [],
    "user_group_wild_card": 0,
    "user_role": [],
    "user_role_wild_card": 0,
    "concurrency_scaling": "auto", 
    "queue_type": "manual"
  },
  {
    "query_concurrency": 5,
    "memory_percent_to_use": 40,
    "query_group": [],
    "query_group_wild_card": 0,
    "user_group": [
      "admin",
      "dba"
    ],
    "user_group_wild_card": 0,
    "user_role": [],
    "user_role_wild_card": 0,
    "concurrency_scaling": "off",
    "queue_type": "manual"    
  },
  {
    "query_concurrency": 5,
    "query_group": [],
    "query_group_wild_card": 0,
    "user_group": [],
    "user_group_wild_card": 0,
    "user_role": [],
    "user_role_wild_card": 0,
    "concurrency_scaling": "auto",
    "queue_type": "manual"    
  },
  {"short_query_queue": true}
]'
```

以下是为自动 WLM 配置配置 WLM 查询监控规则的示例。该示例创建一个名为 `example-monitoring-rules` 的参数组。该配置定义了和上一示例相同的三个队列，但不再指定 `query_concurrency` 和 `memory_percent_to_use`。该配置还添加了以下规则和查询优先级：
+ 第一个队列定义名为 `rule_1` 的规则。该规则有两个谓词：`query_cpu_time > 10000000` 和 `query_blocks_read > 1000`。规则操作是 `log`。此队列的优先级为 `Normal`。
+ 第二个队列定义名为 `rule_2` 的规则。该规则有两个谓词：`query_execution_time > 600000000` 和 `scan_row_count > 1000000000`。规则操作是 `abort`。此队列的优先级为 `Highest`。
+ 配置中的最后一个队列是默认队列。此队列的优先级为 `Low`。

**注意**  
 为了便于演示，该示例分为多行显示出来。实际命令中不得使用换行符。

```
aws redshift modify-cluster-parameter-group 
--parameter-group-name example-monitoring-rules 
--parameters
'[ {
  "query_group" : [ "report" ],
  "query_group_wild_card" : 1,
  "user_group" : [ ],
  "user_group_wild_card" : 0,
  "user_role": [ ],
  "user_role_wild_card": 0,
  "concurrency_scaling" : "auto",
  "rules" : [{
    "rule_name": "rule_1",
    "predicate": [{
      "metric_name": "query_cpu_time",
      "operator": ">",
      "value": 1000000 },
      { "metric_name": "query_blocks_read",
      "operator": ">",
      "value": 1000
    } ],
    "action" : "log"
  } ],
   "priority": "normal",
   "queue_type": "auto"
}, {  
  "query_group" : [ ],
  "query_group_wild_card" : 0,
  "user_group" : [ "admin", "dba" ],
  "user_group_wild_card" : 0,
  "user_role": [ ],
  "user_role_wild_card": 0,
  "concurrency_scaling" : "off",
  "rules" : [ {
    "rule_name": "rule_2",
    "predicate": [
      {"metric_name": "query_execution_time",
      "operator": ">",
      "value": 600000000},
      {"metric_name": "scan_row_count",
      "operator": ">",
      "value": 1000000000}],
      "action": "abort"}],
   "priority": "high",
   "queue_type": "auto"

}, {
  "query_group" : [ ],
  "query_group_wild_card" : 0,
  "user_group" : [ ],
  "user_group_wild_card" : 0,
  "user_role": [ ],
  "user_role_wild_card": 0,
  "concurrency_scaling" : "auto",
  "priority": "low",
  "queue_type": "auto",
  "auto_wlm": true
}, {
  "short_query_queue" : true
} ]'
```

#### 在命令行中使用 AWS CLI 和 JSON 文件以配置 WLM
<a name="wlm-cli-json-file"></a>

您可以使用 `wlm_json_configuration` 修改 AWS CLI 参数，并将 `parameters` 参数值作为 JSON 文件传递。

```
aws redshift modify-cluster-parameter-group --parameter-group-name myclusterparaametergroup --parameters file://modify_pg.json 
```

`--parameters` 的参数存储在 `modify_pg.json` 文件中。文件位置是使用操作系统格式指定的。有关更多信息，请参阅[从文件中加载参数](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters.html#cli-usage-parameters-file)。下面显示了 `modify_pg.json` JSON 文件的内容示例。

```
[
    {
        "ParameterName": "wlm_json_configuration",
        "ParameterValue": "[{\"user_group\":\"example_user_group1\",\"query_group\": \"example_query_group1\", \"query_concurrency\":7},{\"query_concurrency\":5}]"
    }
]
```

```
[
    {
        "ParameterName": "wlm_json_configuration",
        "ParameterValue": "[{\"query_group\":[\"reports\"],\"query_group_wild_card\":0,\"query_concurrency\":4,\"max_execution_time\":20000,\"memory_percent_to_use\":25},{\"user_group\":[\"admin\",\"dba\"],\"user_group_wild_card\":1,\"query_concurrency\":5,\"memory_percent_to_use\":40},{\"query_concurrency\":5,\"memory_percent_to_use\":35},{\"short_query_queue\": true, \"max_execution_time\": 5000 }]",
        "ApplyType": "dynamic"
    }
]
```

#### 在 Linux 和 macOS X 操作系统上的命令行中使用 AWS CLI 配置 WLM 的规则
<a name="wlm-cli-linux-and-mac"></a>

请按照以下规则在一行中使用参数运行 AWS CLI 命令：
+ 整个 JSON 结构必须使用单引号 (') 和一组方括号 ([ ]) 括起来。
+ 所有参数名称和参数值必须使用双引号 (") 括起来。
+ 在 `ParameterValue` 值中，必须使用双引号 (") 和方括号 ([ ]) 将整个嵌套结构括起来。
+ 在嵌套结构中，必须使用大括号 (\$1 \$1) 将每个队列的每个属性和值括起来。
+ 在嵌套结构中，必须在每个双引号 (") 前面使用反斜杠 (\$1) 转义符。
+ 对于名称/值对，使用冒号 (:) 将每个属性与其值分隔开来。
+ 可使用逗号 (,) 将各个名称/值对彼此分隔开来。
+ 多个队列可通过在一个队列结束的右大括号 (\$1) 和下一个队列开始的左大括号 (\$1) 之间使用逗号 (,) 分隔开来。

#### 在 Microsoft Windows 操作系统上的 Windows PowerShell 中使用 AWS CLI 配置 WLM 的规则
<a name="wlm-cli-windows-powershell"></a>

请按照以下规则在一行中使用参数运行 AWS CLI 命令：
+ 整个 JSON 结构必须使用单引号 (') 和一组方括号 ([ ]) 括起来。
+ 所有参数名称和参数值必须使用双引号 (") 括起来。
+ 在 `ParameterValue` 值中，必须使用双引号 (") 和方括号 ([ ]) 将整个嵌套结构括起来。
+ 在嵌套结构中，必须使用大括号 (\$1 \$1) 将每个队列的每个属性和值括起来。
+ 在嵌套结构中，必须在每个双引号 (") 及其反斜杠 (\$1) 转义符前面使用反斜杠 (\$1) 转义符。该要求意味着，您将使用三个反斜杠和一个双引号以确保正确传递属性 (\$1\$1\$1")。
+ 对于名称/值对，使用冒号 (:) 将每个属性与其值分隔开来。
+ 可使用逗号 (,) 将各个名称/值对彼此分隔开来。
+ 多个队列可通过在一个队列结束的右大括号 (\$1) 和下一个队列开始的左大括号 (\$1) 之间使用逗号 (,) 分隔开来。

#### 在 Windows 操作系统上使用命令提示符配置 WLM 的规则
<a name="wlm-cli-cmd-windows"></a>

请按照以下规则在一行中使用参数运行 AWS CLI 命令：
+ 整个 JSON 结构必须使用双引号 (") 和一组方括号 ([ ]) 括起来。
+ 所有参数名称和参数值必须使用双引号 (") 括起来。
+ 在 `ParameterValue` 值中，必须使用双引号 (") 和方括号 ([ ]) 将整个嵌套结构括起来。
+ 在嵌套结构中，必须使用大括号 (\$1 \$1) 将每个队列的每个属性和值括起来。
+ 在嵌套结构中，必须在每个双引号 (") 及其反斜杠 (\$1) 转义符前面使用反斜杠 (\$1) 转义符。该要求意味着，您将使用三个反斜杠和一个双引号以确保正确传递属性 (\$1\$1\$1")。
+ 对于名称/值对，使用冒号 (:) 将每个属性与其值分隔开来。
+ 可使用逗号 (,) 将各个名称/值对彼此分隔开来。
+ 多个队列可通过在一个队列结束的右大括号 (\$1) 和下一个队列开始的左大括号 (\$1) 之间使用逗号 (,) 分隔开来。