小编Gar*_* S.的帖子

CloudFormation 为现有 s3 存储桶添加触发器

我的目标是将每个图像上传到存储桶时调用的 lambda 代码打包到 CloudFormation 模板中。到目前为止,我已经实现了创建新资源并从头开始触发,但我需要向现有存储桶添加触发器并在两种情况下出现错误:

  1. 当我将 lambda 的创建和触发器配置放入一个模板中并尝试将堆栈创建为新资源时 - 它表示存储桶已存在
  2. 当我将触发器移至新文件时 - 首先创建新资源(如 1. 所示),然后将现有资源导入堆栈 - 我得到:

创建此更改集时出错

您已修改模板中未导入的资源 [ScaleImages、ScaleImagesRole]。导入操作期间无法执行更新、创建或删除操作。

我的模板如下所示:

  • lambda 创建 - 新的 lambda 和角色 - 使用新资源创建堆栈
    {
      "AWSTemplateFormatVersion": "2010-09-09",
      "Resources": {
        "ScaleImages": {
          "Type": "AWS::Lambda::Function",
          "DeletionPolicy": "Retain",
          "Properties": {
            "FunctionName": "ScaleImages",
            "Handler": "index.handler",
            "Role": {
              "Fn::GetAtt": [
                "ScaleImagesRole",
                "Arn"
              ]
            },
            "Code": {
              "S3Bucket": "example-test",
              "S3Key": "example-resize.zip"
            },
            "Runtime": "nodejs12.x",
            "MemorySize": 1024,
            "Timeout": 300
          }
        },
        "ScaleImagesRole": {
          "Type": "AWS::IAM::Role",
          "DeletionPolicy": "Retain",
          "Properties": {
            "RoleName": "ScaleImagesRole",
            "AssumeRolePolicyDocument": …
Run Code Online (Sandbox Code Playgroud)

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

6
推荐指数
1
解决办法
3671
查看次数