View a markdown version of this page

故障排除 - AWS 上的工作负载发现

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

故障排除

已知问题解决方案提供了缓解已知错误的说明。如果这些说明无法解决您的问题,请参阅 “联系 AWS Supp ort” 部分,了解如何针对此解决方案提出 AWS Support 案例的说明。

已知问题解决方案

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

注意

为了便于排除故障,我们建议在 AWS CloudFormation 模板中禁用 “失败时回滚” 功能。您还可以在 AWS 上的工作负载发现部署后配置文档中找到其他疑难解答帮助。

Config 交付渠道错误

问题:部署主 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 的区域。

解决方案:按照先决条件部分中的说明进行操作,将 CloudFormation 参数AlreadyHaveConfigSetup设置为Yes,部署解决方案。

部署到现有 VPC 时,搜索解析器堆栈部署超时

问题:置备自定义资源以在 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 网关,因此无法访问互联网。

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

解决方案:

  1. 根据文档,在 VPC 中配置 NAT 网关,允许在私有子网中运行的任务访问互联网,使用 CloudFormation 或 AWS CLI。

  2. 确保已根据文档更新了 S3 VPC 终端节点的子网路由表。

导入账户后未发现资源

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

原因:最可能的原因如下,

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

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

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

解决方案:

  1. 根据文档,在所需的账户中部署全球资源模板。

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

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

注意

只有特定的 CPU 单位和内存值组合才有效,因此您可能还必须更新CpuUnits CloudFormation 参数。完整的组合列表在 ECS 文档中列出。

在特定账户中仅发现非 AWS 配置资源

问题:解决方案发现的唯一资源类型是 “支持的资源” 部分表格中列出的资源类型。

原因:此问题最常见的原因是,

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

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

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

解决方案:

  1. 根据文档,在所需账户中部署区域资源模板。

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

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