You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过boto3的SSM Client按ComputerName筛选托管节点?

解决AWS SSM Fleet Manager按ComputerName筛选托管节点的API调用问题

问题原因

AWS控制台Fleet Manager支持按ComputerName筛选,是因为控制台会先拉取全部实例信息,再在前端做本地筛选;而describe_instance_information API的Filters参数确实不支持ComputerName这个键,这就是你调用时报错的直接原因。

解决方案

直接调用API获取所有实例信息,再通过Python代码在本地筛选符合条件的节点,同时处理分页避免实例过多时返回不完整:

示例代码

import boto3

ssm_client = boto3.client('ssm', region_name="us-west-2")

def get_nodes_by_computer_name(target_name):
    filtered_nodes = []
    # 用分页器处理大量实例的情况
    paginator = ssm_client.get_paginator('describe_instance_information')
    for page in paginator.paginate():
        for instance in page['InstanceInformationList']:
            if instance.get('ComputerName') == target_name:
                filtered_nodes.append(instance)
    return filtered_nodes

# 调用示例
target_name = 'xxxxx-yyyyyy'
result = get_nodes_by_computer_name(target_name)
print(result)

补充方案

如果你的托管节点数量较多,本地筛选有延迟,可以提前给实例添加包含ComputerName内容的自定义标签,之后通过describe_instance_information的tag-key和tag-value过滤器直接筛选,示例如下:

managed_nodes = ssm_client.describe_instance_information(
    Filters=[
        {
            'Key': 'tag:ComputerName',
            'Values': ['xxxxx-yyyyyy']
        }
    ]
)

该方案需要提前完成实例标签的配置工作。

内容的提问来源于stack exchange,提问作者Santhosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 05:52:06