

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 準備應用程式
<a name="prepare-app-using-api"></a>

若要準備應用程式，您必須先建立應用程式、指派彈性政策，然後從輸入來源匯入應用程式資源。如需用於準備應用程式之 AWS Resilience Hub APIs的詳細資訊，請參閱下列主題：
+ [建立應用程式](#create-app-using-api)
+ [建立彈性政策](#create-res-policy-using-api)
+ [從輸入來源匯入資源並監控匯入狀態](#import-app-resource-using-api)
+ [發佈應用程式的草稿版本並指派彈性政策](#publish-application-using-api)

## 建立應用程式
<a name="create-app-using-api"></a>

若要在 中建立新的應用程式 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`中建立新的應用程式。

### 請求
<a name="create-app-using-api-req"></a>

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

### 回應
<a name="create-app-using-api-res"></a>

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

## 建立彈性政策
<a name="create-res-policy-using-api"></a>

建立應用程式後，您必須建立彈性政策，讓您能夠使用 `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`為您的應用程式建立 。

### 請求
<a name="create-res-policy-using-api-req"></a>

```
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}}'
```

### 回應
<a name="create-res-policy-using-api-res"></a>

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

## 從輸入來源匯入資源並監控匯入狀態
<a name="import-app-resource-using-api"></a>

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 將資源匯入 中的應用程式。

### 請求
<a name="w2aac12b9c11b9"></a>

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

### 回應
<a name="w2aac12b9c11c13"></a>

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

下列範例示範如何使用 AWS Resilience Hub `CreateAppVersionResource` API 在 中手動將資源新增至您的應用程式。

### 請求
<a name="create-res-policy-using-api-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="create-res-policy-using-api-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"
            }
        ]
    }
}
```

下列範例示範如何使用 AWS Resilience Hub `DescribeDraftAppVersionResourcesImportStatus` API 監控 中資源的匯入狀態。

### 請求
<a name="describe-draft-app-policy-req"></a>

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

### 回應
<a name="describe-draft-app-policy-res"></a>

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

## 發佈應用程式的草稿版本並指派彈性政策
<a name="publish-application-using-api"></a>

執行評估之前，您必須先發佈應用程式的草稿版本，並將彈性政策指派給應用程式的發行版本。

**發佈應用程式的草稿版本並指派彈性政策**

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