

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

# 修改您的应用程序
<a name="modify-application-using-api"></a>

AWS Resilience Hub 允许您通过编辑应用程序的草稿版本并将更改发布到新（已发布）版本来修改应用程序资源。 AWS Resilience Hub 使用已发布的应用程序版本（包括更新的资源）来运行弹性评估。

有关更多信息，请参阅以下主题：
+ [手动向应用程序添加资源](#manually-add-resource-using-api)
+ [将资源分组到单个应用程序组件](#group-resource-using-api)
+ [将资源排除在 AppComponent](#exclude-resource-using-api)

## 手动向应用程序添加资源
<a name="manually-add-resource-using-api"></a>

如果资源不是作为输入源的一部分部署的，则 AWS Resilience Hub 允许您使用 `CreateAppVersionResource` API 手动将资源添加到您的应用程序中。相关此 API 的更多信息，请参阅 [https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_CreateAppVersionResource.html](https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_CreateAppVersionResource.html)。

您必须向此 API 提供以下参数：
+ 应用程序的 Amazon 资源名称（ARN）
+ 资源的逻辑 ID
+ 资源的物理 ID
+ AWS CloudFormation 键入

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

### 请求
<a name="manually-add-resource-req"></a>

```
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"]'
```

### 响应
<a name="manually-add-resource-res"></a>

```
{
    "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"
            }
        ]
    }
}
```

## 将资源分组到单个应用程序组件
<a name="group-resource-using-api"></a>

应用程序组件 (AppComponent) 是一组相关 AWS 资源，它们作为一个单元起作用和失败。例如，当您的跨区域工作负载用作备用部署时。 AWS Resilience Hub 有管理哪些 AWS 资源可以属于哪种类型的规则 AppComponent。 AWS Resilience Hub 允许您 AppComponent 使用以下资源管理将资源分组为单个资源 APIs。
+ `UpdateAppVersionResource` — 此 API 更新应用程序的资源详细信息。相关此 API 的更多信息，请参阅 [UpdateAppVersionResource](https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_UpdateAppVersionResource.html)。
+ `DeleteAppVersionAppComponent`— 此 API 将 AppComponent 从应用程序中删除。相关此 API 的更多信息，请参阅 [DeleteAppVersionAppComponent](https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_DeleteAppVersionAppComponent.html)。

以下示例说明如何 AWS Resilience Hub 使用 `DeleteAppVersionAppComponent` API 更新应用程序的资源详细信息。

### 请求
<a name="update-resource-req"></a>

```
aws resiliencehub delete-app-version-app-component \
--app-arn <App_ARN> \
--id new-app-component
```

### 响应
<a name="update-resource-res"></a>

```
{
    "appArn": "<App_ARN>",
    "appVersion": "draft",
    "appComponent": {
        "name": "new-app-component",
        "type": "AWS::ResilienceHub::StorageAppComponent",
        "id": "new-app-component"
    }
}
```

以下示例说明如何 AWS Resilience Hub 使用 `UpdateAppVersionResource` API 删除前面示例中创建的空白 AppComponent 内容。

### 请求
<a name="delete-appComp-req"></a>

```
aws resiliencehub delete-app-version-app-component \
--app-arn <App_ARN> \
--id new-app-component
```

### 响应
<a name="delete-appComp-res"></a>

```
{
    "appArn": "<App_ARN>",
    "appVersion": "draft",
    "appComponent": {
        "name": "new-app-component",
        "type": "AWS::ResilienceHub::StorageAppComponent",
        "id": "new-app-component"
    }
}
```

## 将资源排除在 AppComponent
<a name="exclude-resource-using-api"></a>

AWS Resilience Hub 允许您使用 `UpdateAppVersionResource` API 从评估中排除资源。在计算应用程序弹性时，不会考虑这些资源。相关此 API 的更多信息，请参阅 [https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_UpdateAppVersionResource.html](https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_UpdateAppVersionResource.html)。

**注意**  
您只能排除从输入源导入的那些资源。

以下示例演示了如何在 AWS Resilience Hub 中使用 `UpdateAppVersionResource` API 排除应用程序资源。

### 请求
<a name="update-appComp-resource-req"></a>

```
aws resiliencehub update-app-version-resource \
--app-arn <App_ARN> \
--resource-name "ec2instance-nvz" \
--excluded
```

### 响应
<a name="update-appComp-resource-res"></a>

```
{
    "appArn": "<App_ARN>",
    "appVersion": "draft",
    "physicalResource": {
        "resourceName": "ec2instance-nvz",
        "logicalResourceId": {
            "identifier": "ec2",
            "terraformSourceName": "test.state.file"
        },
        "physicalResourceId": {
            "identifier": "i-0b58265a694e5ffc1",
            "type": "Native",
            "awsRegion": "us-west-2",
            "awsAccountId": "123456789101"
        },
        "resourceType": "AWS::EC2::Instance",
        "appComponents": [
            {
                "name": "computeappcomponent-nrz",
                "type": "AWS::ResilienceHub::ComputeAppComponent"
            }
        ]
    }
}
```