amazon-web-services - aws lambda - 如果手动创建 s3 存储桶,如何使用 cloudformation 添加 s3 触发器

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

我已手动创建我的 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中也构建我的s3存储桶,如果我将来构建我的UAT环境,是不是更方便?
如果使用 cloudformation,开发人员通常会如何处理 s3?

最佳答案

如果您手动创建存储桶,则无法按照您尝试的方式在 CloudFormation (CFN) 中使用它。您要么必须将存储桶创建和管理留给 CFN,或者如果您确实愿意,您可以 import将现有存储桶放入 CFN。

I still need to manually upload my lambda zip files to s3 manually,

是的。 CFN 不会为您上传它,因为它无法访问您的本地工作站。但 AWS CLI 具有诸如 package 之类的命令这可以使上传过程更容易。

关于amazon-web-services - aws lambda - 如果手动创建 s3 存储桶,如何使用 cloudformation 添加 s3 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64734465/

相关文章:

amazon-web-services - 如何创建 lambda boto3 函数以在另一个 AWS 账户中创建 cloudformation 堆栈

object - 如何判断对象是否是 AWS S3 上的文件夹

python - 在 EC2 上安装 XGBoost

javascript - 从 zip 文件在 AWS 中创建 lambda 函数

amazon-web-services - 不同 VPC 中的 Elasticache 和 lambda 需要访问它

amazon-web-services - CloudFormation 为现有 s3 存储桶添加触发器

amazon-web-services - aws pipeline 角色无权对跨账户角色执行 AssumeRole

amazon-web-services - 如何在 CloudFormation yaml 模板中从 CloudWatch 设置 CloudFront 警报?

aws-cloudformation - ECS 服务使用 ALB 的权限问题

linux - 在 AWS Workspace 上使用 apt-get?