【问题标题】:Conversion failed: Some directories do not have execute permissions转换失败:某些目录没有执行权限
【发布时间】:2019-12-03 20:48:44
【问题描述】:

我正在尝试在 AWS CloudFormation 中创建 AWS Lambda 层,但发生错误:

图层转换失败:部分目录没有执行权限; (服务:AWSLambdaInternal;状态代码:400;错误代码:InvalidParameterValueException;请求 ID:eff63297-bf71-4578-a665-c493a9fbdb40)

CloudFormation 模板中的 Lambda 层定义:

LambdaLayerTest:
  Type: 'AWS::Lambda::LayerVersion'
  Properties:
    CompatibleRuntimes: 
      - nodejs8.10
    Content:
      S3Bucket: cf-us-west-2-test
      S3Key: LambdaLayerTest.zip
    Description: Lambda Layer Test
    LayerName: lambdalayertest

LambdaLayerTest.zip 是一个名为“nodejs”的文件夹,其中包含 node_modules 文件夹、package.json 文件和 yarn.lock 文件。

package.json:

{
  "name": "mylayertest",
  "version": "1.0.0",
  "main": "index.js",
  "license": "ISC",
  "dependencies": {
     "aws-sdk": "2.307.0"
}

【问题讨论】:

  • 能否提供LambdaLayerTest.zip的结构和最小的lambda层代码?此外,错误消息可能涉及一些内部检查,并且由于它提供了请求 ID,因此请不要犹豫联系 AWS 支持部门,要求他们进行解释。模板看起来有效。
  • @Yann 我添加了。我的 lambda 层中没有代码。只有 aws-sdk 依赖,
  • 您能否也发布一个指向yarn.lock 的链接?
  • 我不是 JS 人,但看起来你的运行时期望 zip 的结构是:nodejs/node8/node_modules/docs.aws.amazon.com/lambda/latest/dg/…
  • 我在使用 SAM CLI v1.7.0 时遇到了类似的错误。我卸载它并安装了v1.6.2(以前的版本),错误消失了。

标签: amazon-web-services amazon-cloudformation aws-lambda-layers


【解决方案1】:

压缩文件夹中的文件权限对于 AWS Lambda 可能过于严格:

Permissions Policies on Lambda Deployment Packages

运行chmod -R 755 <directory> 递归修改所有子目录和文件的读、写和执行权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    • 2023-03-21
    • 1970-01-01
    相关资源
    最近更新 更多