【问题标题】:Unable to validate the following destination configurations((Service: Amazon S3; Status Code: 400; Error Code: InvalidArgument)无法验证以下目标配置((服务:Amazon S3;状态代码:400;错误代码:InvalidArgument)
【发布时间】:2020-07-16 22:04:45
【问题描述】:

我正在为 s3 存储桶添加主题​​配置并收到以下异常:

无法验证以下目标配置(服务:Amazon S3;状态代码:400;错误代码:InvalidArgument

我已经向 s3 授予了 lambda 权限,但仍然遇到异常。请找到以下代码。

"Resources": {
    "s3Mock":{
      "DependsOn": "LambdaInvokePermission",
      "Type": "AWS::S3::Bucket",
      "Properties": {
      "NotificationConfiguration": {
          "LambdaConfigurations": [{
            "Event": "s3:ObjectCreated:Put",
            "Filter": {
              "S3Key": {
                "Rules": [
                  {
                    "Value": ".zip",
                    "Name": "suffix"
                  }
                ]
              }
            },
            "Function": {
              "Fn::GetAtt": [
                "LambdaMock",
                "Arn"
              ]
            }
          }
        ]
        }
      }
    },
    "LambdaMock": {
      "DependsOn": "IAMPolicy",
      "Type": "AWS::Lambda::Function",
      "Properties": {
        "FunctionName": {
          "Ref": "Lambda"
        },
        "Description": "A Lambda function which will persist the data into RDS",
        "Code": {
          "S3Bucket" :{"Fn::ImportValue" : {"Fn::Sub" : "${s3StackParameter}-BucketName"}},
          "S3Key" :"abc/adi-cpm-analytics-mock-lambda.zip"
        },
        "Handler": "adi-cpm-analytics-mock-lambda.lambda_handler",
        "Role": {
          "Fn::GetAtt": [
            "IAMRole",
            "Arn"
          ]
        },
        "Runtime": "python3.7",
        "Timeout": 300
      }
    },
    "LambdaInvokePermission": {
      "DependsOn": "LambdaMock",
      "Type": "AWS::Lambda::Permission",
      "Properties": {
        "FunctionName": {
          "Fn::GetAtt": [
            "LambdaMock",
            "Arn"
          ]
        },
        "Action": "lambda:InvokeFunction",
        "Principal": "s3.amazonaws.com",
        "SourceAccount": {
          "Ref": "AWS::AccountId"
        },
        "SourceArn": {"Fn::ImportValue" : {"Fn::Sub" : "${s3StackParameter}-BucketArn"}}
            }
          },

请让我知道我在解决问题的代码中缺少什么。

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation


    【解决方案1】:

    这里有几个问题:

    • s3StackParameter 参数未定义。
    • Lambda 的名称和角色引用不存在的 LambdaRole 资源。
    • 您已经定义了一个循环依赖,S3 -> LambdaInvokePermission Lambda。

    有关创建向 Lambda 发送通知的 S3 存储桶的正确示例,请参阅此帖子:https://aws.amazon.com/premiumsupport/knowledge-center/unable-validate-circular-dependency-cloudformation/

    【讨论】:

      猜你喜欢
      • 2021-02-14
      • 2019-06-20
      • 1970-01-01
      • 2023-02-21
      • 2021-07-04
      • 2022-12-30
      • 1970-01-01
      • 2018-06-01
      • 1970-01-01
      相关资源
      最近更新 更多