将pulumi_azure.compute.LinuxVirtualMachineScaleSet实例附加到pulumi_azure.network.ApplicationGateway的后端池

问题描述

我试图弄清楚如何使用Python将pulumi_azure.compute.LinuxVirtualMachinescaleSet实例连接到pulumi_azure.network.ApplicationGateway的后端池。

查看pulumi_azure.compute.LinuxVirtualMachinescaleSet的文档 (https://www.pulumi.com/docs/reference/pkg/azure/compute/linuxvirtualmachinescaleset) 看来必要的链接链应该是:

  • 步骤1-使用适当的LinuxVirtualMachinescaleSetNetworkInterfaceIpConfiguration集创建applicationGatewayBackendAddresspoolIds实例
  • 步骤2-使用步骤1中的网络接口ip配置创建LinuxVirtualMachinescaleSetNetworkInterface实例
  • 第3步-使用第2步中的network_interface创建LinuxVirtualMachinescaleSet

然而,这就是文档所说的 LinuxVirtualMachinescaleSetNetworkInterfaceIpConfigurationLinuxVirtualMachinescaleSetNetworkInterface 未在pulumi_azure.compute中定义(version 3.17.0,在撰写本文时是最新的)。

查看文档和pulumi_azure.compute的源代码中的代码示例,将network_interfaces参数设置为LinuxVirtualMachinescaleSet的唯一方法是为其提供字典列表,例如

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

那么将缩放集与应用程序网关的后端池相关联的正确方法是什么?

解决方法

浏览pulumi_azure/compute/linux_virtual_machine_scale_set.py的源代码后,我意识到pulumi文档中提到的LinuxVirtualMachineScaleSetNetworkInterfaceIpConfiguration等不是类,而是简单的字典。

规模集构造器的ip_configuration参数的

network_interface字段接受可选的applicationGatewayBackendAddressPoolIds关键字,该关键字可用于将规模集与应用程序网关的后端池相关联。