【问题标题】:cloudformation package uploading hash instead of zipcloudformation 包上传哈希而不是 zip
【发布时间】:2018-08-31 03:09:48
【问题描述】:

我有一个无服务器 API,我正在尝试上传到 cloudformation,但遇到了一些问题。根据文档here,

例如,如果您的 AWS Lambda 函数源代码位于 /home/user/code/lambdafunction/ 文件夹中,请为 AWS::Serverless::Function 资源指定 CodeUri: /home/user/code/lambdafunction。该命令返回一个模板并将本地路径替换为 S3 位置:CodeUri: s3://mybucket/lambdafunction.zip。

我使用的是相对路径(我也尝试过绝对路径),所以我使用的是 CodeUri: ./ 而不是 /user/libs/code/functionDirectory/。当我打包文件时,看起来像正在将哈希上传到 S3,但它不是 zip(当我尝试下载它时,我的计算机无法识别文件类型) 这是预期的吗?我期待上传一个 .zip 文件。我在这里完全错过了什么吗?

感谢您的帮助。 沃克

【问题讨论】:

    标签: amazon-cloudformation aws-cli


    【解决方案1】:

    是的,这是意料之中的。当您使用CodeUri 时,文件会存档并存储在 S3 中,可以使用unzip 命令或任何其他实用程序将其解压缩。

    > file 009aebc05d33e5dddf9b9570e7ee45af
    009aebc05d33e5dddf9b9570e7ee45af: Zip archive data, at least v2.0 to extract
    
    > unzip 009aebc05d33e5dddf9b9570e7ee45af
    Archive:  009aebc05d33e5dddf9b9570e7ee45af
    replace AWSSDK.SQS.dll? [y]es, [n]o, [A]ll, [N]one, [r]ename:
    

    【讨论】:

    • 感谢您的回复。我还能做些什么来将文件上传为命名的 zip 文件吗?例如,在文档中,看起来如果 CodeUri CodeUri: /home/user/code/lambdafunction,那么上传的文件将是 lambdafunction.zip。 (即带有目录名称的 zip 文件)。有一个命名文件而不是散列会很棒。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    • 2010-12-27
    • 2012-11-26
    • 1970-01-01
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多