aws-cdk - 有没有办法指定创建 vpc 时使用的可用区数量?
问题描述
使用 CDK 在堆栈中实例化 vpc 对象时。有一个参数 max_azs 应该默认为 3。但是,当我创建一个 vpc 时,无论我将该数字设置为什么,我都只会得到 2 个 AZ。
from aws_cdk import (
core,
aws_ec2 as ec2
)
app = core.App()
subnets = []
subnets.append(ec2.SubnetConfiguration(name = "public", subnet_type = ec2.SubnetType.PUBLIC, cidr_mask = 20))
subnets.append(ec2.SubnetConfiguration(name = "private", subnet_type = ec2.SubnetType.PRIVATE, cidr_mask = 20))
subnets.append(ec2.SubnetConfiguration(name = "isolated", subnet_type = ec2.SubnetType.ISOLATED, cidr_mask = 20))
vpc = ec2.Vpc(app, "MyVpc", subnet_configuration = subnets, max_azs = 3)
print(vpc.availability_zones)
app.synth()
我希望看到这里使用 3 个 azs,但实际上只得到 2 个。即使我将值设置为 99,这应该意味着所有 azs。
解决方案
啊,是的,我自己也遇到了同样的问题。为我解决的问题是在创建堆栈时指定区域和帐户。
以下示例用于打字稿,但我相信您可以编写相应的 python。
new MyStack(app, 'MyStack', {
env: {
region: 'us-east-1',
account: '1234567890',
}
});
对于打字稿,您需要在部署之前重新构建和合成。
$ npm run build
$ cdk synth
推荐阅读
- javascript - 在 Jinja 模板中更改 h1 标签中某个部分的样式
- java - Hibernate:将两列映射到 HashMap 的键和值
- python - 如何在 tkinter 上隐藏和显示画布项目?
- chromium - 如何在运行 puppeteer 抓取脚本时停止打开 chromium 浏览器?
- wso2 - 启用 GroupExtractor 时 wso2am-2.6.0 无法生成令牌
- typescript - 击败阵列
和 IObservableArray 不兼容 - python - SQLAlchemy 对求和连接进行排序和分组
- cmake - CMake - 单个库的 BUILD_SHARED_LIBS
- jenkins - 将附件从 Jenkins 发送到团队
- php - 如何在php中同时使用复选框和输入类型号