【发布时间】:2020-11-01 21:34:54
【问题描述】:
我想在一个堆栈中创建一个 S3 存储桶,将其传递给另一个堆栈,然后使用它在 sns 或 sqs 上创建通知。这是分解代码的示例。
堆栈 1
export class BucketStack extends BaseStack {
public readonly mynBucket: Bucket;
constructor(scope: App, id: string, props?: StackProps) {
const properties: StackProps = {
env: {
region: StackConfiguration.region,
},
};
super(scope, id, properties);
this.myBucket = this.createMyBucket();
}
private createMyBucket() {
// create and return bucket
}
堆栈 2
import * as s3n from '@aws-cdk/aws-s3-notifications';
export class ServiceStack extends BaseStack {
constructor(scope: App, id: string, myBucket: Bucket) {
const properties: StackProps = {
env: {
region: StackConfiguration.region,
},
};
super(scope, id, properties);
const topic = new Topic(this, 'Topic');
myBucket.addEventNotification(EventType.OBJECT_CREATED_PUT, new s3n.SnsDestination(topic));
错误是
Error: 'my-bucket-stack' depends on 'my-service-stack' (Depends on Lambda resources., Depends on resources.). Adding this dependency (my-service-stack -> my-bucket-stack/myBucket/Resource.Arn) would create a cyclic reference.
【问题讨论】:
标签: typescript amazon-web-services amazon-s3 amazon-cloudformation aws-cdk