需要启动每小时工作空间,但 start_workspaces() 和 describe_workspaces() 限制为 25
Posted
技术标签:
【中文标题】需要启动每小时工作空间,但 start_workspaces() 和 describe_workspaces() 限制为 25【英文标题】:Need to boot hourly workspaces but start_workspaces() and describe_workspaces() limited to 25 【发布时间】:2021-12-29 20:23:16 【问题描述】:我有以下脚本可用于启动工作区,但它会获得前 25 个工作区,尽管处于 AVAILABLE 或 STOPPED 状态。
我在我的环境中运行了超过 25 个工作区,我试图找出我需要在上面添加什么,以便检查我的环境中的所有工作区 (50
我期待听到您的反馈。
谢谢
import boto3
workspaces = boto3.client('workspaces')
def lambda_handler(event, context):
workspaces_client_list = workspaces.describe_workspaces()
for workspaces_info in workspaces_client_list['Workspaces']:
workspace_id = workspaces_info['WorkspaceId']
workspace_state = workspaces_info['State']
if workspace_state == 'STOPPED':
start_workspaces(workspace_id)
def start_workspaces(workspace_id):
workspaces.start_workspaces(
StartWorkspaceRequests = [
'WorkspaceId': workspace_id
,
]
)
【问题讨论】:
你的 lambda 函数的超时时间是多少? 【参考方案1】:The documentation states,您可以在请求参数中提供Limit
限制
要返回的最大项目数。 类型:整数 有效范围:最小值为 1。最大值为 25。 必需:否
您只能获得 25 件物品,因为这是您可以获得的最大物品数量。要获得所有项目,您必须检查是否有NextToken
的任何回复。如果有下一个令牌,您必须将其用于下一个请求,则重复此操作,直到没有下一个令牌。
def lambda_handler(event, context):
workspaces_client_list = get_all_workspaces()
for workspaces_info in workspaces_client_list:
workspace_id = workspaces_info['WorkspaceId']
workspace_state = workspaces_info['State']
if workspace_state == 'STOPPED':
start_workspaces(workspace_id)
def get_all_workspaces():
response = workspaces.describe_workspaces()
workspaces_client_list = response['Workspaces']
while "NextToken" in response:
response = workspaces.describe_workspaces(NextToken=response['NextToken'])
workspaces_client_list.extend(response['Workspaces'])
return workspaces_client_list
【讨论】:
谢谢@st.huber,这正是我想要的! 太棒了。随意upvote并将此答案标记为已接受的答案,这将使其他人也更容易找到它以上是关于需要启动每小时工作空间,但 start_workspaces() 和 describe_workspaces() 限制为 25的主要内容,如果未能解决你的问题,请参考以下文章
simulink模型仿真时明明有将变量存储到工作空间,即有to workspace, 但最终运行完后,工作空间中没有该变量