如何使用aws cli将aws lambda层部署程序包上传到s3存储桶?

时间:2019-08-26 13:01:53

标签: amazon-web-services aws-lambda

我正尝试使用aws cli将AWS Lambda的层部署程序包上传到s3存储桶(因为它超过50兆),这是我的命令:

aws lambda publish-layer-version --layer-name “layer name” --description "Layer description” --content S3Bucket=“s3-name/location”,S3Key=“package.zip”,S3ObjectVersion=“1” --license-info "MIT" --compatible-runtimes "nodejs8.10" --zip-file "fileb:////tmp/package.zip"

我只是不确定所指定的--content部分(S3Bucket,S3Key和S3ObjectVersion)。 N.B在没有--content的情况下完美运行

aws lambda publish-layer-version --layer-name “layer name” --description "Layer description” --content S3Bucket=“s3-name/location”,S3Key=“package.zip”,S3ObjectVersion=“1” --license-info "MIT" --compatible-runtimes "nodejs8.10" --zip-file "fileb:////tmp/package.zip"

使用上面的代码,我收到以下错误消息:

  

调用PublishLayerVersion操作时发生错误(InvalidParameterValueException):提供ZipFile时,请不要提供其他FunctionCode参数。

1 个答案:

答案 0 :(得分:1)

您可以尝试创建一个json文件,例如说“ myJson.json” 放进去:

{
  "S3Bucket": "s3-name",
  "S3Key": "location/package.zip",
  "S3ObjectVersion": "1"
}

然后这样称呼它:

aws lambda publish-layer-version --layer-name “layer name” --description "Layer description” --content file://myJson.json --license-info "MIT" --compatible-runtimes "nodejs8.10" --zip-file file://tmp/package.zip

请注意,您应该在创建“ myJson.json”的位置执行命令(因此,请使用“ cd”命令移至其位置

通过这种方式:

--zip-file "file:////tmp/package.zip"

可以替换为

--zip-file file://tmp/package.zip

希望这会有所帮助