AWS SAM-资源之间的循环依赖错误 [英] AWS SAM - Circular dependency between resources error

查看:35
本文介绍了AWS SAM-资源之间的循环依赖错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我按照此tutorial设置了AWS Lambda函数,该函数在上载到S3时调用并填充DynamoDB。

我正在尝试使用AWS SAM实现同样的目的,我需要使用配置信息为其定义一个template.yaml文件。使用CloudForms部署时不断收到此错误-

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

推荐答案

若要避免此循环依赖,请单独创建S3存储桶和lambda函数,然后使用S3 notification configuration更新堆栈。

这篇关于AWS SAM-资源之间的循环依赖错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆