AWS Lambda
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

创建部署程序包

要创建 Lambda 函数,首先需要创建 Lambda 函数部署程序包(包含代码和所有依赖项的 .zip 或 .jar 文件)。在创建 zip 文件时,仅包含代码及其依赖项,而不包含文件夹。然后,需要您为 zip 包设置相应的安全权限。

Lambda 部署程序包上的权限策略

使用不正确的权限上传的 Zip 程序包可能会导致执行失败。AWS Lambda 需要针对代码文件及构成部署程序包的任何依赖库的全局读取权限。要确保权限不会限制到您的用户账户,您可以使用以下示例进行检查:

  • Linux/Unix/OSX 环境:使用下面示例中所示的 zipinfo

    $ zipinfo test.zip Archive: test.zip Zip file size: 473 bytes, number of entries: 2 -r-------- 3.0 unx 0 bx stor 17-Aug-10 09:37 exlib.py -r-------- 3.0 unx 234 tx defN 17-Aug-10 09:37 index.py 2 files, 234 bytes uncompressed, 163 bytes compressed: 30.3%

    -r-------- 表示只有文件所有者拥有读取权限,这会导致 Lambda 函数执行失败。如果您看到如下所示的内容,表示已经具有所需的全局读取权限:

    $ zipinfo test.zip Archive: test.zip Zip file size: 473 bytes, number of entries: 2 -r--r--r-- 3.0 unx 0 bx stor 17-Aug-10 09:37 exlib.py -r--r--r-- 3.0 unx 234 tx defN 17-Aug-10 09:37 index.py 2 files, 234 bytes uncompressed, 163 bytes compressed: 30.3%

    要以递归方式解决此问题,请运行以下命令:

    $ chmod 644 $(find /tmp/package_contents -type f) $ chmod 755 $(find /tmp/package_contents -type d)
    • 第一条命令更改 /tmp/package_contents 中所有文件的权限,向所有者授予读取/写入权限,向组和全局授予读取权限。

    • 第二条命令依次授予针对目录的相同权限。