有许多使用部署到同一AWS账户的CDK创建静态站点的示例: https://github.com/aws-samples/aws-cdk-examples/blob/master/typescript/static-site/static-site.ts https://github.com/awslabs/aws-solutions-constructs/blob/master/source/use_cases/aws-s3-static-website/lib/s3-static-site-stack.ts
但是我需要将S3存储桶/ CloudFront分发部署到第一个帐户,并在第二个帐户中部署Route53别名。
尝试的选项:
Website.ts
const staticStack = new StaticStack(app, 'StaticStack', {
env: {
account: '0123456789',
region: 'us-east-1',
}
});
const domainStack = new DomainStack(app, 'DomainStack', {
env: {
account: '987654321',
region: 'us-east-1',
},
domainName: 'mydomain.com',
recordName: 'dev.mydomain.com',
dnsName: 'https://abcdefghijklmn.cloudfront.net',
});
StaticStack.ts
export class StaticStack extends cdk.Stack {
public readonly target: RecordTarget;
constructor(scope: cdk.Construct, id: string, props: WebsiteStackProps) {
super(scope, id, props);
const construct = new CloudFrontToS3(this, 'CloudFrontToS3');
}
}
DomainStack.ts
export class DomainStack extends cdk.Stack {
constructor(scope: cdk.Construct, id: string, props: DomainStackProps) {
super(scope, id, props);
const zone = HostedZone.fromLookup(this, 'HostedZone', {
domainName: props.domainName,
privateZone: false
});
new AaaaRecord(this, 'AaaaRecord', {
recordName: props.recordName,
target: RecordTarget.fromAlias({
bind: (): AliasRecordTargetConfig => ({
dnsName: props.dnsName,
hostedZoneId: zone.hostedZoneId,
}),
}),
zone: zone,
});
}
}
无法使其正常工作,最好的方法是什么?