

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

# 使用列出并更新路由控制和状态 AWS CLI
<a name="getting-started-cli-routing.control-state"></a>

创建 Amazon 应用程序恢复控制器（ARC）资源（例如，集群、路由控制和控制面板）后，您可以与集群交互，以列出和更新路由控制状态，以便进行失效转移。

对于您创建的每个集群，ARC 都会为您提供一组集群端点，五个 AWS 区域中各一个端点。在调用集群以检索或将路由控制状态设置为或时，必须指定其中一个区域终端节点（ AWS 区域 和终端节点 URL）`Off`。`On`当您使用 AWS CLI、获取或更新路由控制状态时，除了区域终端节点外，还必须指定区域终端节点`--region`的终端节点，如本节中的示例所示。

您可以使用任何区域集群端点。建议您的系统能够通过区域端点路由，准备好重试每个可用的端点。有关说明按顺序尝试集群端点的代码示例，请参阅[应用程序恢复控制器使用的操作 AWS SDKs](service_code_examples_actions.md)。

有关使用的更多信息 AWS CLI，请参阅《 AWS CLI 命令参考》。有关路由控制 API 操作的列表以及指向更多信息的链接，请参阅[路由控制 API 操作](actions.routing-control.md)。

**重要**  
尽管您可以在 Amazon Route 53 控制台上[更新路由控制状态](routing-control.update.api.md)，但我们建议您使用 AWS CLI 或 AWS SDK 更新路由控制状态。ARC 通过 ARC 路由控制数据面板提供极高的可靠性，以重新路由流量和跨单元格失效转移。有关使用 ARC 进行失效转移的更多建议，请参阅 [ARC 中路由控制的最佳实践](route53-arc-best-practices.regional.md)。

创建路由控制时，状态设置为 `Off`。这意味着流量不会路由到该路由控制的目标单元格。您可以通过运行 `get-routing-control-state` 命令验证路由控制的状态。

要确定将要指定的区域和端点，请运行 `describe-clusters` 命令以查看 `ClusterEndpoints`。每个都`ClusterEndpoint`包括一个区域和相应的终端节点，您可以使用它们来获取或更新路由控制状态。 *[DescribeCluster](https://docs.aws.amazon.com/recovery-cluster/latest/api/cluster-clusterarn.html)是一项恢复控制配置 API 操作。建议您将 ARC 区域集群端点的本地副本保存在书签中，或者硬编码到用于重试端点的自动化代码中。*

## 1. 列出路由控制
<a name="getting-started-cli-routing.view-rc"></a>

您可以使用高度可靠的 ARC 数据面板端点查看路由控制和路由控制状态。

1. 列出特定控制面板的路由控制。如果不指定控制面板，`list-routing-controls` 会返回集群中的所有路由控制。

```
aws route53-recovery-cluster list-routing-controls --control-panel-arn \
        arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456 \ 
        --region us-west-2 \
        --endpoint-url https://host-dddddd.us-west-2.example.com/v1
```

```
{
    "RoutingControls": [{
        "ControlPanelArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456",
        "ControlPanelName": "ExampleControlPanel",
        "RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567",
        "RoutingControlName": "RCOne",
        "RoutingControlState": "On"
    },
    {
        "ControlPanelArn": "arn:aws:route53-recovery-control::023759465626:controlpanel/0123456bbbbbbb0123456bbbbbb0123456",
        "ControlPanelName": "ExampleControlPanel",
        "RoutingControlArn": "arn:aws:route53-recovery-control::023759465626:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/zzzzxxxxyyyy123456",
        "RoutingControlName": "RCTwo",
        "RoutingControlState": "Off"
    }
]
```

## 2. 获取路由控制
<a name="getting-started-cli-routing.get-rc"></a>

2. 获取路由控制状态。

```
aws route53-recovery-cluster get-routing-control-state --routing-control-arn \
        arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567 \
        --region us-west-2 \
        --endpoint-url https://host-dddddd.us-west-2.example.com/v1
```

```
{"RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567",
    "RoutingControlName": "RCOne",
    "RoutingControlState": "On"
}
```

## 2. 更新路由控制
<a name="getting-started-cli-routing.update-rc"></a>

要将流量路由到路由控制所控制的目标端点，请将路由控制状态更新为 `On`。通过运行 `update-routing-control-state` 命令更新路由控制状态。（请求成功时，响应为空。）

2a. 更新路由控制状态。

```
aws route53-recovery-cluster update-routing-control-state \
        --routing-control-arn \
        arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567 \
        --routing-control-state On \
        --region us-west-2 \
        --endpoint-url https://host-dddddd.us-west-2.example.com/v1
```

```
{}
```

您可以通过一个 API 调用同时更新多个路由控制：`update-routing-control-states`。（请求成功时，响应为空。）

2b. 一次更新多个路由控制状态（批量更新）。

```
aws route53-recovery-cluster update-routing-control-states \
        --update-routing-control-state-entries \
        '[{"RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/abcdefg1234567",
        "RoutingControlState": "Off"}, \
        {"RoutingControlArn": "arn:aws:route53-recovery-control::111122223333:controlpanel/0123456bbbbbbb0123456bbbbbb0123456/routingcontrol/hijklmnop987654321",
        "RoutingControlState": "On"}]' \
        --region us-west-2 \
        --endpoint-url https://host-dddddd.us-west-2.example.com/v1
```

```
{}
```