代码之家  ›  专栏  ›  技术社区  ›  Anish Sana

AWS SAM-资源之间的循环依赖错误

  •  0
  • Anish Sana  · 技术社区  · 7 年前

    我遵循了这个 tutorial

    我也在努力做到这一点 AWS SAM 为此,我需要定义一个 template.yaml

    Failed to create the changeset: Waiter ChangeSetCreateComplete failed: Waiter encountered a terminal failure state Status: FAILED. Reason: Circular dependency between resources: [LambdaPerm]
    

    我找不到关于这个的很多信息,所以我正在努力调试。导致此错误的原因是什么?如何解决此问题?这是我的模板配置-

    AWSTemplateFormatVersion: '2010-09-09'
    Transform: AWS::Serverless-2016-10-31
    Resources:
      Gradebook:
        Type: AWS::Serverless::Function
        Properties:
          FunctionName: LambdaGradebookServerless
          Handler: serverless.LambdaGradebook
          Runtime: java8
          CodeUri: ./target/serverless-0.0.1-SNAPSHOT.jar
          Role: arn:aws:iam::xxxxxxxxxxxx:role/lambda-s3-execution-role
      LambdaPerm:
        Type: AWS::Lambda::Permission
        Properties:
          Action: lambda:InvokeFunction
          FunctionName:
            Ref: Gradebook
          Principal: s3.amazonaws.com
          SourceAccount:
            Ref: AWS::xxxxxxxxxxxx
          SourceArn:
            Fn::Join:
            - ':'
            - - arn
              - aws
              - s3
              - ''
              - ''
              - Ref: gradebookBucket
      gradebookBucket:
        Type: AWS::S3::Bucket
        Properties:
          Bucket: gradebook-lambda
          NotificationConfiguration:
            LambdaConfigurations:
            - Event: s3:ObjectCreated:*
              Function:
                Ref: Gradebook
    
    3 回复  |  直到 7 年前
        1
  •  1
  •   jarmod    7 年前

    为了避免这种循环依赖,独立创建S3 bucket和Lambda函数,然后使用 S3 notification configuration .

        2
  •  1
  •   vsnyc    3 年前

    https://aws.amazon.com/blogs/mt/resolving-circular-dependency-in-provisioning-of-amazon-s3-buckets-with-aws-lambda-event-notifications/

    实现方法类似于jarmod在公认答案中描述的方法。稍后使用CloudFormation自定义资源设置事件通知。

        3
  •  0
  •   Juan Zapata    6 年前

    我得到了循环依赖项错误,结果是我从CloudFormation模板上的资源中引用的参数丢失了!。