小铨,铨程互动科技创始人,诞生于 1994 年 7 月 24 日(农历),目前是一个码农,从事 PHP/GO 开发。一枚想让腾讯的马化腾,阿里巴巴的马云来挖我墙角的 90 后程序员。
AWS CDK 介绍
1.什么是 CDK?
AWS CDK,与使用 YAML(或 JSON)的声明式方法相比,CDK 允许您命令式声明基础设施。主要语言为 TypeScript,同时也支持另外几种语言。
2.为什么要使用 AWS CDK?
增强基础设施,为了操作 awk 的接口,对 awk 的实例等进行操作
3.aws-route53 是干啥的?
Amazon Route 53 是一种具有很高可用性和可扩展性的域名系统 (DNS) Web 服务。您可以使用 Route 53 以任意组合执行三个主要功能:域注册、DNS 路由和运行状况检查。如果选择使用 Route 53 来执行所有这三种功能:
1)域名注册
2)将 Internet 流量路由到您的域的资源
3)检查资源的运行状况
如何使用 aws-route53
1.安装 aws-route53
## 方法一:python官方源安装
pip3 install aws-cdk.aws-route53
## 方法二:阿里云镜像源安装
pip3 install aws-cdk.aws-route53 -i https://mirrors.aliyun.com/pypi/simple/
## 方法三:使用pycharm直接安装
复制代码
2.添加托管区域
## 导入aws_route53别名为route53
import aws_cdk.aws_route53 as route53
## 使用route53的PublicHostedZone方法来添加公共托管区域
route53.PublicHostedZone(self, "HostedZone",
## zone_name制定区域名
zone_name="fully.qualified.domain.com"
)
复制代码
使用PrivateHostedZone
添加私有托管区域
enableDnsHostnames
和enableDnsSupport
必须已为正在为专用托管区域配置的专有网络。
## 导入ec2实例方法
import aws_cdk.aws_ec2 as ec2
## 导入route53方法
import aws_cdk.aws_route53 as route53
## 实例化vpc
vpc = ec2.Vpc(self, "VPC")
## 实例化私有区域
zone = route53.PrivateHostedZone(self, "HostedZone",
zone_name="fully.qualified.domain.com",
vpc=vpc
)
复制代码
注意:可以使用zone.addVpc()
添加额外的 VPC。
3.添加记录
## 导入route53
import aws_cdk.aws_route53 as route53
## 使用TxtRecord方法
route53.TxtRecord(self, "TXTRecord",
zone=my_zone,
record_name="_foo",
# 如果名称以“.”结尾,则按原样使用;
# 如果它以“.”结尾,后跟区域名称,则会自动添加一个结尾“.”;
# 否则,将自动添加“.”、区域名称和尾随的“.”。
# 如果未指定,则默认为区域根目录。
## 值
values=["Bar!", "Baz?"],
## ttl刷新时间
ttl=Duration.minutes(90)
)
复制代码
## 导入route53
import aws_cdk.aws_route53 as route53
## 使用ARecord方法,添加A记录
route53.ARecord(self, "ARecord",
## 指定zone名
zone=my_zone,
## 指定目标主机
target=route53.RecordTarget.from_ip_addresses("1.2.3.4", "5.6.7.8")
)
复制代码
## 导入route53
import aws_cdk.aws_route53 as route53
## 导入target
import aws_cdk.aws_route53_targets as targets
## 使用AaaaRecord方法添加aaaa记录
route53.AaaaRecord(self, "Alias",
zone=my_zone,
## 指定目标
target=route53.RecordTarget.from_alias(targets.CloudFrontTarget(distribution))
)
复制代码
结构可用于 A、AAAA、CAA、CNAME、MX、NS、SRV 和 TXT 记录。
使用CaaAmazonRecord
构造轻松限制证书颁发机构,只允许向 Amazon 颁发域证书。
4.将记录添加到现有托管区域
zone = HostedZone.from_hosted_zone_attributes(self, "MyZone",
zone_name="example.com",
hosted_zone_id="ZOJJZC49E0EPZ"
)
复制代码
HostedZone.from_lookup(self, "MyZone",
domain_name="example.com"
)
复制代码
评论