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

AWS Lambda中如何从describe_maintenance_windows响应提取WindowId?

解决从SSM维护窗口响应中提取WindowId的错误问题

你碰到的'list' object is not callable错误,核心原因是MWId是个列表(看返回的响应结构,它是用[]包裹的数组),但你用了函数调用的写法MWId("WindowId")——Python里列表不能这么用,自然报错。

正确的提取方式

直接通过列表索引取出里面的字典,再用键名取值就行,修改后的Lambda函数如下:

def lambda_handler(event, context):
    # 先初始化SSM客户端,别忘了导入boto3
    import boto3
    client = boto3.client('ssm')
    
    response = client.describe_maintenance_windows(Filters=[
        {
            'Key': 'Name',
            'Values': ['test']
        },
    ])
    MWId = response["WindowIdentities"]
    # 取列表第一个元素(字典),再提取WindowId
    mwidvalue = MWId[0]["WindowId"]
    return mwidvalue

扩展:如果有多个匹配的维护窗口

如果你的过滤器能匹配到多个维护窗口,就需要遍历列表收集所有WindowId:

# 用列表推导式批量提取所有WindowId
all_window_ids = [window["WindowId"] for window in MWId]
# all_window_ids会是一个包含所有匹配ID的列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 06:25:01