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