AWS EFS 挂载到 ECS Fargate 任务突然失败

问题描述

我正在使用 Boto3 运行使用 Fargate 的任务定义,并在其中安装一个空的 EFS 系统。

SDK 代码

def run_fargate_task(self):
    response = self.ecs.run_task(
        cluster='XXXXXXXX',count=1,enableECSManagedTags=True,launchType='FARGATE',networkConfiguration={
            'awsvpcConfiguration': {
                'securityGroups': [
                    'sg-XXXXXXXXXXXXXXXXX',],'subnets': [
                    'subnet-XXXXXXXXXXXXXXXXX','subnet-XXXXXXXXXXXXXXXXX','assignPublicIp': 'ENABLED'
            }
        },taskDeFinition='XXXXX:1'
    )

当我运行 run_fargate_task() 函数时,它在大多数情况下都会通过此响应元数据成功:

"ResponseMetadata": {
    "RequestId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX","HTTPStatusCode": 200,"HTTPHeaders": {
        "x-amzn-requestid": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX","content-type": "application/x-amz-json-1.1","content-length": "1297","date": "Fri,11 Jun 2021 14:34:46 GMT",},"RetryAttempts": 0,

但有时我会收到此错误

ResourceInitializationError:无法调用 EFS utils 命令来设置 EFS 卷:stderr:无法解析“fs-XXXXXX.efs.us-east-2.amazonaws.com” - 检查您的文件系统 ID 是否正确。

我确定 EFS 系统 ID 是正确的,因为它有时会在不更改代码的情况下成功。此外,我确定我的安全组的入站规则是为 EFS 设置的,端口为 2049

此外,我确保我没有使用相同的 EFS 系统 ID 运行多个任务。

即使在停止任务(成功运行时)并等待几分钟(希望 EFS 系统不被旧任务占用)后,问题仍然存在。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)