

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

# 故障排除
<a name="troubleshooting"></a>

已知问题解决方案提供了缓解已知错误的说明。如果这些说明无法解决您的问题，请参阅 “[联系 AWS Supp](contact-aws-support.md) ort” 部分，了解如何针对此解决方案提出 AWS Support 案例的说明。

## 已知问题解决方案
<a name="known-issue-resolution"></a>

在 AWS 上部署 Workload Discovery 期间和部署后阶段，可能会出现几个常见的配置错误：

**注意**  
为了便于排除故障，我们建议在 AWS CloudFormation 模板中禁用 “失败时回滚” 功能。您还可以在 AWS 上的工作负载发现[部署后配置文档](https://aws-solutions.github.io/workload-discovery-on-aws/workload-discovery-on-aws/2.0/index.html)中找到其他疑难解答帮助。

### Config 交付渠道错误
<a name="config-delivery-channel-error"></a>

 **问题：**部署主 AWS CloudFormation 模板时出现以下错误：

```
Failed to put delivery channel '<stack-name>-DiscoveryImport-<ID-string>-DeliveryChannel-<ID-string>' because the maximum number of delivery channels: 1 is reached. (Service: AmazonConfig; Status Code: 400; Error Code: MaxNumberOfDeliveryChannelsExceededException; Request ID: 4edc54bc-8c85-4925-b99d-7ef9c73215b3; Proxy: null)
```

 **原因：**正在将解决方案部署到已启用 AWS Config 的区域。

 **解决方案：**按照[先决条件部分](https://docs.aws.amazon.com/solutions/latest/workload-discovery-on-aws/prerequisites.html#verify-your-aws-config-details-in-your-account)中的说明进行操作，将 CloudFormation 参数**AlreadyHaveConfigSetup**设置为`Yes`，部署解决方案。

### 部署到现有 VPC 时，搜索解析器堆栈部署超时
<a name="search-resolver-stack-deployment-times-out-when-deploying-to-existing-vpc"></a>

 **问题：**置备自定义资源以在 OpenSearch 群集中创建索引的嵌套堆栈超时，并出现以下错误：

```
Embedded stack arn:aws:cloudformation:<region>::stack/<stack-name>-SearchResolversStack-<ID-string>/<guid> was not successfullycreated: Stack creation time exceeded the specified timeout
```

 **原因：**作为 CloudFormation 参数提供的私有子网无法路由到 S3（自定义资源必须使用预签名 URL 将其执行结果写入 S3 存储桶）。这通常有两个原因：

1. 私有子网没有关联的 NAT 网关，因此无法访问互联网。

1. 私有子网使用 VPC 终端节点而不是 NAT 网关，并且 S3 网关终端节点配置不正确。

 **解决方案：**

1. 根据[文档](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-api-cli)，在 VPC 中配置 NAT 网关，允许在私有子网中运行的任务访问互联网，使用 CloudFormation 或 AWS CLI。

1. 确保已根据[文档](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#create-gateway-endpoint-s3)更新了 S3 VPC 终端节点的子网路由表。

### 导入账户后未发现资源
<a name="resources-not-discovered-after-account-has-been-imported"></a>

 **问题：**账户已通过 Web UI 导入，但在发现过程运行后似乎未发现任何资源。

 **原因：**最可能的原因如下，

1. 当**CrossAccountDiscovery** CloudFormation 参数设置为时`SELF_MANAGED`，全球资源 CloudFormation 模板尚未部署。

1. 当**CrossAccountDiscovery** CloudFormation 参数设置为`AWS_ORGANIZATIONS`：未发现一个或多个帐户，且**角色状态**列中有 “**未部署**” 条目时。这意味着使用自动部署全球资源模板时存在问题 StackSets。

1. 发现进程 ECS 任务内存不足。导入大量账户或资源时会发生这种情况。用户界面中的 “**上次发现**” 列的值将大于**DiscoveryTaskFrequency** CloudFormation 参数中指定的值（默认值为 15 分钟），并且 ECS 控制台中将出现内存不足错误。

 **解决方案：**

1. 根据[文档](https://docs.aws.amazon.com/solutions/latest/workload-discovery-on-aws/import-a-region.html#deploy-the-aws-cloudformation-templates)，在所需的账户中部署全球资源模板。

1. 前往**WdGlobalResources** StackSet 已部署 Workload Discovery 的区域，检查部署失败的堆栈实例中的错误。

1.  CloudFormation 将 **Memory** 参数更新为更大的值：从 double 开始并不断增加，直到错误停止。

**注意**  
只有特定的 CPU 单位和内存值组合才有效，因此您可能还必须更新**CpuUnits** CloudFormation 参数。完整的组合列表在 [ECS 文档](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-cpu-memory-error.html)中列出。

### 在特定账户中仅发现非 AWS 配置资源
<a name="only-non-aws-config-resources-are-being-discovered-in-specific-accounts"></a>

 **问题：**解决方案发现的唯一资源类型是 “[支持的资源” 部分表格中列出的资源](https://docs.aws.amazon.com/solutions/latest/workload-discovery-on-aws/supported-resources-1.html)类型。

 **原因：**此问题最常见的原因是，

1. 当**CrossAccountDiscovery** CloudFormation 参数设置为时`SELF_MANAGED`，区域资源 CloudFormation 模板尚未部署到要发现的每个账户的区域。

1. 当该**CrossAccountDiscovery** CloudFormation 参数设置为时`SELF_MANAGED`，区域资源 CloudFormation 模板已部署在多个未启用 Config 但 CloudFormation 参数**AlreadyHaveConfigSetup**被错误设置为的账户所在的区域。`Yes`

1. 当**CrossAccountDiscovery** CloudFormation 参数设置为时`AWS_ORGANIZATIONS`，AWS Config 不会在要发现的每个账户的区域中启用。在`AWS_ORGANIZATIONS`模式下，您负责根据组织的政策启用 Config。

 **解决方案：**

1. 根据[文档](https://docs.aws.amazon.com/solutions/latest/workload-discovery-on-aws/import-a-region.html#deploy-the-aws-cloudformation-templates)，在所需账户中部署区域资源模板。

1. 删除之前部署的区域资源堆栈（否则 AWS Config 将处于不一致状态），然后在 CloudFormation 参数**AlreadyHaveConfigSetup**设置为`No`的情况下重新部署。

1. 在要发现的每个账户所在的区域启用 AWS Config。