0

다음 CloudFormation 템플릿이 있습니다. 이전 변경 세트는 키네 시스 스트림과 나열된 모든 역할을 성공적으로 만들었습니다. 이제 소방용 배송 스트림을 추가하고 싶습니다. 하지만 내 변경 집합은 FAILED - Circular dependency between resources: [EventDeliveryStream] 메시지로 실패합니다. 누구든지 내 템플릿에 문제가있는 도움을 줄 수 있습니까?구름 형성 원형 의존성 파이어 호스

이미 적용 리소스 템플릿 : 내가 좋아하는 것

AWSTemplateFormatVersion: "2010-09-09" 
    Transform: 'AWS::Serverless-2016-10-31' 
    Description: XXX 

    Resources: 
     EventStream: 
     Type: "AWS::Kinesis::Stream" 
     Properties: 
      Name: "event-stream" 
      RetentionPeriodHours: 24 
      ShardCount: 1 

    KinesisReadOnlyAccessRole: 
     Type: "AWS::IAM::Role" 
     Properties: 
      RoleName: "kinesis-read-only-access-role" 
      Path: "/" 
      AssumeRolePolicyDocument: 
      Version: "2012-10-17" 
      Statement: 
      - 
       Effect: "Allow" 
       Principal: 
       Service: "firehose.amazonaws.com" 
       Action: "sts:AssumeRole" 
      ManagedPolicyArns: 
      - "arn:aws:iam::aws:policy/AmazonKinesisReadOnlyAccess" 
     ElasticSearchRole: 
     Type: "AWS::IAM::Role" 
     Properties: 
      RoleName: "elastic-search-role" 
      Path: "/" 
      AssumeRolePolicyDocument: 
      Version: "2012-10-17" 
      Statement: 
      - 
       Effect: "Allow" 
       Principal: 
       Service: "firehose.amazonaws.com" 
       Action: "sts:AssumeRole" 
      ManagedPolicyArns: 
      - "arn:aws:iam::aws:policy/AmazonESFullAccess" 
     FailedDataS3BucketRole: 
     Type: "AWS::IAM::Role" 
     Properties: 
      RoleName: "failed-data-s3-bucket-role" 
      Path: "/" 
      AssumeRolePolicyDocument: 
      Version: "2012-10-17" 
      Statement: 
      - 
       Effect: "Allow" 
       Principal: 
       Service: "firehose.amazonaws.com" 
       Action: "sts:AssumeRole" 
      ManagedPolicyArns: 
      - "arn:aws:iam::aws:policy/AmazonS3FullAccess" 

새로운 리소스 템플릿이 추가 :

 EventDeliveryStream: 
     Type: "AWS::KinesisFirehose::DeliveryStream" 
     Properties: 
      DeliveryStreamName: "kinesis-to-elastic" 
      DeliveryStreamType: KinesisStreamAsSource 
      KinesisStreamSourceConfiguration: 
      KinesisStreamARN: !Ref EventStream 
      RoleARN: !Ref KinesisReadOnlyAccessRole 
      ElasticsearchDestinationConfiguration: 
      DomainARN: "arn:aws:es:us-east-1:xxx:domain/xxx-data" 
      RoleARN: !Ref ElasticSearchRole 
      IndexName: "kinesis-events" 
      TypeName: "object" 
      IndexRotationPeriod: "NoRotation" 
      RetryOptions: 
       DurationInSeconds: "60" 
      S3BackupMode: "FailedDocumentsOnly" 
      BufferingHints: 
       IntervalInSeconds: "60" 
       SizeInMBs: "5" 
      CloudWatchLoggingOptions: 
       Enabled: true 
       LogGroupName: "/aws/kinesisfirehose/event-stream-firehose" 
       LogStreamName: "kinesis-to-elastic" 
      S3Configuration: 
       BucketARN: 
       Ref: "arn:aws:s3:::etl-failed-data" 
       RoleARN: !Ref FailedDataS3BucketRole 
       Prefix: "firehose/" 
       BufferingHints: 
       IntervalInSeconds: "60" 
       SizeInMBs: "5" 
       CompressionFormat: "UNCOMPRESSED" 
+0

왜 이런 일이 일어나고 때로는 그렇지 않은지 잘 모르겠습니다 만, 근본적으로 과거에 나를 위해 일해 온 부분은 구성 요소를 부품에 추가해야한다는 것입니다. 따라서 서버가 없으면 이전에 코드를 더 참조한 리소스를 만들 수 있습니다. 그것은 후자의 것에서 시작됩니다. 그래서 .. 새로운 스트림으로 무엇인가를하기 전에 먼저 완전히 작성한 문장을 추가 한 다음 sls 전개 한 다음 추가 코드 및 sls 전개를 다시 추가하십시오. – Cninroh

답변

0

문제가 무효 템플릿

BucketARN: 
    Ref: "arn:aws:s3:::etl-failed-data" 

에 있고 오류 메시지가 완전히이었다 오도 ​​된 내용