【问题标题】:Boto3 script to get network interface of ELBBoto3脚本获取ELB的网络接口
【发布时间】:2016-12-05 19:10:17
【问题描述】:

我正在尝试编写一个 boto3 脚本(需要使用 AWS lambda),它可以提取附加到 ELB 的 ENI。查看 boto3 参考资料,我研究了两种方法。首先使用 describe_load_balancers,在这个输出中似乎没有任何关于网络接口的信息。

其次,我尝试了 EC2.NetworkInterface(id),但这对我来说是错误的方式,因为它可以显示 ELB 的 ENI,但只有在类中指定了 ENI 时。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 boto3


    【解决方案1】:

    就用户而言,AWS ELB 几乎是黑盒子。您可以管理他们的配置,但您无法像通过 SDK 或任何其他方式获取 EC2 实例那样获取实例级别的详细信息。

    如果您想要连接到ELB的实例的ENI,您可以从describe_load_balancers获取实例ID,然后使用ec2.describe_instances中的ID获取接口。

    【讨论】:

      【解决方案2】:

      您可以使用过滤器参数中的“描述”在 boto3 中使用 ec2 客户端的 describe_network_interfaces。这将返回附加到 ELB 的实例的所有 ENI 以及其他详细信息,例如 ipv4 地址。

      ec2 = boto3.client('ec2')   
      response = ec2.describe_network_interfaces(
              Filters=[
                  {
                      'Name': 'description',
                      'Values': [
                          elbDescription,
                      ]
                  },
              ],
          )
      

      注意:您可以在 AWS EC2 控制台中为您的 ELB 获取 elbDescription 的值。

      https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.describe_network_interfaces

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多