使用列出并更新路由控制和状态 Amazon CLI - Amazon Route 53 应用程序恢复控制器
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用列出并更新路由控制和状态 Amazon CLI

创建 Amazon Route 53 应用程序恢复控制器资源(例如集群、路由控制和控制面板)后,您可以与集群交互以列出和更新故障转移的路由控制状态。

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

您可以使用任何区域集群端点。我们建议您的系统在区域终端节点之间轮换,并做好使用每个可用终端节点重试的准备。有关说明按顺序尝试集群端点的代码示例,请参阅使用 Amazon SDK 的应用程序恢复控制器的操作

有关使用的更多信息 Amazon CLI,请参阅《 Amazon CLI 命令参考》。有关路由控制 API 操作的列表以及指向更多信息的链接,请参阅 路由控制 API 操作

重要

尽管您可以在 Amazon Route 53 控制台上更新路由控制状态,但我们建议您使用 Amazon CLI 或 Amazon SDK 更新路由控制状态。Route 53 ARC 通过 Route 53 ARC 路由控制数据面板提供极高的可靠性,以重新路由流量和跨单元格失效转移。有关使用 Route 53 ARC 进行失效转移的更多建议,请参阅Route 53 ARC 中路由控制的最佳实践

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

要确定将要指定的区域和端点,请运行 describe-clusters 命令以查看 ClusterEndpoints。每个 ClusterEndpoint 都包括一个区域和相应的端点,可用于获取或更新路由控制状态。DescribeCluster是一项恢复控制配置 API 操作。我们建议您将 Route 53 ARC 区域集群端点的本地副本保存在书签中,或者硬编码到用于重试端点的自动化代码中。

1. 列出路由控制

您可以使用高度可靠的 Route 53 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. 获取路由控制

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. 更新路由控制

要将流量路由到路由控制所控制的目标端点,请将路由控制状态更新为 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
{}