如何使用 Python 在 AWS CDK 中构造 DHCPOptionsAssociation
How do I construct DHCPOptionsAssociation in AWS CDK using Python
我有以下代码:
from aws_cdk import (
aws_ec2 as ec2,
core,
)
class MyVpcStack(core.Stack):
def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
super().__init__(scope, id, **kwargs)
# The code that defines your stack goes here
vpc = ec2.Vpc(
self, 'MyVpc',
cidr='10.10.10.0/23',
max_azs=2
)
dhcp_options = ec2.CfnDHCPOptions(
self, 'MyDhcpOptions',
domain_name='aws-prod.mydomain.com',
domain_name_servers=['10.1.1.5','10.2.1.5'],
ntp_servers=['10.1.1.250','10.2.1.250'],
)
dhcp_options_associations = ec2.CfnVPCDHCPOptionsAssociation(
self, 'MyDhcpOptionsAssociation',
dhcp_options_id=dhcp_options.logical_id,
vpc_id=vpc.vpc_id
)
它在 CloudFormation 模板中生成 VPCDHCPOptionsAssociation
属性 错误,如下所示:
MyDhcpOptionsAssociation:
Type: AWS::EC2::VPCDHCPOptionsAssociation
Properties:
DhcpOptionsId: MyDhcpOptions
VpcId:
Ref: myvpcAB8B6A91
我需要 CloudFormation 模板中的这一部分是这样的(正确):
MyDhcpOptionsAssociation:
Type: AWS::EC2::VPCDHCPOptionsAssociation
Properties:
DhcpOptionsId:
Ref: MyDhcpOptions
VpcId:
Ref: myvpcAB8B6A91
如果我使用 dhcp_options_id=dhcp_options.id
,我会收到错误 AttributeError: 'CfnDHCPOptions' object has no attribute 'id'
。
如果我使用 dhcp_options_id=dhcp_options.dhcp_options_id
,我会收到错误 AttributeError: 'CfnDHCPOptions' object has no attribute 'dhcp_options_id'
。
这里是 CDK API 参考:https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_ec2/CfnVPCDHCPOptionsAssociation.html
我找到了。它必须 .ref
,但与其他资源属性不一致。
dhcp_options_associations = ec2.CfnVPCDHCPOptionsAssociation(
self, 'MyDhcpOptionsAssociation',
dhcp_options_id=dhcp_options.ref,
vpc_id=vpc.vpc_id
)
我有以下代码:
from aws_cdk import (
aws_ec2 as ec2,
core,
)
class MyVpcStack(core.Stack):
def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
super().__init__(scope, id, **kwargs)
# The code that defines your stack goes here
vpc = ec2.Vpc(
self, 'MyVpc',
cidr='10.10.10.0/23',
max_azs=2
)
dhcp_options = ec2.CfnDHCPOptions(
self, 'MyDhcpOptions',
domain_name='aws-prod.mydomain.com',
domain_name_servers=['10.1.1.5','10.2.1.5'],
ntp_servers=['10.1.1.250','10.2.1.250'],
)
dhcp_options_associations = ec2.CfnVPCDHCPOptionsAssociation(
self, 'MyDhcpOptionsAssociation',
dhcp_options_id=dhcp_options.logical_id,
vpc_id=vpc.vpc_id
)
它在 CloudFormation 模板中生成 VPCDHCPOptionsAssociation
属性 错误,如下所示:
MyDhcpOptionsAssociation:
Type: AWS::EC2::VPCDHCPOptionsAssociation
Properties:
DhcpOptionsId: MyDhcpOptions
VpcId:
Ref: myvpcAB8B6A91
我需要 CloudFormation 模板中的这一部分是这样的(正确):
MyDhcpOptionsAssociation:
Type: AWS::EC2::VPCDHCPOptionsAssociation
Properties:
DhcpOptionsId:
Ref: MyDhcpOptions
VpcId:
Ref: myvpcAB8B6A91
如果我使用 dhcp_options_id=dhcp_options.id
,我会收到错误 AttributeError: 'CfnDHCPOptions' object has no attribute 'id'
。
如果我使用 dhcp_options_id=dhcp_options.dhcp_options_id
,我会收到错误 AttributeError: 'CfnDHCPOptions' object has no attribute 'dhcp_options_id'
。
这里是 CDK API 参考:https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_ec2/CfnVPCDHCPOptionsAssociation.html
我找到了。它必须 .ref
,但与其他资源属性不一致。
dhcp_options_associations = ec2.CfnVPCDHCPOptionsAssociation(
self, 'MyDhcpOptionsAssociation',
dhcp_options_id=dhcp_options.ref,
vpc_id=vpc.vpc_id
)