

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

# 准备应用程序
准备应用程序

要准备应用程序，必须先创建应用程序，分配弹性策略，然后从输入源导入应用程序资源。有关用于准备应用程序 AWS Resilience Hub APIs 的的更多信息，请参阅以下主题：
+ [创建 应用程序](#create-app-using-api)
+ [创建弹性策略](#create-res-policy-using-api)
+ [从输入源导入资源并监控导入状态](#import-app-resource-using-api)
+ [发布您的应用程序的草稿版本并分配弹性策略](#publish-application-using-api)

## 创建 应用程序
创建 应用程序

要在中创建新应用程序 AWS Resilience Hub，必须调用 `CreateApp` API 并提供唯一的应用程序名称。相关此 API 的更多信息，请参阅 [https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_CreateApp.html](https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_CreateApp.html)。

以下示例演示了如何在 AWS Resilience Hub 中使用 `CreateApp` API 创建新应用程序 `newApp`。

### 请求
用于创建应用程序的请求 API

```
aws resiliencehub create-app --name newApp
```

### 响应
用于创建应用程序的响应 API

```
{
    "app": {
        "appArn": "<App_ARN>",
        "name": "newApp",
        "creationTime": "2022-10-26T19:48:00.434000+03:00",
        "status": "Active",
        "complianceStatus": "NotAssessed",
        "resiliencyScore": 0.0,
        "tags": {},
        "assessmentSchedule": "Disabled"
    }
}
```

## 创建弹性策略
创建弹性策略

创建应用程序后，必须创建弹性策略，以便能够使用 `CreateResiliencyPolicy` API 了解应用程序的弹性状态。相关此 API 的更多信息，请参阅 [https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_CreateResiliencyPolicy.html](https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_CreateResiliencyPolicy.html)。

以下示例显示了如何 AWS Resilience Hub 使用 `CreateResiliencyPolicy` API `newPolicy` 为您的应用程序创建。

### 请求
用于创建弹性策略的请求 API

```
aws resiliencehub create-resiliency-policy \
--policy-name newPolicy --tier NonCritical \
--policy '{"AZ": {"rtoInSecs": 172800,"rpoInSecs": 86400}, \
"Hardware": {"rtoInSecs": 172800,"rpoInSecs": 86400}, \
"Software": {"rtoInSecs": 172800,"rpoInSecs": 86400}}'
```

### 响应
用于创建弹性策略的响应 API

```
{
    "policy": {
        "policyArn": "<Policy_ARN>",
        "policyName": "newPolicy",
        "policyDescription": "",
        "dataLocationConstraint": "AnyLocation",
        "tier": "NonCritical",
        "estimatedCostTier": "L1",
        "policy": {
            "AZ": {
                "rtoInSecs": 172800,
                "rpoInSecs": 86400
            },
            "Hardware": {
                "rtoInSecs": 172800,
                "rpoInSecs": 86400
            },
            "Software": {
                "rtoInSecs": 172800,
                "rpoInSecs": 86400
            }
        },
        "creationTime": "2022-10-26T20:48:05.946000+03:00",
        "tags": {}
    }
}
```

## 从输入源导入资源并监控导入状态
导入应用程序资源并监控导入状态

AWS Resilience Hub 提供了以下内容 APIs 来将资源导入您的应用程序：
+ `ImportResourcesToDraftAppVersion` — 此 API 允许您将来自不同输入源的资源导入应用程序的草稿版本。相关此 API 的更多信息，请参阅 [https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_ImportResourcesToDraftAppVersion.html](https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_ImportResourcesToDraftAppVersion.html)。
+ `PublishAppVersion`— 此 API 会发布应用程序的新版本以及更新的版本 AppComponents。相关此 API 的更多信息，请参阅 [https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_PublishAppVersion.html](https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_PublishAppVersion.html)。
+ `DescribeDraftAppVersionResourcesImportStatus` — 此 API 允许您监控向某个应用程序版本导入资源时的导入状态。相关此 API 的更多信息，请参阅 [https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_DescribeDraftAppVersionResourcesImportStatus.html](https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_DescribeDraftAppVersionResourcesImportStatus.html)。

以下示例演示了如何在 AWS Resilience Hub 中使用 `ImportResourcesToDraftAppVersion` API 将资源导入应用程序。

### 请求
用于导入应用程序资源并监控导入状态的请求 API

```
aws resiliencehub import-resources-to-draft-app-version \
--app-arn <App_ARN> \
--terraform-sources '[{"s3StateFileUrl": <S3_URI>}]'
```

### 响应
用于导入应用程序资源并监控导入状态的响应 API

```
{
    "appArn": "<App_ARN>",
    "appVersion": "draft",
    "sourceArns": [],
    "status": "Pending",
    "terraformSources": [
        {
            "s3StateFileUrl": <S3_URI>
        }
    ]
}
```

以下示例演示了如何在 AWS Resilience Hub 中使用 `CreateAppVersionResource` API 手动向应用程序添加资源。

### 请求
用于手动向应用程序添加资源的请求 API

```
aws resiliencehub create-app-version-resource \
--app-arn <App_ARN> \
--resource-name "backup-efs" \
--logical-resource-id '{"identifier": "backup-efs"}' \
--physical-resource-id '<Physical_resource_id_ARN>' \
--resource-type AWS::EFS::FileSystem \
--app-components '["new-app-component"]'
```

### 响应
用于手动向应用程序添加资源的响应 API

```
{
    "appArn": "<App_ARN>",
    "appVersion": "draft",
    "physicalResource": {
        "resourceName": "backup-efs",
        "logicalResourceId": {
            "identifier": "backup-efs"
        },
        "physicalResourceId": {
            "identifier": "<Physical_resource_id_ARN>",
            "type": "Arn"
        },
        "resourceType": "AWS::EFS::FileSystem",
        "appComponents": [
            {
                "name": "new-app-component",
                "type": "AWS::ResilienceHub::StorageAppComponent",
                "id": "new-app-component"
            }
        ]
    }
}
```

以下示例演示了如何在 AWS Resilience Hub 中使用 `DescribeDraftAppVersionResourcesImportStatus` API 监控资源的导入状态。

### 请求
用于监控资源导入状态的响应 API

```
aws resiliencehub describe-draft-app-version-resources-import-status \
--app-arn <App_ARN>
```

### 响应
用于监控资源导入状态的响应 API

```
{
    "appArn": "<App_ARN>",
    "appVersion": "draft",
    "status": "Success",
    "statusChangeTime": "2022-10-26T19:55:18.471000+03:00"
}
```

## 发布您的应用程序的草稿版本并分配弹性策略
发布您的应用程序并分配弹性策略

在运行评估之前，必须先发布应用程序的草稿版本，并为已发布的应用程序版本分配弹性策略。

**发布您的应用程序的草稿版本并分配弹性策略**

1. 要发布应用程序的草稿版本，请使用 `PublishAppVersion` API。相关此 API 的更多信息，请参阅 [https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_PublishAppVersion.html](https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_PublishAppVersion.html)。

   以下示例说明如何 AWS Resilience Hub 使用 `PublishAppVersion` API 发布应用程序的草稿版本。

   

**请求**  


   ```
   aws resiliencehub publish-app-version \
    --app-arn <App_ARN>
   ```

**响应**  


   ```
   {
       "appArn": "<App_ARN>",
       "appVersion": "release"
   }
   ```

1. 使用 `UpdateApp` API 将弹性策略应用于已发布的应用程序版本。相关此 API 的更多信息，请参阅 [https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_UpdateApp.html](https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_UpdateApp.html)。

   以下示例说明如何 AWS Resilience Hub 使用 `UpdateApp` API 将弹性策略应用于已发布的应用程序版本。

**请求**  


   ```
   aws resiliencehub update-app \
   --app-arn <App_ARN> \
   --policy-arn <Policy_ARN>
   ```

**响应**  


   ```
   {
       "app": {
           "appArn": "<App_ARN>",
           "name": "newApp",
           "policyArn": "<Policy_ARN>",
           "creationTime": "2022-10-26T19:48:00.434000+03:00",
           "status": "Active",
           "complianceStatus": "NotAssessed",
           "resiliencyScore": 0.0,
           "tags": {
               "resourceArn": "<App_ARN>"
           },
           "assessmentSchedule": "Disabled"
       }
   }
   ```