New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
为什么我无法在 Amazon Fargate 任务上挂载 Amazon EFS 卷?
当我在 Amazon Fargate 任务上挂载 Amazon Elastic File System(Amazon EFS)卷时出现错误。
简短描述
Amazon EFS 为您的 Fargate 任务提供持久存储解决方案,以便在不同的任务之间共享文件和数据。
以下问题可能会阻止您在 Fargate 任务上挂载 Amazon EFS 卷:
- Amazon EFS 文件系统的配置不正确。
- Amazon Elastic Container Service (Amazon ECS) 任务的 Amazon Identity and Access Management (IAM) 角色没有所需的权限。
- 存在与网络和 Amazon Virtual Private Cloud (Amazon VPC) 配置相关的问题。
要对导致 Amazon Elastic Container Service (Amazon ECS) 任务无法启动的错误进行故障排除,请使用 AWSSupport-TroubleshootECSTaskFailedToStart 运行手册。然后参考问题的相关故障排除步骤。
解决方法
找到未能启动的任务
重要事项:
- 在与您的 ECS 集群资源所在的同一亚马逊云科技区域使用 AWSSupport-TroubleshootECSTaskFailedToStart 运行手册。
- 使用运行手册时,您必须使用最近失败的任务 ID。如果失败的任务是 Amazon ECS 服务的一部分,则使用服务中最近一次失败的任务。在自动化执行期间,失败任务必须在 ECS:DescribeTasks 中可见。默认情况下,已停止的 ECS 任务将在进入已停止状态后的 1 小时内保持可见。使用最近失败的任务 ID 可防止任务状态清理功能在自动化过程中导致分析中断。
有关如何启动运行手册的说明,请参阅 AWSSupport-TroubleshootECSTaskFailedToStart。根据自动化的输出,使用以下手动故障排除步骤之一。
根据您收到的错误消息对任务进行故障排除
当您尝试在 Fargate 任务上挂载 EFS 卷时,可能会遇到以下错误之一:
“ResourceInitializationError:未能调用 EFS utils 命令来设置 EFS 卷:stderr: b'mount.nfs4: 连接超时':EFS utils 命令执行失败;代码: 32”
当您的 Fargate 任务由于连接时间问题而无法连接到 EFS 文件系统时,就会出现这些错误。要解决此错误,请完成以下故障排除步骤:
- 打开 Amazon EFS 控制台。
- 在导航窗格中,选择文件系统。
- 通过选择文件系统的名称或文件系统 ID 来选择要检查的文件系统。
- 选择网络以显示现有挂载目标的清单。
- 选择管理。
您可以查看挂载目标的安全组和安全组入站规则。
务必让安全组的入站规则允许来自 Fargate 任务安全组的流量通过端口 2049。确认子网级别允许网络流量。为此,请验证网络访问控制列表是否允许文件系统和任务之间的流量。如果不允许该流量,则相应地修改规则。有关更多信息,请参阅 Amazon Virtual Private Cloud 中的安全性。
“ResourceInitializationError:未能调用 EFS utils 命令来设置 EFS 卷:stderr: mount.nfs4: 对方重置连接:EFS utils 命令执行失败;代码: 32”
您可能会由于以下原因之一而收到此错误:
- 您在创建 EFS 文件系统后立即挂载了该文件系统。
- 挂载目标的安全组不允许来自 Fargate 任务的入站流量通过端口 2049。
- 您使用的是 Amazon App Mesh,而由于代理规则,到端口 2049 的出站流量被屏蔽。
要对此错误进行故障排除,请执行以下步骤:
- 创建挂载目标后,DNS 记录最多可能需要 90 秒才能在亚马逊云科技区域中完全传播。如果您以编程方式创建和挂载文件系统,例如使用 Amazon CloudFormation 模板,则要实施等待条件。
- 确认附加到 EFS 文件系统挂载目标的入站安全组规则允许来自 Fargate 任务的流量通过端口 2049。
- 如果您使用的是 App Mesh,请确保在 TaskDefinition 中指定的代理配置已将 EgressIgnoredPorts 设为 2049。
“ResourceInitializationError:未能调用 EFS utils 命令来设置 EFS 卷:stderr: 解析“fs-xxxxxxxxxxx.efs.us-east-1.amazonaws.com”失败 - 检查您的文件系统编号是否正确”
您可能会由于以下原因之一而收到此错误:
- EFS 文件系统挂载目标不是在启动 Fargate 任务的可用区中创建的或在该可用区不可用。
- 您正在为 VPC 使用自定义 DNS 服务器。
- VPC DNS 主机名已关闭。默认情况下 DNS 主机名已关闭。
要解决此错误,请尝试以下步骤:
- 确保 EFS 文件系统挂载目标与 Fargate 任务位于同一可用区中。您可以在 Amazon EFS 控制台中查看挂载目标的可用区、子网和安全组。然后,验证挂载目标是否使用与 Fargate 任务相同的可用区和子网。
- 如果您为 VPC 的 DHCP 选项指定了自定义 DNS 服务器,而不是 AmazonProvidedDNS,请务必配置有条件的 DNS 转发器。DNS 转发器必须将亚马逊云科技资源 (*.amazonaws.com) 的 DNS 查询发送到 VPC 的默认 DNS 服务器(位于 VPC CIDR .2 或 169.254.169.253)。有关更多信息,请参阅如何使用 Amazon Directory Service 和 Microsoft Active Directory 在本地网络和亚马逊云科技之间设置 DNS 解析。
“ResourceInitializationError:未能调用 EFS utils 命令来设置 EFS 卷:stderr:b'mount.nfs4:挂载 127.0.0.1:/ 时服务器拒绝访问':EFS utils 命令执行失败;代码: 32”
当以下策略和权限拒绝对文件系统的访问时,就会出现此错误:
- 文件系统策略
- 任务角色策略
- POSIX 文件系统权限
对 EFS 文件系统的访问可能由以下资源中定义的权限控制:
- 网络访问控制列表
- 安全组
- EFS 文件系统策略
- ECS 任务角色 IAM 策略
- POSIX 文件
有关更多信息,请参阅在 Amazon ECS 和 Amazon Fargate 上使用 Amazon EFS 的开发者指南 - 第 2 部分。
要对此错误进行故障排除,请检查文件系统策略或 ECS 任务角色 IAM 策略是否拒绝对该文件系统的访问。如果这些策略拒绝访问权限,则修改策略以授予访问文件系统的权限。如果文件系统策略不存在,则在创建过程中会默认向所有主体授予文件系统的访问权限。
相关信息

相关内容
- AWS 官方已更新 1 个月前
- AWS 官方已更新 1 年前
- AWS 官方已更新 3 年前
- AWS 官方已更新 2 年前