Проблема с выбором Su bnet - PullRequest
       24

Проблема с выбором Su bnet

0 голосов
/ 01 августа 2020

Я пытаюсь создать балансировщик нагрузки приложения и не могу выбрать определенные c подсети. Это ТРЕБОВАНИЕ для выбора определенных c подсетей, потому что существует несколько подсетей каждого типа.

    # dmz_subnet_1 = ec2.Subnet.from_subnet_attributes(self,'DMZSubnetSelect1',availability_zone=region + 'a',route_table_id=vpc.pub_rt.ref,subnet_id=vpc.epic_dmz_1.ref)
    # dmz_subnet_2 = ec2.Subnet.from_subnet_attributes(self,'DMZSubnetSelect2',availability_zone=region + 'b',route_table_id=vpc.pub_rt.ref,subnet_id=vpc.epic_dmz_2.ref)

    # dmz_subnet_1 = ec2.Subnet.from_subnet_id(self,'DMZSubnetSelect1',subnet_id=vpc.epic_dmz_1.ref)
    # dmz_subnet_2 = ec2.Subnet.from_subnet_id(self,'DMZSubnetSelect2',subnet_id=vpc.epic_dmz_2.ref)

    # dmz_subnet_1 = ec2.Subnet.from_subnet_id(self,'DMZSubnetSelect1',subnet_id=vpc.epic_dmz_1.logical_id)
    # dmz_subnet_2 = ec2.Subnet.from_subnet_id(self,'DMZSubnetSelect2',subnet_id=vpc.epic_dmz_2.logical_id)        

    subnet_select = ec2.SubnetSelection(subnets=[dmz_subnet_1, dmz_subnet_2])

    test_ext_elb = elb.ApplicationLoadBalancer(self,
        id='Test External ELB',
        http2_enabled=True,
        ip_address_type=elb.IpAddressType.IPV4,
        security_group=vpc.epic_prd_dmz_sg,
        vpc=vpc.vpc,
        internet_facing=True,
        load_balancer_name='testingexternalelb',
        vpc_subnets=subnet_select
    )

6 строк с комментариями вверху - это разные варианты, которые я пробовал. Все приводят к этой ошибке при вызове в функции elb.ApplicationLoadBalancer:

Traceback (most recent call last):
  File "app.py", line 45, in <module>
    elb_stack = EpicElbStack(app, "epic-elb", env=cdk_env, vpc=vpc_stack, cache=cache_stack, core=core_stack, region=region)
  File "C:\repos\aws\epic-cdk\epiccdk\lib\site-packages\jsii\_runtime.py", line 66, in __call__
    inst = super().__call__(*args, **kwargs)
  File "C:\repos\aws\epic-cdk\epic_cdk\epic_elb_stack.py", line 196, in __init__
    test_ext_elb = elb.ApplicationLoadBalancer(self,
  File "C:\repos\aws\epic-cdk\epiccdk\lib\site-packages\jsii\_runtime.py", line 66, in __call__
    inst = super().__call__(*args, **kwargs)
  File "C:\repos\aws\epic-cdk\epiccdk\lib\site-packages\aws_cdk\aws_elasticloadbalancingv2\__init__.py", line 13673, in __init__
    jsii.create(ApplicationLoadBalancer, self, [scope, id, props])
  File "C:\repos\aws\epic-cdk\epiccdk\lib\site-packages\jsii\_kernel\__init__.py", line 224, in create
    response = self.provider.create(
  File "C:\repos\aws\epic-cdk\epiccdk\lib\site-packages\jsii\_kernel\providers\process.py", line 333, in create
    return self._process.send(request, CreateResponse)
  File "C:\repos\aws\epic-cdk\epiccdk\lib\site-packages\jsii\_kernel\providers\process.py", line 318, in send
    raise JSIIError(resp.error) from JavaScriptError(resp.stack)
jsii.errors.JSIIError: baseProps.vpc.selectSubnets is not a function

Я нашел пример кода из этого ответа: AWS CDK su bnet выбор

Но у меня почему-то не работает. Может, обновление до CDK что-то изменило?

...