博客 资源 关于 搜索 主题
AWS 故障排除

AWSAmplifyDomainRole 找不到:快速修复指南

更新于 2025年10月6日

分类: AWS 故障排除
分享

AWS Amplify 故障排除指南

AWSAmplifyDomainRole 找不到:快速修复指南

您正顺利使用 AWS Amplify 部署应用程序,突然间,问题出现了。部署失败,您收到了一条令人费解的错误消息:The role with name AWSAmplifyDomainRole-Z073737928BZTN2WA6J6L cannot be found.(找不到名为 AWSAmplifyDomainRole-Z073737928BZTN2WA6J6L 的角色)。每个人遇到的那串长数字和字母可能不同,但问题是一样的。这个意外的路障可能会让您的部署戛然而止。

如果您遇到了这个问题,别担心,您并不孤单。这是一个已知问题,通常在使用 Amplify Hosting 管理自定义域名时发生。本指南将带您深入了解此错误的含义,并提供清晰的分步解决方案,助您重回项目交付的正轨。

理解 “AWSAmplifyDomainRole 找不到” 错误

那么,这个 AWSAmplifyDomainRole 是什么?为什么它有时会消失?

当您为 Amplify 应用程序添加自定义域名时,Amplify 会创建一个 IAM(身份和访问管理)角色。这个名为 AWSAmplifyDomainRole-… 的角色授予 Amplify 管理与您域名相关资源所需的权限,例如通过 AWS Certificate Manager (ACM) 管理 SSL/TLS 证书。

发生此错误是因为这个关键的 IAM 角色已被删除,但 Amplify 的配置仍期望它存在。这可能由以下几种原因引起:

  • 手动删除: 您团队中的某人可能在清理未使用的角色时,无意中从 IAM 控制台删除了该角色。
  • 自动化脚本: 旨在移除未使用 AWS 资源的清理脚本可能意外地以此角色为目标并将其删除。
  • 域名重新配置: 有时,以特定顺序移除并重新添加自定义域名可能会导致配置处于不一致状态,从而导致角色被删除,而对其的引用仍然存在。

无论原因如何,结果都是部署失败,因为 Amplify 无法再找到管理您的域名所需的角色。

解决方案:重新创建 IAM 角色

既然角色缺失,最直接的解决方案就是使用正确的权限重新创建它。该过程涉及创建一个新的 IAM 角色,并附加一个特定的信任策略,允许 Amplify 假设(Assume)该角色。

虽然社区已经讨论过此问题,并且在 GitHub issue #4067 中有追踪,但您不必等待补丁。按照以下步骤,您可以在几分钟内自行解决此问题。

创建 AWSAmplifyDomainRole 的分步指南

让我们逐步创建必要的 IAM 角色。在开始之前,请确保您已登录 AWS 控制台。

步骤 1:导航至 IAM 控制台

首先,转到 AWS 控制台中的 IAM 服务。您可以在主搜索栏中输入 “IAM” 并从结果中选择它。

IAM 控制台导航

步骤 2:创建新角色

在 IAM 仪表板中,点击左侧导航窗格中的 “角色” (Roles)。然后,点击 “创建角色” (Create role) 按钮。

创建角色按钮

步骤 3:选择信任实体

这是最关键的一步。您需要告诉 AWS 哪个服务允许使用此角色。

  1. 对于受信任的实体类型,选择 “自定义信任策略” (Custom trust policy)
  2. 将出现一个 JSON 编辑器。将默认内容替换为以下策略:
信任策略 JSON
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "amplify.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

此策略明确授予 AWS Amplify 服务 (amplify.amazonaws.com) 假设此角色的权限。

粘贴策略后,点击 “下一步” (Next)

步骤 4:添加权限(可选但推荐)

在 “添加权限” (Add permissions) 页面上,对于此特定修复,您严格来说不需要附加任何策略。信任关系是关键部分。不过,Amplify 使用此角色管理证书。如果您继续遇到问题,为了安全起见,可以附加 AWS 托管策略 AWSCertificateManagerFullAccess,尽管通常不需要,因为 Amplify 会管理此部分。

在本指南中,我们将跳过添加额外权限,因为信任策略足以解决错误。点击 “下一步” (Next)

步骤 5:命名角色并完成

现在,您需要为角色命名。这是另一个关键步骤——名称必须完全匹配。

  1. “角色名称” (Role name) 中,输入错误消息中显示的确切名称,例如 AWSAmplifyDomainRole-Z073737928BZTN2WA6J6L
  2. 您可以添加可选描述,例如 “Role for AWS Amplify to manage custom domain resources and SSL certificates”(用于 AWS Amplify 管理自定义域名资源和 SSL 证书的角色)。
  3. 检查详细信息,确保受信任实体是 amplify.amazonaws.com 且角色名称正确。
  4. 点击 “创建角色” (Create role) 按钮。

角色名称确认

您应该会看到一条成功消息,确认角色已创建。

步骤 6:重试您的 Amplify 部署

现在 AWSAmplifyDomainRole 已恢复,请返回 AWS Amplify 控制台,并重新启动之前失败的构建或部署。Amplify 现在将能够找到所需的角色,并继续执行域名管理任务,从而解决错误。

更彻底的修复:防止意外删除

重新创建角色是一个快速的修复方法,但如何防止这种情况在未来再次发生呢?

  1. 教育您的团队: 确保团队中每个拥有 IAM 访问权限的人都了解 AWSAmplifyDomainRole 的重要性。建议除非确定角色不再使用,否则不要删除 IAM 角色。
  2. 标记您的资源:AWSAmplifyDomainRole 应用标签(例如 Project: MyApp, ManagedBy: Amplify)。这增加了上下文,可以帮助防止人员或自动化脚本意外删除。
  3. 优化清理脚本: 如果您使用脚本来清理未使用的 AWS 资源,请为名为 AWSAmplifyDomainRole 的角色或标记为由 Amplify 管理的角色添加例外。

结论

遇到 AWSAmplifyDomainRole 找不到 错误是使用自定义域名的 AWS Amplify 开发人员常见的小插曲。幸运的是,解决方案很简单。通过使用正确的信任策略手动重新创建缺失的 IAM 角色,您可以快速解除部署管道的阻塞。

本指南让您有能力自行修复问题,而无需等待服务更新。随着您的角色恢复且构建通过,您可以重新专注于最重要的事情:构建和交付出色的应用程序。


元信息

Meta Title: 修复:AWSAmplifyDomainRole 在 AWS Amplify 中找不到
Meta Description: 收到 “AWSAmplifyDomainRole 找不到” 错误?我们的分步指南向您展示如何修复此 AWS Amplify 问题并让您的部署运行起来。

分类 AWS 故障排除
分享

相关文章

将最新的AI见解发送到您的收件箱

了解最新的趋势、教程和行业见解。加入信任我们新闻通讯的开发人员社区。

仅新账户。提交您的电子邮件即表示您同意我们的 隐私政策