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

AWS Lambda调用boto3的start_workspaces()报仅接受关键字参数错误如何解决

错误原因

boto3的WorkSpaces客户端start_workspaces方法不支持直接传入WorkspaceId字符串作为位置参数,仅接受关键字参数,且要求参数格式为:

  • 关键字参数名为StartWorkspaceRequests
  • 参数值是列表类型,列表中的每个元素是包含WorkspaceId键的字典,对应要启动的实例ID
修复代码

你可以直接修改循环内的调用代码:

import json
import boto3

client = boto3.client('workspaces')
    
def lambda_handler(event, context):
    response = client.describe_workspaces(
        DirectoryId='d-966714f114'
    )

    for i in response['Workspaces']:
        if i['State'] == 'STOPPED':
            print(i['WorkspaceId'])
            # 修正传参格式
            client.start_workspaces(
                StartWorkspaceRequests=[
                    {"WorkspaceId": i['WorkspaceId']}
                ]
            )
优化方案(可选)

你也可以先收集所有处于STOPPED状态的实例ID,再批量调用接口减少API请求次数(单接口最多支持同时启动25个实例):

import json
import boto3

client = boto3.client('workspaces')
    
def lambda_handler(event, context):
    response = client.describe_workspaces(
        DirectoryId='d-966714f114'
    )
    stopped_workspaces = []
    for i in response['Workspaces']:
        if i['State'] == 'STOPPED':
            print(i['WorkspaceId'])
            stopped_workspaces.append({"WorkspaceId": i['WorkspaceId']})
    # 批量启动
    if stopped_workspaces:
        client.start_workspaces(StartWorkspaceRequests=stopped_workspaces)
注意事项

你需要为Lambda的执行角色添加以下IAM权限,否则会出现授权报错:

  • workspaces:DescribeWorkspaces
  • workspaces:StartWorkspaces

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 10:33:03