Как использовать асинхронно идентификатор подсети в Pulumi, который известен после создания объекта VirtualNetwork?

Как правильно использовать «применить» для построения списка «ip_configurations» с использованием идентификатора подсети, известного после создания виртуальной сети? Ниже приводится AttributeError: объект VirtualNetwork не имеет атрибута subnet_id.

virtual_network = azure.network.VirtualNetwork(vnet_name, name=vnet_name, resource_group_name=resource_group.name,
    address_spaces=test_vnet['addr'], subnets=test_vnet['subnets'], location=resource_group.location)
ip_configurations = [{ "name": "ip-cfg", "subnet_id": virtual_network.subnet_id.apply(lambda subnet_id: virtual_network.subnets[0].id), 
    "privateIpAddressAllocation": "Dynamic" }]

person irom    schedule 30.07.2020    source источник


Ответы (1)


Прежде всего, я рекомендую вам использовать отдельный ресурс Subnet, например

vnet = network.VirtualNetwork(
    vnet_name,
    resource_group_name=resource_group.name,
    address_spaces=["10.0.0.0/16"])

subnet = network.Subnet(
    "subnet",
    resource_group_name=resource_group.name,
    address_prefix="10.0.2.0/24",
    virtual_network_name=vnet.name,
    enforce_private_link_endpoint_network_policies="false")

# subnet.id

Вы можете найти пример здесь.

Если вы определяете subnets внутри VirtualNetwork, вы можете получить доступ к ID, просмотрев свойство id первого элемента в subnets выводе (virtual_network.subnets[0].id).

person Mikhail Shilkov    schedule 30.07.2020