【发布时间】: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