繁体   English   中英

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

[英]Unable to validate the following destination configurations((Service: Amazon S3; Status Code: 400; Error Code: InvalidArgument)

我正在为 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"}}
            }
          },

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

这里有几个问题:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM