

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

# 使用管理资源操作请求 AWS 云端控制 API
<a name="resource-operations-manage-requests"></a>

由于资源操作是异步操作，因此诸如 `create-resource` 和 `update-resource` 之类的资源请求会返回一个 `ProgressEvent` 对象，其中包含有关资源创建或更新请求的当前状态的信息。

例如，资源创建请求最初可能会返回以下 `ProgressEvent` 对象。

```
{
    "ProgressEvent": {
        "EventTime": "2021-08-09T18:17:15.219Z",
        "TypeName": "AWS::Logs::LogGroup",
        "OperationStatus": "IN_PROGRESS",
        "Operation": "CREATE",
        "Identifier": "LogGroupResourceExample",
        "RequestToken": "5f40c577-3534-4b20-9599-0b0123456789"
    }
}
```

`ProgressEvent` 对象中返回的信息包括一个请求令牌，您以后可以使用该令牌跟踪或取消资源操作请求。

**注意**  
资源操作请求将在七天后过期。

## 列出活动资源操作请求
<a name="resource-operations-manage-requests-list"></a>

使用`list-resource-requests`命令返回 AWS 账户 和的活动资源操作请求列表 AWS 区域。您可以按请求类型和状态来筛选此列表。

资源操作请求将在七天后过期。

以下示例将返回活动资源操作请求，但它会筛选出仍在进行的任何资源创建请求。

```
$ aws cloudcontrol list-resource-requests --resource-request-status-filter \
    Operations=CREATE,OperationStatuses=IN_PROGRESS
```

针对每项资源操作返回的信息均包括一个请求令牌，您以后可以使用该令牌跟踪或取消资源操作请求。

```
{
    "ResourceRequestStatusSummaries": [
        {
            "EventTime": "2021-08-09T18:17:16.591Z",
            "TypeName": "AWS::Logs::LogGroup",
            "OperationStatus": "SUCCESS",
            "Operation": "CREATE",
            "Identifier": "LogGroupResourceExample",
            "RequestToken": "5f40c577-3534-4b20-9599-0b0123456789"
        }
    ]
}
```

## 跟踪资源操作请求的进度
<a name="resource-operations-manage-requests-track"></a>

使用 `get-resource-request-status` 命令可以跟踪资源操作请求的进度。此命令获取初始资源操作请求期间生成的 `ProgressEvent` 对象中包含的请求令牌。（您还可以使用 `list-resource-requests` 命令检索资源操作请求的请求令牌。） 该 `get-resource-request-status` 命令将返回一个更新的 `ProgressEvent` 对象，其中包含有关当前请求状态的信息。

请参阅以下示例。

```
$ aws cloudcontrol get-resource-request-status \
    --request-token 5f40c577-3534-4b20-9599-0b0123456789
```



## 取消资源操作请求
<a name="resource-operations-manage-requests-cancel"></a>

使用 `cancel-resource-request` 命令可取消当前正在进行的资源操作请求。由于您一次只能对给定资源执行一项操作，因此在某些情况下，您可能需要取消当前的资源操作以使该资源可用，以便可以对其执行另一项操作。

取消资源请求并不能保证 Cloud Control API 可以立即取消所有资源操作。相反，Cloud Control API 将停止进一步调用资源事件处理程序。向 Cloud Control API 发出的单个资源操作请求实际上可能包含多个对预置资源的底层服务的调用。因此，取消资源操作请求可能会使请求部分完成，从而导致只对资源应用部分请求的更改。Cloud Control API 不会将资源回滚到其之前的状态。

只能取消状态为 `PENDING` 或 `IN_PROGRESS` 的资源操作请求。

**注意**  
虽然调用 `CancelResourceRequest` 会取消 Cloud Control API 执行的操作，但不会终止任何可能已经在下游服务中启动的异步操作。