首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lambda函数启动aws工作区-克服client.start_workspaces限制

lambda函数启动aws工作区-克服client.start_workspaces限制
EN

Stack Overflow用户
提问于 2022-12-04 15:24:35
回答 1查看 11关注 0票数 0

我有一个lambda函数来启动env中的所有工作区机器。

Lambda功能:

代码语言:javascript
复制
import boto3
client = boto3.client('workspaces')

def lambda_handler(event,context):
     workspaces = client.describe_workspaces()['Workspaces']
     for workspace in workspaces:
          if workspace['WorkspaceProperties']['RunningMode'] == 'AUTO_STOP':
               if workspace['State'] == 'STOPPED':
                   workspaces_id = (workspace['WorkspaceId'])
                   client.start_workspaces(
                       StartWorkspaceRequests=[
                           {
                               'WorkspaceId': workspaces_id
                           },
                        ]
                     )

client.start_workspaces每个请求有25个工作空间的限制,知道如何克服这个问题吗?我试图为超过25个工作空间建立一个强有力的解决方案。

https://docs.aws.amazon.com/workspaces/latest/api/API_StartWorkspaces.html#API_StartWorkspaces_RequestSyntax

提前感谢帮助者

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-12-04 15:52:04

您可以使用分页方法通过工作区列表自动分页,并为每一页结果调用start_workspaces。这个看起来是这样的:

代码语言:javascript
复制
import boto3
client = boto3.client('workspaces')

def lambda_handler(event, context):
     workspaces_paginator = client.get_paginator('describe_workspaces')

     # Loop through all pages of workspaces
     for page in workspaces_paginator.paginate():
         workspaces = page['Workspaces']

         # Filter for workspaces that are in AUTO_STOP mode and are currently stopped
         stopped_workspaces = [workspace for workspace in workspaces if workspace['WorkspaceProperties']['RunningMode'] == 'AUTO_STOP' and workspace['State'] == 'STOPPED']

         # Call start_workspaces for the current page of workspaces
         if stopped_workspaces:
             client.start_workspaces(
                 StartWorkspaceRequests=[
                     {
                         'WorkspaceId': workspace['WorkspaceId']
                     } for workspace in stopped_workspaces
                 ]
             )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74678009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档