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

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

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

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

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

有关使用 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
{}