amazon-web-services - 如果 lambda 代码上传到 S3,如何更新 lambda 函数代码

标签 amazon-web-services amazon-s3 aws-lambda aws-cloudformation

当前正在从我的 S3 存储桶中获取 lambda 函数代码(zip 文件)。但是,在我更改代码并用更新的代码替换原始 zip 文件然后运行 ​​update-stack 后,lambda 函数代码在 lambda 控制台中似乎没有更改。

有什么办法可以让它发挥作用吗?

我的 json 模板

{
   "AWSTemplateFormatVersion": "2010-09-09",
   
   "Parameters": {
    "storageS3Bucket": {
      "Type": "String",
      "Default": "myBucket"
    }
  },
   "Resources": {
     
    "s3BucketImageStorage":{
      "Type" : "AWS::S3::Bucket",
      "Properties" : {
          "BucketName" : {
              "Ref": "storageS3Bucket"
          }
        }
    },
     "getBannerHandler": {
       "Type": "AWS::Lambda::Function",
       "Properties": {
         "FunctionName": "getBanner",
         "Handler": "getBanner.handler",
         "Role": {
           "Fn::ImportValue": {
             "Fn::Sub": "${RolesStack}-LambdaRoleArn"
           }
         },
         "Code": {
           "S3Bucket": {
             "Ref": "HandlerCodeS3Bucket"
           },
           "S3Key":"getBanner.zip"
         },
         "Runtime": "nodejs12.x"
       }
     }
   }
 }

最佳答案

你有几个选择:

  • 将文件版本或 git commit 哈希添加到 lambda zip 文件名,以便在执行 CloudFormation update-stack 时将新的 zip 文件名作为参数传递。

  • 或者使用awscli直接更新lambda函数,但最好先删除zip文件然后上传它,以防您想使用相同的名称,以避免替换相同文件时S3最终的一致性。

关于amazon-web-services - 如果 lambda 代码上传到 S3,如何更新 lambda 函数代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64736962/

相关文章:

java - 在 TableView JavaFX 中为 ProgressIndicator 实现 S3 ProgressListener

java - AWS S3 : Get Last Modified Timestamp Java

python - Lex Bot 控制台上出现错误 - 在同一话语中第二次执行了履行 lambda

linux - 如何使用 AWS EFS 和 ReadWriteMany 配置 Persistent Volume Claim?

mysql - 输出两个关联表的总计的查询未正确返回总计,为什么?

amazon-s3 - 如何授予对 Amazon S3 中某个文件夹的所有子文件夹的访问权限?

node.js - AWS Lambda - 下载文件,并在同一个函数中使用它 - nodejs

amazon-web-services - 使用子网时 AWS Cloudformation 出现错误

mysql - 拒绝访问;您需要(至少一个) super 权限才能执行此操作

git - 如何在 Terraform 中使用 git 存储库作为 AWS Lambda 源?