Win*_*jam 5 amazon-s3 amazon-route53 typescript aws-cdk
我想知道如何获取现有的 S3 存储桶并使用 AWS CDK 创建指向它的别名记录点?
到目前为止,一切都很好 :
const myExistingBucket = Bucket.fromBucketName(this, 'myExistingBucket', 'myExistingBucketName')
new route53.ARecord(this, 'myAliasRecord', {
zone: myHostedZone,
target: route53.AddressRecordTarget.fromAlias(new route53_targets.BucketWebsiteTarget(myExistingBucket))
});
Run Code Online (Sandbox Code Playgroud)
我得到:'IBucket' 类型的参数不可分配给 'Bucket' 类型的参数。
fromBucketArn(),fromBucketAttributes()函数fromBucketName()都返回IBucket类型,但BucketWebsiteTarget()函数需要Bucket类型。
那么,我该如何Bucket使用 AWS CDK 从现有类型中获取类型呢?
最后,我最终使用 CloudFront 基于AWS CDK 静态站点示例提供基于 S3 Bucket 的 HTTPS(这是更好的实践)。s3BucketSource直接接受一个IBucket类型。
const myExistingBucket = Bucket.fromBucketName(this, 'myExistingBucket', 'myExistingBucketName')
// CloudFront distribution that provides HTTPS
const devDistribution = new cloudfront.CloudFrontWebDistribution(this, 'mySiteDistribution', {
aliasConfiguration: {
acmCertRef: certArn, // Must be in us-east-1 region.
names: ['app.example.com'],
sslMethod: cloudfront.SSLMethod.SNI,
securityPolicy: cloudfront.SecurityPolicyProtocol.TLS_V1_1_2016,
},
originConfigs: [
{
s3OriginSource: {
s3BucketSource: myExistingBucket
},
behaviors: [{ isDefaultBehavior: true }],
}
]
});
new route53.ARecord(this, 'myAliasRecord', {
zone: zone,
target: route53.AddressRecordTarget.fromAlias(new route53_targets.CloudFrontTarget(devDistribution)),
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3735 次 |
| 最近记录: |