

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

# 使用 ARC 就绪检查 API 操作的示例 AWS CLI
<a name="getting-started-cli-readiness"></a>

**注意**  
从 2026 年 4 月 30 日起，Amazon 应用程序恢复控制器 (ARC) 中的准备情况检查功能将不再向新客户开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [Amazon 应用程序恢复控制器 (ARC) 准备情况检查可用性变更](https://docs.aws.amazon.com/r53recovery/latest/dg/arc-readiness-availability-change.html)。

本节介绍简单的应用程序示例，使用使用 Amazon 应用程序恢复控制器 (ARC) 中的准备情况检查功能，使用 API 操作。 AWS Command Line Interface 这些示例旨在帮助您基本了解如何通过 CLI 使用就绪检查功能。

ARC 中的就绪检查会审计应用程序副本中的资源不匹配问题。要为应用程序设置就绪性检查，您必须在 ARC *单元*中设置或建模您的应用程序资源，使其与您为应用程序创建的副本保持一致。然后，您可以设置就绪检查以审计这些副本，以帮助您确保备用应用程序副本及其资源持续与生产副本相匹配

我们来看一个简单的案例。您有一个名为 Simple-Service 的应用程序目前在美国东部（弗吉尼亚州北部）区域 (us-east-1) 运行。您还在美国西部（俄勒冈州）区域 (us-west-2) 有一个应用程序备用副本。在本例中，我们将配置就绪检查，以比较应用程序的这两个版本。这样，我们就可以确保美国西部（俄勒冈州）区域的备用副本在失效转移场景中能够准备好接收流量。

有关使用的更多信息 AWS CLI，请参阅[AWS CLI 命令参考](https://docs.aws.amazon.com/cli/latest/reference/route53-recovery-readiness/index.html)。有关就绪 API 操作的列表和指向更多信息的链接，请参阅[就绪检查 API 操作](actions.readiness.md)。

ARC 中的*单元格*代表故障边界（如可用区或区域），并集合到*恢复组*中。恢复组代表您要检查失效转移就绪情况的应用程序。有关就绪检查组成部分的更多信息，请参阅[就绪检查组件](introduction-components-readiness.md)。

**注意**  
ARC 是一项支持多个终端节点的全球服务， AWS 区域 但您必须在大多数 ARC CLI 命令中指定美国西部（俄勒冈`--region us-west-2`）区域（即指定参数）。例如，创建恢复组或就绪检查等资源。

在我们的应用程序示例中，首先要为拥有资源的每个区域创建一个单元格。然后，创建一个恢复组，接着完成就绪检查的设置。

## 1. 创建单元格
<a name="getting-started-cli-readiness.cell"></a>

1a. 创建 us-east-1 单元格。

```
aws route53-recovery-readiness --region us-west-2 create-cell \
				--cell-name east-cell
```

```
{
    "CellArn": "arn:aws:route53-recovery-readiness::111122223333:cell/east-cell",
    "CellName": "east-cell",
    "Cells": [],
    "ParentReadinessScopes": [],
    "Tags": {}
}
```

1b. 创建 us-west-1 单元格。

```
aws route53-recovery-readiness --region us-west-2 create-cell \
				--cell-name west-cell
```

```
{
    "CellArn": "arn:aws:route53-recovery-readiness::111122223333:cell/west-cell",
    "CellName": "west-cell",
    "Cells": [],
    "ParentReadinessScopes": [],
    "Tags": {}
}
```

1c. 现在，我们有了两个单元格。您可以通过调用 `list-cells` API 来验证它们是否存在。

```
aws route53-recovery-readiness --region us-west-2 list-cells
```

```
{
    "Cells": [
        {
            "CellArn": "arn:aws:route53-recovery-readiness::111122223333:cell/east-cell",
            "CellName": "east-cell",
            "Cells": [],
            "ParentReadinessScopes": [],
            "Tags": {}
        },
        {
            "CellArn": "arn:aws:route53-recovery-readiness::111122223333:cell/west-cell",
            "CellName": "west-cell"
            "Cells": [],
            "ParentReadinessScopes": [],
            "Tags": {}
        }
    ]
}
```

## 2. 创建恢复组
<a name="getting-started-cli-readiness.recovery"></a>

恢复组是 ARC 中恢复就绪的顶级资源。恢复组代表整个应用程序。在该步骤中，我们将创建一个恢复组，对整个应用程序进行建模，然后添加我们创建的两个单元格。

2a. 创建恢复组。

```
aws route53-recovery-readiness --region us-west-2 create-recovery-group \
				--recovery-group-name simple-service-recovery-group \
			    --cells "arn:aws:route53-recovery-readiness::111122223333:cell/east-cell"\
			    "arn:aws:route53-recovery-readiness::111122223333:cell/west-cell"
```

```
{
    "Cells": [],
    "RecoveryGroupArn": "arn:aws:route53-recovery-readiness::111122223333:recovery-group/simple-service-recovery-group",
    "RecoveryGroupName": "simple-service-recovery-group",
    "Tags": {}
}
```

2b. （可选）您可以通过调用 `list-recovery-groups ` API 来验证恢复组是否已正确创建。

```
aws route53-recovery-readiness --region us-west-2 list-recovery-groups
```

```
{
    "RecoveryGroups": [
        {
            "Cells": [
                "arn:aws:route53-recovery-readiness::111122223333:cell/east-cell",
                "arn:aws:route53-recovery-readiness::111122223333:cell/west-cell"
            ],
            "RecoveryGroupArn": "arn:aws:route53-recovery-readiness::111122223333:recovery-group/simple-service-recovery-group",
            "RecoveryGroupName": "simple-service-recovery-group",
            "Tags": {}
        }
    ]
}
```

现在我们已经有了应用程序模型，接着添加要监控的资源。在 ARC 中，您要监控的一组资源称为资源集。资源集包含全部属于相同类型的资源。我们对资源集中的资源进行相互比较，以帮助确定单元格是否准备好进行失效转移。

## 3. 创建资源集
<a name="getting-started-cli-readiness.resource"></a>

假设我们的 Simple-Service 应用程序非常简单，只使用 DynamoDB 表。它在 us-east-1 中有一张 DynamoDB 表，在 us-west-2 中也有一张。资源集还包含就绪范围，用于标识每个资源包含在哪个单元格中。

3a. 创建反映 Simple-Service 应用程序资源的资源集。

```
aws route53-recovery-readiness --region us-west-2 create-resource-set \
				--resource-set-name ImportantInformationTables \
				--resource-set-type AWS::DynamoDB::Table \
				--resources
				ResourceArn="arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsWest2",ReadinessScopes="arn:aws:route53-recovery-readiness::111122223333:cell/west-cell" 
				ResourceArn="arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsEast1",ReadinessScopes="arn:aws:route53-recovery-readiness::111122223333:cell/east-cell"
```

```
{
    "ResourceSetArn": "arn:aws:route53-recovery-readiness::111122223333:resource-set/sample-resource-set",
    "ResourceSetName": "ImportantInformationTables",
    "Resources": [
        {
            "ReadinessScopes": [
                "arn:aws:route53-recovery-readiness::111122223333:cell/west-cell"
            ],
            "ResourceArn": "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsWest2"
        },
        {
            "ReadinessScopes": [
                "arn:aws:route53-recovery-readiness::111122223333:cell/east-cell"
            ],
            "ResourceArn": "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsEast1"
        }
    ],
    "Tags": {}
}
```

3b. （可选）您可以通过调用 `list-resource-sets` API 来验证资源集中包含的资源。这列出了 AWS 账户的所有资源集。在这里，您可以看到我们只有上面创建的一个资源集。

```
aws route53-recovery-readiness --region us-west-2 list-resource-sets
```

```
{
    "ResourceSets": [
        {
            "ResourceSetArn": "arn:aws:route53-recovery-readiness::111122223333:resource-set/ImportantInformationTables",
            "ResourceSetName": "ImportantInformationTables",
            "Resources": [
                {
                    "ReadinessScopes": [
                        "arn:aws:route53-recovery-readiness::111122223333:cell/west-cell"
                    ],
                    "ResourceArn": "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsWest2"
                },
                {
                    "ReadinessScopes": [
                        "arn:aws:route53-recovery-readiness::111122223333:cell/east-cell"
                    ],
                    "ResourceArn": "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsEast1"
                }
            ],
            "Tags": {}
        }
    ]
}{
    "ResourceSets": [
        {
            "ResourceSetArn": "arn:aws:route53-recovery-readiness::111122223333:resource-set/ImportantInformationTables",
            "ResourceSetName": "ImportantInformationTables",
            "Resources": [
                {
                    "ReadinessScopes": [
                        "arn:aws:route53-recovery-readiness::111122223333:cell/west-cell"
                    ],
                    "ResourceArn": "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsWest2"
                },
                {
                    "ReadinessScopes": [
                        "arn:aws:route53-recovery-readiness::&ExampleAWSAccountNo1;:cell/east-cell"
                    ],
                    "ResourceArn": "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsEast1"
                }
            ],
            "Tags": {}
        }
    ]
}
```

现在，我们已经创建了单元格、恢复组和资源集，以便在 ARC 中对 Simple-Service 应用程序进行建模。接下来，我们将设置就绪检查，以监控资源是否准备好进行失效转移。

## 4. 创建就绪检查
<a name="getting-started-cli-readiness.check"></a>

就绪检查将一组规则应用于附加到检查的资源集中的每个资源。规则特定于每种资源类型。也就是说，`AWS::DynamoDB::Table`、`AWS::EC2::Instance` 等有不同的规则。规则会从各个维度检查资源，包括配置、容量（如果可用而且适用）、限制（如果可用而且适用）和路由配置。

**注意**  
要查看就绪检查中应用于资源的规则，可以使用 `get-readiness-check-resource-status` API，如步骤 5 中所述。要查看 ARC 中所有就绪规则的列表，请使用 `list-rules` 或参阅[ARC 中的就绪规则描述](recovery-readiness.rules-resources.md)。ARC 有一组针对每种资源类型运行的特定规则；这些规则目前不能自定义。

4a. 为资源集 ImportantInformationTables 创建就绪检查。

```
aws route53-recovery-readiness --region us-west-2 create-readiness-check \
				--readiness-check-name ImportantInformationTableCheck --resource-set-name ImportantInformationTables
```

```
{
    "ReadinessCheckArn": "arn:aws:route53-recovery-readiness::111122223333:readiness-check/ImportantInformationTableCheck",
    "ReadinessCheckName": "ImportantInformationTableCheck",
    "ResourceSet": "ImportantInformationTables",
    "Tags": {}
}
```

4b. （可选）要验证是否已成功创建就绪检查，请运行 `list-readiness-checks` API。该 API 显示账户中的所有就绪检查。

```
aws route53-recovery-readiness --region us-west-2 list-readiness-checks
```

```
{
    "ReadinessChecks": [
        {
            "ReadinessCheckArn": "arn:aws:route53-recovery-readiness::111122223333:readiness-check/ImportantInformationTableCheck",
            "ReadinessCheckName": "ImportantInformationTableCheck",
            "ResourceSet": "ImportantInformationTables",
            "Tags": {}
        }
    ]
}
```

## 5. 监控就绪检查
<a name="getting-started-cli-readiness.monitor"></a>

现在，我们已经对应用程序进行了建模并添加了就绪检查，接下来可以监控资源了。您可以在四个级别上对应用程序的就绪情况进行建模：就绪检查级别（一组资源）、单个资源级别、单元格级别（可用区或区域中的所有资源）和恢复组级别（整个应用程序）。下面提供了获取上述每种类型的就绪状态的命令。

5a. 查看就绪检查的状态。

```
aws route53-recovery-readiness --region us-west-2 get-readiness-check-status\
				--readiness-check-name ImportantInformationTableCheck
```

```
{
    "Readiness": "READY",
    "Resources": [
        {
            "LastCheckedTimestamp": "2021-01-07T00:53:39Z",
            "Readiness": "READY",
            "ResourceArn": "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsWest2"
        },
        {
            "LastCheckedTimestamp": "2021-01-07T00:53:39Z",
            "Readiness": "READY",
            "ResourceArn": "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsEast2"
    ]
}
```

5b. 查看就绪检查中单个资源的详细就绪状态，包括检查的每条规则的状态。

```
aws route53-recovery-readiness --region us-west-2 get-readiness-check-resource-status \
				--readiness-check-name ImportantInformationTableCheck \ 
				--resource-identifier "arn:aws:dynamodb:us-west-2:111122223333:table/TableInUsWest2"
```

```
{"Readiness": "READY",
    "Rules": [
        {
            "LastCheckedTimestamp": "2021-01-07T00:55:41Z",
            "Messages": [],
            "Readiness": "READY",
            "RuleId": "DynamoTableStatus"
        },
        {
            "LastCheckedTimestamp": "2021-01-07T00:55:41Z",
            "Messages": [],
            "Readiness": "READY",
            "RuleId": "DynamoCapacity"
        },
        {
            "LastCheckedTimestamp": "2021-01-07T00:55:41Z",
            "Messages": [],
            "Readiness": "READY",
            "RuleId": "DynamoPeakRcuWcu"
        },
        {
            "LastCheckedTimestamp": "2021-01-07T00:55:41Z",
            "Messages": [],
            "Readiness": "READY",
            "RuleId": "DynamoGSIsPeakRcuWcu"
        },
        {
            "LastCheckedTimestamp": "2021-01-07T00:55:41Z",
            "Messages": [],
            "Readiness": "READY",
            "RuleId": "DynamoGSIsConfig"
        },
        {
            "LastCheckedTimestamp": "2021-01-07T00:55:41Z",
            "Messages": [],
            "Readiness": "READY",
            "RuleId": "DynamoGSIsStatus"
        },
        {
            "LastCheckedTimestamp": "2021-01-07T00:55:41Z",
            "Messages": [],
            "Readiness": "READY",
            "RuleId": "DynamoGSIsCapacity"
        },
        {
            "LastCheckedTimestamp": "2021-01-07T00:55:41Z",
            "Messages": [],
            "Readiness": "READY",
            "RuleId": "DynamoReplicationLatency"
        },
        {
            "LastCheckedTimestamp": "2021-01-07T00:55:41Z",
            "Messages": [],
            "Readiness": "READY",
            "RuleId": "DynamoAutoScalingConfiguration"
        },
        {
            "LastCheckedTimestamp": "2021-01-07T00:55:41Z",
            "Messages": [],
            "Readiness": "READY",
            "RuleId": "DynamoLimits"
        }
    ]
}
```

5c. 查看单元格的总体就绪情况。

```
aws route53-recovery-readiness --region us-west-2 get-cell-readiness-summary \
				--cell-name west-cell
```

```
{
    "Readiness": "READY",
    "ReadinessChecks": [
        {
            "Readiness": "READY",
            "ReadinessCheckName": "ImportantTableCheck"
        }
    ]
}
```

5d. 最后，查看恢复组级别上应用程序的顶级就绪情况。

```
aws route53-recovery-readiness --region us-west-2 get-recovery-group-readiness-summary \
				--recovery-group-name simple-service-recovery-group
```

```
{
    "Readiness": "READY",
    "ReadinessChecks": [
        {
            "Readiness": "READY",
            "ReadinessCheckName": "ImportantTableCheck"
        }
    ]
}
```