簡體   English   中英

aws lambda - 如果手動創建 s3 存儲桶,如何使用 cloudformation 添加 s3 觸發器

[英]aws lambda - How to add s3 trigger using cloudformation if the s3 bucket is created manually

我已經手動創建了我的 s3 存儲桶“myBucket”。

我需要一個帶 s3 觸發器的 lambda 函數。

    "Parameters": {
      "HandlerCodeS3Bucket": {
        "Type": "String",
        "Default": "myBucket"
      },
    },
    "Resources": {
      "uploadBannerToS3Handler": {
        "Type": "AWS::Lambda::Function",
        "Properties": {
          "FunctionName": "uploadBannerToS3",
          "Handler": "uploadBannerToS3.handler",
          "Role": {
            "Fn::ImportValue": {
              "Fn::Sub": "${RolesStack}-LambdaRoleArn"
            }
          },
          "Code": {
            "S3Bucket": {
              "Ref": "HandlerCodeS3Bucket"
            },
            "S3Key":"uploadBannerToS3.zip"
          },
          "Layers": [
            {
              "Ref": "MyLayer"
            }
          ],
          "Runtime": "nodejs12.x"
        }
      }
          ...
    }

我應該如何修改代碼以在我的函數中添加 s3 觸發器。

另外,對於開發,如果我也在cloudformation中構建我的s3bucket是否更方便,如果我將來構建我的UAT環境?
如果使用 cloudformation,開發人員通常會如何處理 s3?

如果您手動創建了您的存儲桶,則您無法按照您嘗試的方式在 CloudFormation (CFN) 中使用它。 您要么必須將存儲桶的創建和管理留給 CFN,或者如果您確實需要,您可以現有的存儲桶導入 CFN。

我仍然需要手動將我的 lambda zip 文件上傳到 s3,

是的。 CFN 不會為您上傳它,因為它無法訪問您的本地工作站。 但是 AWS CLI 具有諸如package 之類的命令可以使上傳過程更容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM