【问题标题】:lambda + efs - mounting vs access pointlambda + efs - 安装与接入点
【发布时间】:2021-05-28 21:02:34
【问题描述】:

我正在尝试同时使用 aws lambda 和 efs,这样我就可以执行超出默认 lambda 存储限制 500mb 的操作。我很困惑 Local mount pathAccess point 之间有什么区别。

本地挂载路径是用来描述文件系统在现有文件系统中的挂载位置的术语吗?访问点(也有自己的路径)是应用程序在代码中引用的位置吗?还是引用哪个路径实际上并不重要?

例如

AccessPointResource:
    Type: 'AWS::EFS::AccessPoint'
    Properties:
      FileSystemId: !Ref FileSystemResource
      PosixUser:
        Uid: "1000"
        Gid: "1000"
      RootDirectory:
        CreationInfo:
          OwnerGid: "1000"
          OwnerUid: "1000"
          Permissions: "0777"
        Path: "/myefs"

是我在 lambda 上直接指定用于测试的访问点和挂载路径的创建方式。

我想我主要的困惑是为什么有 2 条路径,它们之间有什么区别以及我应该在我的 lambda 中使用哪一个?

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-efs


    【解决方案1】:

    您的 EFS 上可以有 许多目录

    /myefs
    /myefs2
    /myefs3
    /myefs4
    /important
    /images
    

    您的AccessPointResource 将只允许访问/myefs。对于使用接入点的任何人来说,这个文件夹基本上都是 root。不会通过此访问点公开其他文件夹。

    /mnt/efs 是 lambda 容器中的 mount 文件夹。因此,您的函数将能够访问以 /mnt/efs 名称安装在其本地目录树中的 /myefs

    【讨论】:

    • 这是否意味着如果我想保存一个文件,我需要将它保存到 /mnt/efs/myefs ?还是我可以保存到/myefs
    • @Ryan-NealMes 我记得应该只是/mnt/efs。所以在/mnt/efs 文件夹中创建的文件实际上应该放在EFS 文件系统上的/myefs 中。
    • 我现在关注 - AccessPoint 与 efs 相关,mount 文件夹与 lambda 相关。这些一起将两者联系在一起。从 lambda 保存文件时,需要将它们保存到已挂载的文件夹中,这会通过 AccessPoint 传播到 efs。 AccessPoint 路径在 lambda 中不可用作为要保存到的目录。这可能很明显,但对我来说不是:/
    【解决方案2】:

    挂载路径必须与接入点根目录相同 - 在您的情况下,您应该将 local mount path 从“/mnt/efs”更改为“/mnt/myefs”(或者如果您希望挂载路径为“/mnt/efs”你应该将访问点根目录更改为“efs”)

    你也可以看到this answer

    【讨论】:

      猜你喜欢
      • 2021-09-30
      • 2021-07-03
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-31
      • 1970-01-01
      相关资源
      最近更新 更多