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

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

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

创建 Amazon Application Recovery Controller (ARC) 资源(例如集群、路由控制和控制面板)后,您可以与集群交互以列出和更新故障转移的路由控制状态。

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

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

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

重要

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

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

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

1. 列出路由控制

您可以使用高度可靠的 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
{}