Прикрепление pulumi_azure.compute.Экземпляр LinuxVirtualMachineScaleSet к pulumi_azure.network.Серверный пул ApplicationGateway

#python #pulumi

#python #пулуми

Вопрос:

Я пытаюсь выяснить, как подключить pulumi_azure.compute.LinuxVirtualMachineScaleSet экземпляр к серверному пулу pulumi_azure.network.ApplicationGateway с помощью Python.

Просмотр документации pulumi_azure.compute.LinuxVirtualMachineScaleSet ( https://www.pulumi.com/docs/reference/pkg/azure/compute/linuxvirtualmachinescaleset ) кажется, что цепочка необходимых ссылок была бы:

  • шаг 1 — создайте LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration экземпляр с соответствующим applicationGatewayBackendAddressPoolIds набором
  • шаг 2 — создайте LinuxVirtualMachineScaleSetNetworkInterface экземпляр с настройкой ip сетевого интерфейса из шага 1
  • шаг 3 — создайте LinuxVirtualMachineScaleSet с помощью network_interface с шага 2

Однако, хотя это то, что говорится в документации, LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration и LinuxVirtualMachineScaleSetNetworkInterface не определены в pulumi_azure.compute ( version 3.17.0 , новейший на момент написания этой статьи).

Глядя на примеры кода как в документации, так и в исходном коде pulumi_azure.compute, единственный способ присвоить аргументу network_interfaces значение LinuxVirtualMachineScaleSet — предоставить ему список словарей, например

 network_interfaces=[{
    "name": "example",
    "primary": True,
    "ip_configurations": [{
        "name": "internal",
        "primary": True,
        "subnet_id": ....
    }],
    "network_security_group_id": ...
}],
  

Итак, каков был бы правильный способ связать набор масштабирования с внутренним пулом application gateway?

Ответ №1:

После просмотра исходного кода pulumi_azure/compute/linux_virtual_machine_scale_set.py я понял, что LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration etc, упомянутые в документации pulumi, являются не классами, а обычными словарями.

ip_configuration поле network_interface аргумента конструктора набора масштабов принимает необязательное applicationGatewayBackendAddressPoolIds ключевое слово, которое может быть использовано для связывания набора масштабов с внутренним пулом шлюза приложений.